RR 11101 |
rx |
nd 1 |
l 1 |
ra 0 |
J(AL)R(C) 00000 |
5 |
3 |
1 |
1 |
1 |
5 |
JALRC ra, rx |
MIPS16e |
Jump and Link Register, Compact |
To execute a procedure call to an instruction address in a register
GPR[ra] = return_addr, PC = GPR[rx]
The program unconditionally jumps to the address contained in GPR rx, with no delay slotinstruction. The instruction sets the ISA Mode bit to the value in GPR rx bit 0.
The address of the instruction following the jump is placed into GPR 31. The value stored in GPR 31 bit 0 reflectthe current value of the ISA Mode bit.
Bit 0 of the target address is always zero so that no Address Exceptions occur when bit 0 of the source register is one.
The opcode and function fieldescribe a generaljump-thru-register operation, with the nd (no delay slot),l (link), and ra (source register is ra) fieldas variables. The individual instructions, JALR, JR, JALRC, and JRC have specifi values for these variables.
The effective target address in GPR rx must be naturally-aligned. If bit 0 is zero and bit 1 is one, an Address Error exception occurs when the jump target is subsequently fetched as an instruction.
I: GPR[31] = (PC + 2)GPRLEN-1..1 || ISAMode PC = GPR[Xlat(rx)]GPRLEN-1..1 || 0 ISAMode = GPR[Xlat(rx)]0
None.
Unlike most "jump" instructions in the MIPS instruction set, JALRC does not have a delay slot.