4. Hawk Long Immediate Instructions
the Hawk Manual
4.1. Long Immediate Format
4.2. Load Immediate Long
|1 1 1 0||dst||const:7:0|
Long immediate instructions occupy 32 bits and are not supported on the Sparrowhawk; the extra 16 bits come from the next successive instruction halfword. There is only one instruciton in this group, LIL. Bits 7 to 0 (the least significant byte) of the 24 bit constant are in the instruction register, while bits 23 to 8 (the most significant two bytes) of the constant are in the immediately following halfword.
|1 1 1 0||dst (pc)||const:7:0||LIL||dst,const||r[dst] = sx(const)|
The LIL (load immediate long) instruction stores a 24 bit sign extended constant into the destination register r[dst]. The low 8 bits of the constant come from the const field of the instruction register, while the higher 16 bits come from the halfword that immediately follows. The following examples load r with the largest possible positive integer that LIL permits; any larger values will be interpreted as negative numbers because of sign extension:
LIL R5,#7FFFFF LIL R5,8388607
If dst is zero, the LIL instruction serves as an absolute branch or jump. The signed 24-bit constant limits the use of this to code in the low 8 megabytes of the address space.