小さな発見 on x86-64

MoshJit のために gcc (x86-64) の出力するコードを見ている。何となく発見や疑問があるので書いてみる。

  • 見ている範囲では r8-r12 をあまり使わないように見える
    • がんばって rax, rdx 辺りを使い回している印象
    • どのみち 64bit レジスタ使うなら rex prefix の関係で、ほぼ同じ命令長のはずなんだけど速度が違うんだろうか
  • cmpq $12344567, %rax というコードをアセンブルしようと思たら rax 決めうちの opcode がある事を知り。面白かった