Intel 253666-024US User Manual

Page 545

Advertising
background image

Vol. 2A 3-499

INSTRUCTION SET REFERENCE, A-M

IRET/IRETD—Interrupt Return

Virtual-8086 Mode Exceptions

#GP(0)

If the return instruction pointer is not within the return code

segment limit.

IF IOPL not equal to 3.

#PF(fault-code)

If a page fault occurs.

#SS(0)

If the top bytes of stack are not within stack limits.

#AC(0)

If an unaligned memory reference occurs and alignment

checking is enabled.

#UD

If the LOCK prefix is used.

Compatibility Mode Exceptions

#GP(0)

If EFLAGS.NT[bit 14] = 1.

Other exceptions same as in Protected Mode.

64-Bit Mode Exceptions

#GP(0)

If EFLAGS.NT[bit 14] = 1.
If the return code segment selector is NULL.
If the stack segment selector is NULL going back to compatibility

mode.

If the stack segment selector is NULL going back to CPL3 64-bit

mode.

If a NULL stack segment selector RPL is not equal to CPL going

back to non-CPL3 64-bit mode.

If the return instruction pointer is not within the return code

segment limit.

If the return instruction pointer is non-canonical.

#GP(Selector)

If a segment selector index is outside its descriptor table limits.
If a segment descriptor memory address is non-canonical.
If the segment descriptor for a code segment does not indicate

it is a code segment.

If the proposed new code segment descriptor has both the D-bit

and L-bit set.

If the DPL for a nonconforming-code segment is not equal to the

RPL of the code segment selector.

If CPL is greater than the RPL of the code segment selector.
If the DPL of a conforming-code segment is greater than the

return code segment selector RPL.

If the stack segment is not a writable data segment.
If the stack segment descriptor DPL is not equal to the RPL of

the return code segment selector.

Advertising