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 />
FI;<br />
FI;<br />
read SMM-monitor features field in MSEG (see Section 24.16.6.2,<br />
in 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>, Volume 3B);<br />
IF features field is invalid<br />
THEN<br />
leave SMM;<br />
VMfailValid(VMCALL with invalid SMM-monitor features);<br />
ELSE activate dual-monitor treatment of SMIs <strong>and</strong> SMM (see Section 24.16.6<br />
in 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>, Volume 3B);<br />
FI;<br />
15. Information on code fetches in uncacheable memory updated<br />
In Section 10.3.3 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 language has been updated to address confusion.<br />
The section is reproduced below.<br />
-------------------------------------------------------------------<br />
10.3.3 Code Fetches in Uncacheable Memory<br />
Programs may execute code from uncacheable (UC) memory, but the implications are<br />
different from accessing data in UC memory. When doing code fetches, the processor<br />
never transitions from cacheable code to UC code speculatively. It also never<br />
speculatively fetches branch targets that result in UC code.<br />
The processor may fetch the same UC cache line multiple times in order to decode an<br />
instruction once. It may decode consecutive UC instructions in a cacheline without<br />
fetching between each instruction. It may also fetch additional cachelines from the same<br />
or a consecutive 4-KByte page in order to decode one non-speculative UC instruction<br />
(this can be true even when the instruction is contained fully in one line).<br />
Because of the above <strong>and</strong> because cacheline sizes may change in future processors,<br />
software should avoid placing memory-mapped I/O with read side effects in the same<br />
page or in a subsequent page used to execute UC code.<br />
16. PUSH description updated<br />
In the Description subsection, “PUSH—Push Word, Doubleword or Quadword Onto the<br />
Stack”, in Chapter 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<br />
<strong>Manual</strong>, Volume 2B, the language describing the instructions in real-address mode has<br />
been corrected.<br />
The subsection is reprinted below. See the change bar.<br />
------------------------------------------------------------------<br />
Description<br />
Decrements the stack pointer <strong>and</strong> then stores the source oper<strong>and</strong> on the top of the<br />
stack. The address-size attribute of the stack segment determines the stack pointer size<br />
(16, <strong>32</strong> or <strong>64</strong> bits). The oper<strong>and</strong>-size attribute of the current code segment determines<br />
the amount the stack pointer is decremented (2, 4 or 8 bytes).<br />
In non-<strong>64</strong>-bit modes: if the address-size <strong>and</strong> oper<strong>and</strong>-size attributes are <strong>32</strong>, the <strong>32</strong>-bit<br />
ESP register (stack pointer) is decremented by 4. If both attributes are 16, the 16-bit SP<br />
register (stack pointer) is decremented by 2.<br />
24 <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