Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 1645

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

RET—Return from Procedure (Continued)
IF stack segment not present THEN #SS(StackSegmentSelector); FI;
IF the return instruction pointer is not within the return code segment limit THEN #GP(0); FI:
CPL  ReturnCodeSegmentSelector(RPL);
IF OperandSize=32
THEN
ELSE (* OperandSize=16 *)
FI;
FOR each of segment register (ES, FS, GS, and DS)
DO;
OD;
For each of ES, FS, GS, and DS
DO
IF segment descriptor indicates the segment is not a data or
OD;
Flags Affected
None.
Volume 4: Base IA-32 Instruction Reference
EIP  Pop();
CS  Pop(); (* 32-bit pop, high-order 16-bits discarded *)
(* segment descriptor information also loaded *)
CS(RPL)  CPL;
ESP  ESP + SRC;
tempESP  Pop();
tempSS  Pop(); (* 32-bit pop, high-order 16-bits discarded *)
(* segment descriptor information also loaded *)
ESP  tempESP;
SS  tempSS;
EIP  Pop();
EIP  EIP AND 0000FFFFH;
CS  Pop(); (* 16-bit pop; segment descriptor information also loaded *)
CS(RPL)  CPL;
ESP  ESP + SRC;
tempESP  Pop();
tempSS  Pop(); (* 16-bit pop; segment descriptor information also loaded *)
(* segment descriptor information also loaded *)
ESP  tempESP;
SS  tempSS;
IF segment register points to data or non-conforming code segment
AND CPL > segment descriptor DPL; (* DPL in hidden part of segment register *)
THEN (* segment register invalid *)
SegmentSelector/Descriptor  0; (* null segment selector *)
FI;
readable code segment
OR if the segment is a data or non-conforming code segment and the segment
descriptor's DPL < CPL or RPL of code segment's segment selector
THEN
segment selector register  null selector;
4:343

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents