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