Deletes stack frame (post processing of function).
The following can be specified for imm:
The following can be specified as list. list specifies the 12 registers that can be popped by the dispose instruction.
Absolute expression having a value of up to 12 bits |
The following two specifications are equivalent.
The dispose instruction performs the postprocessing of a function.
Adds the value of the absolute expression specified by the first operand to the stack pointer (sp)Note and sets sp in the register saving area. |
Repeatedly executes (b) until all the registers specified by the second operand have been popped. |
Adds the value of the absolute expression specified by the first operand to the stack pointer (sp)Note and sets sp in the register saving area. |
Repeatedly executes (b) until all the registers specified by the second operand have been popped. |
Since the value actually added to sp by the machine instruction is imm shifted 2 bits to the left, the assembler shifts the specified imm 2 bits to the right in advance and reflects it in the code. |
If the following is specified for imm, the assembler executes instruction expansion to generate two or more machine instructions. |
dispose imm, list |
movea imm, sp, sp dispose 0, list |
dispose imm, list, [reg] |
movea imm, sp, sp dispose 0, list, [reg] |
dispose imm, list |
mov imm, r1 add r1, sp dispose 0, list, [reg] |
dispose imm, list, [reg] |
mov imm, r1 add r1, sp dispose 0, list, [reg] |
If r0 is specified by the [reg] in syntax "dispose imm, list, [reg]", the assembler outputs the following message and stops assembling. |
When a register that cannot be popped is specified for list, the assembler outputs the following message and generates a code in which that register is ignored. |
When an absolute expression having a value exceeding the range of 0 to 4095 is specified for list, the assembler outputs the following message and generates a code in which imm is masked by 0xfff. |
When an absolute expression that is not a multiple of 4 is specified for imm, the assembler outputs the following message and generates a code in which the lower two bits of imm are ignored. |