12.01.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!