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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Documentation Changes<br />

Compatibility Mode Exceptions<br />

Same as for protected mode exceptions.<br />

<strong>64</strong>-Bit Mode Exceptions<br />

#GP(0)<br />

#SS(U)<br />

#PF(fault-code)<br />

#AC(0)<br />

If the memory address is in a non-canonical form.<br />

If the stack address is in a non-canonical form.<br />

If a page fault occurs.<br />

If alignment checking is enabled <strong>and</strong> an unaligned memory reference<br />

is made while the current privilege level is<br />

7. Restriction added for total size field, microcode update format<br />

In Chapter 9 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 3A, the total size field of the microcode update header must be in multiples of<br />

1024 bytes (1 KBytes). This is now indicated in several locations. See the example<br />

below.<br />

-------------------------------------------------------------------<br />

9.11.1 Microcode Update<br />

. ... ....Text omitted here... ... ....<br />

For microcode updates with a data size not equal to 00000000H, the total size field<br />

specifies the size of the microcode update. The first 48 bytes contain the microcode<br />

update header. The second part of the microcode update is the encrypted data. The data<br />

size field of the microcode update header specifies the encrypted data size, its value<br />

must be a multiple of the size of DWORD. The total size field of the microcode<br />

update header specifies the encrypted data size plus the header size; its value<br />

must be in multiples of 1024 bytes (1 KBytes). The optional extended signature<br />

table if implemented follows the encrypted data, <strong>and</strong> its size is calculated by (Total Size<br />

– (Data Size + 48)).<br />

.. ... ....Text omitted here... ... ....<br />

8. Flag check corrected<br />

In Section 22.3.4 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), a flag check was incorrectly indicated in the following section. The section is<br />

reproduced below, with the correction.<br />

-------------------------------------------------------------------<br />

22.3.1.4 Checks on Guest RIP <strong>and</strong> RFLAGS<br />

The following checks are performed on fields in the guest-state area corresponding to<br />

RIP <strong>and</strong> RFLAGS:<br />

• RIP. The following checks are performed on processors that support <strong>Intel</strong> <strong>64</strong><br />

Technology:<br />

— Bits 63:<strong>32</strong> must be 0 if the “<strong>IA</strong>-<strong>32</strong>e mode guest” VM-entry control is 0 or if the L<br />

bit (bit 13) in the access-rights field for CS is 0.<br />

— If the processor supports N < <strong>64</strong> linear-address bits, bits 63:N must be identical<br />

if the “<strong>IA</strong>-<strong>32</strong>e mode guest” VM-entry control is 1 <strong>and</strong> the L bit in the access-rights<br />

field for CS is 1. 1 (No check applies if the processor supports <strong>64</strong> linear-address<br />

bits.)<br />

16 <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!