The following can be specified for imm:
Multiplies the register value specified by the first operand by the register value specified by the second operand as a signed value and stores the lower 32 bits of the result in the register specified by the second operand, and the higher 32 bits in the register specified by the third operand. If the same register is specified by the second and third operands, the higher 32 bits of the multiplication result are stored in that register.
Multiplies the value of the absolute or relative expression specified by the first operand by the register value specified by the second operand as a signed value and stores the lower 32 bits of the result in the register specified by the second operand, and the higher 32 bits in the register specified by the third operand. If the same register is specified by the second and third operands, the higher 32 bits of the multiplication result are stored in that register.
If the instruction is executed in syntax "mul reg1, reg2, reg3", the assembler generates one mul machine instruction. |
If the instruction is executed in syntax "mul imm, reg2, reg3", and imm is an absolute expression within the range of -256 to +255, the assembler generates one mul machine instruction. |
If the instruction is executed in syntax "mul imm, reg2, reg3", and the following expression is specified for imm, the assembler executes instruction expansion to generate multiple machine instructions. |
Absolute expression exceeding the range of -256 to +255, but within the range of -32,768 to +32,767 |
If all the lower 16 bits of the value of imm are 0
Relative expression having !label or %label, or that having $label for a label having a definition in the sdata/sbss-attribute section |
mul !label, reg2, reg3 |
movea !label, r0, r1 mul r1, reg2, reg3 |
mul %label, reg2, reg3 |
movea %label, r0, r1 mul r1, reg2, reg3 |
mul $label, reg2, reg3 |
movea $label, r0, r1 mul r1, reg2, reg3 |
Relative expression having #label or label, or that having $label for a label having no definition in the sdata/sbss-attribute section |