Vol. 2A 3-511
INSTRUCTION SET REFERENCE, A-M
JMP—Jump
and save the previous task link information, allowing a return to the calling task with
an IRET instruction.
In 64-Bit Mode — The instruction’s operation size is fixed at 64 bits. If a selector
points to a gate, then RIP equals the 64-bit displacement taken from gate; else RIP
equals the zero-extended offset from the far pointer referenced in the instruction.
See the summary chart at the beginning of this section for encoding data and limits.
Operation
IF near jump
IF 64-bit Mode
THEN
IF near relative jump
THEN
tempRIP ← RIP + DEST; (* RIP is instruction following JMP instruction*)
ELSE (* Near absolute jump *)
tempRIP ← DEST;
FI:
ELSE
IF near relative jump
THEN
tempEIP ← EIP + DEST; (* EIP is instruction following JMP instruction*)
ELSE (* Near absolute jump *)
tempEIP ← DEST;
FI:
FI;
IF (IA32_EFER.LMA
= 0 or target mode = Compatibility mode)
and tempEIP outside code segment limit
THEN #GP(0); FI
IF 64-bit mode and tempRIP is not canonical
THEN #GP(0);
FI;
IF OperandSize
= 32
THEN
EIP ← tempEIP;
ELSE
IF OperandSize
= 16
THEN (* OperandSize
= 16 *)
EIP ← tempEIP AND 0000FFFFH;
ELSE (* OperandSize
= 64)
RIP ← tempRIP;
FI;
FI;