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

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

Advertisement

POPF/POPFD—Pop Stack into EFLAGS Register (Continued)
IF VM=0 (* Not in Virtual-8086 Mode *)
masked *)
4:318
THEN
IF CPL=0
THEN
IF OperandSize = 32;
THEN
EFLAGS  Pop();
(* All non-reserved flags except VM, RF, VIP and VIF can be *)
(* modified; *)
ELSE (* OperandSize = 16 *)
EFLAGS[15:0]  Pop(); (* All non-reserved flags can be modified; *)
FI;
ELSE (* CPL > 0 *)
IF OperandSize = 32;
THEN
EFLAGS  Pop()
(* All non-reserved bits except IOPL, RF, VM, VIP, and VIF can *)
(* be modified; *)
(* IOPL is masked *)
ELSE (* OperandSize = 16 *)
EFLAGS[15:0]  Pop();
(* All non-reserved bits except IOPL can be modified; IOPL is
FI;
FI;
ELSE (* In Virtual-8086 Mode *)
IF IOPL=3
THEN
IF OperandSize=32
THEN
EFLAGS  Pop()
(* All non-reserved bits except VM, RF, IOPL, VIP, and VIF *)
(* can be modified; VM, RF, IOPL, VIP, and VIF are masked*)
ELSE
EFLAGS[15:0]  Pop()
(* All non-reserved bits except IOPL can be modified; IOPL is *)
(* masked *)
FI;
ELSE (* IOPL < 3 *)
IF CR4.VME = 0
THEN #GP(0);
ELSE
IF ((OperandSize = 32) OR (STACK.TF = 1) OR (EFLAGS.VIP = 1
AND STACK.IF = 1)
THEN #GP(0);
ELSE
FI;
FI;
FI;
TempFlags <- pop();
FLAGS <- TempFlags; (*IF and IOPL bits are unchanged*)
EFLAGS.VIF <- TempFlags.IF;
Volume 4: Base IA-32 Instruction Reference

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents