The following can be specified for displacement (disp):
The ld23.b, ld23.bu, ld23.h, ld23.hu, and ld23.w instructions load data of 1 byte, 1 halfword, and 1 word, from the address specified by the first operand, int the register specified by the second operand. The ld23.dw instruction loads a double word of data from the address specified in the first operand, then register reg2 specified in the second operand into the lower 32 bits, and reg2 + 1 into the upper 32 bits.
The ld machine instruction takes an immediate value in the range of -4,194,304 to +4,194,303 (0xFFC00000 to 0x3FFFFF) as the displacement |
If an absolute expression, a relative expression having !label, a relative expression having #label is specified as disp23, [reg1] can be omitted. If omitted, the assembler assumes that [r0] is specified. |
If a relative expression having $label is specified as disp23, [reg1] can be omitted. If omitted, the assembler assumes that [gp] is specified. |
If a relative expression having %label is specified as disp23, [reg1] can be omitted. If omitted, the assembler assumes that [ep] is specified. |
ld23.b and ld23.h sign-extend the data of 1 byte and 1 halfword, respectively, and load the data into a register as 1 word. |
If a value that is not a multiple of 2 is specified as disp of ld23.h, ld23.w, ld23.hu, or ld23.dw, the assembler aligns disp with 2 and generates a code. Then, the assembler outputs the following messages. |
A message is output if an odd-numbered register is specified in the second operand of the ld23.dw instruction. |