「x86/64での最適化」の編集履歴(バックアップ)一覧はこちら
「x86/64での最適化」(2012/02/25 (土) 18:06:23) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**メモ
-レジスタをゼロクリアする場合
基本的にはxor reg, reg が速い
ただし条件コードを変えたくなければmov reg, 0
-ゼロとの比較
test reg, regかtest EAX系reg, 0 が速い
ただし比較対象は大抵直前の操作で条件フラグがセットされている.
従って,ゼロとの比較はわざわざ比較命令を発行しないように処理を組み立てるべき.
ただし,movとleaは例外で,条件フラグがセットされないのでtest命令で比較する.
**メモ
-レジスタをゼロクリアする場合
基本的にはxor reg, reg が速い
ただし条件コードを変えたくなければmov reg, 0
-ゼロとの比較
test reg, regかtest EAX系reg, 0 が速い
ただし比較対象は大抵直前の操作で条件フラグがセットされている.
従って,ゼロとの比較はわざわざ比較命令を発行しないように処理を組み立てるべき.
ただし,movとleaは例外で,条件フラグがセットされないのでtest命令で比較する.
-アドレッシングモードによる高速計算
lea reg, [reg*3+2+2]
など.1命令で最大4つのオペランドによる加算・乗算が可能なため使いこなすと強力(らしい).
オペランドにはレジスタ・メモリ・即値を指定できる.
演算子は+と*だけ?(調査中)