Intel 64 and IA-32 Architectures Software Developer's Manual
Intel 64 and IA-32 Architectures Software Developer's Manual
Intel 64 and IA-32 Architectures Software Developer's Manual
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Documentation Changes<br />
SYSRET—Return From Fast System Call<br />
... .... ... ... Not all text shown... ... ...<br />
Operation<br />
IF (CS.L ≠ 1 ) or (<strong>IA</strong><strong>32</strong>_EFER.LMA ≠ 1) or (<strong>IA</strong><strong>32</strong>_EFER.SCE ≠ 1)<br />
(* Not in <strong>64</strong>-Bit Mode or SYSCALL/SYSRET not enabled in <strong>IA</strong><strong>32</strong>_EFER *)<br />
THEN #UD; FI;<br />
IF (CPL ≠ 0)<br />
THEN #GP(0); FI;<br />
IF (RCX ≠ CANONICAL_ADDRESS)<br />
THEN #GP(0); FI;<br />
IF (OPERAND_SIZE = <strong>64</strong>)<br />
THEN (* Return to <strong>64</strong>-Bit Mode *)<br />
EFLAGS ← R11;<br />
CPL ← 0x3;<br />
CS(SEL) ← <strong>IA</strong><strong>32</strong>_STAR[63:48] + 16;<br />
CS(PL) ← 0x3;<br />
SS(SEL) ← <strong>IA</strong><strong>32</strong>_STAR[63:48] + 8;<br />
SS(PL) ← 0x3;<br />
RIP ← RCX;<br />
ELSE (* Return to Compatibility Mode *)<br />
EFLAGS ← R11;<br />
CPL ← 0x3;<br />
CS(SEL) ← <strong>IA</strong><strong>32</strong>_STAR[63:48] ;<br />
CS(PL) ← 0x3;<br />
SS(SEL) ← <strong>IA</strong><strong>32</strong>_STAR[63:48] + 8;<br />
SS(PL) ← 0x3;<br />
EIP ← ECX;<br />
FI;<br />
20. VMX Debug exceptions paragraph deleted<br />
In Section 27.3.1 of the <strong>Intel</strong> ® <strong>64</strong> <strong>and</strong> <strong>IA</strong>-<strong>32</strong> <strong>Architectures</strong> <strong>Software</strong> Developer’s <strong>Manual</strong>,<br />
Volume 3B, the first two paragraphs were deleted.<br />
-------------------------------------------------------------------<br />
27.3.1 Debug Exceptions<br />
If a VMM emulates a guest instruction that would encounter a debug trap (single step or<br />
data or I/O breakpoint), it should cause that trap to be delivered. The VMM should not<br />
inject the debug exception by using vector-on-entry, but should set the appropriate bits<br />
in the pending debug exceptions field. This method will give the trap the right priority<br />
with respect to other events. (If the exception bitmap was programmed to cause VM<br />
exits on debug exceptions, the debug trap will cause a VM exit. At this point, the trap can<br />
be injected with vector-on-entry with the proper priority.)<br />
There is a valid pending debug exception if the BS bit (see Table 20-4) is set, regardless<br />
of the values of RFLAGS.TF or <strong>IA</strong><strong>32</strong>_DEBUGCTL.BTF. The values of these bits do not<br />
impact the delivery of pending debug exceptions.<br />
<strong>32</strong> <strong>Intel</strong> ® <strong>64</strong> <strong>and</strong> <strong>IA</strong>-<strong>32</strong> <strong>Architectures</strong> <strong>Software</strong> Developer’s <strong>Manual</strong> Documentation Changes