Everything

mulu


-

デバイスのmulu命令は次の形式です。

-

MULU reg1, reg2, reg3

-

MULU imm9, reg2, reg3

 

-

“mulu imm9, reg2, reg3”の形式でimmに次のものを指定した場合,アセンブラでは命令展開が行われ,複数個の機械語命令が生成されます。

(a)

-16~-1の範囲の絶対値式

指定形式

アセンブル結果

mulu    imm5, reg2, reg3
mov     imm5, r1
mulu    r1, reg2, reg3

(b)

-16~511の範囲を越え,-32768~+32767の範囲の絶対値式

指定形式

アセンブル結果

mulu    imm16, reg2, reg3
movea   imm16, r0, r1
mulu    r1, reg2, reg3

(c)

-32768~+32767の範囲を越える絶対値式

immの値の下位16ビットがすべて0の場合

指定形式

アセンブル結果

mulu    imm, reg2, reg3
movhi   HIGHW(imm), r0, r1
mulu    r1, reg2, reg3

 

上記以外の場合

指定形式

アセンブル結果

mulu    imm, reg2, reg3
mov     imm, r1
mulu    r1, reg2, reg3

(d)

!label,または%labelを持つ相対値式,およびsdata/sbss属性セクションに定義を持つラベルの$labelを持つ相対値式

指定形式

アセンブル結果

mulu    !label, reg2, reg3
movea   !label, r0, r1
mulu    r1, reg2, reg3
mulu    %label, reg2, reg3
movea   %label, r0, r1
mulu    r1, reg2, reg3
mulu    $label, reg2, reg3
movea   $label, r0, r1
mulu    r1, reg2, reg3

(e)

#label,またはlabelを持つ相対値式,およびsdata/sbss属性セクションに定義を持たないラベルの$labelを持つ相対値式

指定形式

アセンブル結果

mulu    #label, reg2, reg3
mov     #label, r1
mulu    r1, reg2, reg3
mulu    label, reg2, reg3
mov     label, r1
mulu    r1, reg2, reg3
mulu    $label, reg2, reg3
mov     $label, r1
mulu    r1, reg2, reg3