Skip to content

LRET

Operation

Pops a long return frame and atomically restores CS:PC.

Assembler Syntax

LRET

Privilege

Unprivileged

Long Return is a segment-changing control transfer that requires LPA.A to be zero, reads the long return frame from SS:SP, and commits CS and PC together. An active resident link raises INVALID_CONTROL_TRANSITION before stack access. The frame contains the continuation PC Q value at the current SP and the return CS Q value at SP+8; after both values are fetched, SP is advanced by 16 bytes and the control state is committed.

  1. Read both 8-byte long-return-frame words through the old SS context without changing SP.

  2. Validate the complete return CS image.

  3. Validate the continuation PC offset against the return CS and probe executable translation at the resulting linear address.

  4. Commit advanced SP, return CS, and continuation PC as one successful control-transfer operation.

Fault atomicity. SP, CS, and PC remain unchanged when a frame read or return-target validation faults.

The 16-byte long return frame is read through the old SS context: the continuation PC occupies offset 0 and the return CS image occupies offset 8. A frame translation or return-target translation failure raises the applicable ADDRESS_TRANSLATION family event; an invalid return CS image raises INVALID_CONTROL_IMAGE.

2.75in

Encodings

LRET

Format: Instruction format for LRET

Format: Instruction format for LRET