- | CMOV cccc, reg1, reg2, reg3 |
- | CMOV cccc, imm5, reg2, reg3 |
- | asrhでは,上記に加えて,次の形式も指定できます。 |
- | cmovcond reg1, reg2, reg3 |
- | cmovcond imm, reg2, reg3 |
condに指定できる記述,および意味はsetf命令と同じです。詳細は「表 5.27 setfcond命令」を参照してください。
- | “cmov cccc, imm, reg2, reg3”,または“cmovcond imm, reg2, reg3”の形式でimmに次のものを指定した場合,アセンブラでは,命令展開が行われ,複数個の機械語命令が生成されます。 |
(a) | -16~+15の範囲を越え,-32768~+32767の範囲の絶対値式 |
|
|
cmov imm4, imm16, reg2, reg3
|
movea imm16, r0, r1
cmov imm4, r1, reg2, reg3
|
(b) | -32768~+32767の範囲を越える絶対値式 |
immの値の下位16ビットがすべて0の場合
|
|
cmov imm4, imm, reg2, reg3
|
movhi HIGHW(imm), r0, r1
cmov imm4, r1, reg2, reg3
|
上記以外の場合
|
|
cmov imm4, imm, reg2, reg3
|
mov imm, r1
cmov imm4, r1, reg2, reg3
|
(c) | #label,またはlabelを持つ相対値式,およびsdata/sbss属性セクションに定義を持たないラベルの$labelを持つ相対値式 |
|
|
cmov imm4, #label, reg2, reg3
|
mov #label, r1
cmov imm4, r1, reg2, reg3
|
cmov imm4, label, reg2, reg3
|
mov label, r1
cmov imm4, r1, reg2, reg3
|
cmov imm4, $label, reg2, reg3
|
mov $label, r1
cmov imm4, r1, reg2, reg3
|
(d) | !label,または%labelを持つ相対値式,およびsdata/sbss属性セクションに定義を持つラベルの$labelを持つ相対値式 |
|
|
cmov imm4, !label, reg2, reg3
|
movea !label, r0, r1
cmov imm4, r1, reg2, reg3
|
cmov imm4, %label, reg2, reg3
|
movea %label, r0, r1
cmov imm4, r1, reg2, reg3
|
cmov imm4, $label, reg2, reg3
|
movea $label, r0, r1
cmov imm4, r1, reg2, reg3
|