Description
The instruction imml loads the IMM24 value into a temporary register. It also locks this value so it can be used by the following instruction and form a 40-bit or 64-bit immediate value, and ensures that the following instruction is treated as a 64-bit Type B instruction.
The instruction imml is used with Type B 64-bit instructions.
Up to a 40-bit immediate value can be used for all 64-bit immediate long instructions in MicroBlaze with a single imml instruction. The imml instruction locks the 24-bit IMM24 value temporarily for the next instruction. A Type B instruction that immediately follows the imml instruction will then form a 40-bit immediate value from the 24-bit IMM24 value of the imml instruction (upper 24 bits) and its own 16-bit immediate value field (lower 16 bits). If no Type B instruction follows the imml instruction, the locked value gets unlocked and becomes useless.
A 64-bit immediate value can be used for all 64-bit immediate long instructions in MicroBlaze with dual imml instructions. Each imml instruction locks the 24-bit IMM24 value temporarily for the next instruction. A Type B instruction that immediately follows the two imml instructions will then form a 64-bit immediate value from the two 24-bit IMM24 values of the imml instructions (upper 48 bits) and its own 16-bit immediate value field (lower 16 bits). If no Type B instruction follows the two imml instructions, the locked value gets unlocked and becomes useless.
Latency
- 1 cycle
Notes
- The imml instruction and the Type B instruction following it are atomic; consequently, no interrupts are allowed between them.
- The assembler automatically detects the need for imml instructions.
- When a 40-bit IMM value is specified in a Type B instruction, the assembler converts the IMM value to a 16-bit one to assemble the instruction and inserts an imml instruction before it in the executable file. If the immediate value exceeds 40 bits, the assembler converts the IMM value to a 16-bit one to assemble the instruction and inserts two imml instructions before it in the executable file.