satsubi


-

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

-

SATSUBI imm16, reg1, reg2

 

-

If the following is specified for imm, the assembler executes instruction expansion to generate multiple machine instructions.

(a)

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

<1>

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

If reg2 is the same as reg1

satsubi imm, reg1, reg2
movhi   HIGHW(imm), r0, r1
satsub  r1, r2

 

Else

satsubi imm, reg1, reg2
movhi   HIGHW(imm), r0, reg2
satsubr reg1, reg2

<2>

Else

If reg2 is the same as reg1

satsubi imm, reg1, reg2
mov     imm, r1
satsub  r1, reg2

 

Else

satsubi imm, reg1, reg2
mov     imm, reg2
satsubr reg1, reg2

(b)

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

If reg2 is the same as reg1

satsubi #label, reg1, reg2
mov     #label, r1
satsub  r1, reg2
satsubi label, reg1, reg2
mov     label, reg2
satsub  r1, reg2
satsubi $label, reg1, reg2 
mov     $label, reg2
satsub  r1, reg2

 

Else

satsubi #label, reg1, reg2
mov     #label, reg2
satsubr reg1, reg2
satsubi label, reg1, reg2
mov     label, reg2
satsubr reg1, reg2
satsubi $label, reg1, reg2 
mov     $label, reg2
satsubr reg1, reg2