mulu


-

The mulu instructions of the device should be specified in the following formats.

-

MULU reg1, reg2, reg3

-

MULU imm9, reg2, reg3

 

-

If the instruction is executed in syntax "mulu imm9, reg2, reg3", and the following expression is specified for imm, the assembler executes instruction expansion to generate multiple machine instructions.

(a)

Absolute expression within the range of -16 to -1

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

(b)

Absolute expression exceeding the range of -16 to +511, but within the range of -32,768 to +32,767

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

(c)

Absolute expression having a value exceeding the range of -32,768 to +32,767

If all the lower 16 bits of the value of imm are 0

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

 

Else

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

(d)

Relative expression having !label or %label, or that having $label for a label having a definition in the sdata/sbss-attribute section

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)

Relative expression having #label or label, or that having $label for a label having no definition in the sdata/sbss-attribute section

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