Specification Update
Table Of Contents

Errata
Specification Update 73
W97. Fault on ENTER Instruction May Result in Unexpected
Values on Stack Frame
Problem: The ENTER instruction is used to create a procedure stack frame. Due to
this erratum, if execution of the ENTER instruction results in a fault, the
dynamic storage area of the resultant stack frame may contain
unexpected values (i.e. residual stack data as a result of processing the
fault).
Implication: Data in the created stack frame may be altered following a fault on the
ENTER instruction. Please refer to "Procedure Calls For Block-Structured
Languages" in the Intel® 64 and IA-32 Architecture Software
Developer’s Manual, Vol. 1, Basic Architecture, for information on the
usage of the ENTER instructions. This erratum is not expected to occur
in ring 3. Faults are usually processed in ring 0 and stack switch occurs
when transferring to ring 0. Intel has not observed this erratum on any
commercially available software.
Workaround: None Identified
Status: For the steppings affected, see the Summary Tables of Changes.
W98. SYSRET May Incorrectly Clear RF (Resume Flag) in the
RFLAGS Register
Problem: In normal operation, SYSRET will restore the value of RFLAGS from R11
(the value previously saved upon execution of the SYSCALL instruction).
Due to this erratum, the RFLAGS.RF bit will be unconditionally cleared
after execution of the SYSRET instruction.
Implication: The SYSRET instruction can not be used if the RF flag needs to be set
after returning from a system call. Intel has not observed this erratum
with any commercially available software.
Workaround: Use the IRET instruction to return from a system call, if RF flag has to be set after the
return.
Status: For the steppings affected, see the Summary Tables of Changes.
W99. General Protection Fault (#GP) for Instructions Greater
Than 15 Bytes May Be Preempted
Problem: When the processor encounters an instruction that is greater than 15
bytes in length, a #GP is signaled when the instruction is decoded.
Under some circumstances, the #GP fault may be preempted by
another lower priority fault (for example, Page Fault (#PF)). However,
if the preempting lower priority faults are resolved by the operating
system and the instruction retried, a #GP fault will occur.
Implication: Software may observe a lower-priority fault occurring before or in lieu
of a #GP fault. Instructions of greater than 15 bytes in length can only
occur if redundant prefixes are placed before the instruction.