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 />
Table 14-16. <strong>IA</strong><strong>32</strong>_MCi_Status [15:0] Compound Error Code Encoding<br />
Type Form Interpretation<br />
Generic Memory<br />
Hierarchy<br />
000F 0000 0000 11LL<br />
Generic memory hierarchy error<br />
TLB Errors 000F 0000 0001 TTLL {TT}TLB{LL}_ERR<br />
Memory Hierarchy Errors 000F 0001 RRRR TTLL {TT}CACHE{LL}_{RRRR}_ERR<br />
Bus <strong>and</strong> Interconnect<br />
Errors<br />
000F 1PPT RRRR IILL<br />
BUS{LL}_{PP}_{RRRR}_{II}_{T}_ERR<br />
The “Interpretation” column in the table indicates the name of a compound error. The<br />
name is constructed by substituting mnemonics for the sub-field names given within<br />
curly braces. For example, the error code ICACHEL1_RD_ERR is constructed from the<br />
form:<br />
{TT}CACHE{LL}_{RRRR}_ERR,<br />
where {TT} is replaced by I, {LL} is replaced by L1, <strong>and</strong> {RRRR} is replaced by RD.<br />
For more information on the “Form” <strong>and</strong> “Interpretation” columns, see Section 14.7.2.1,<br />
“Correction Report Filtering (F) Bit” through Section 14.7.2.5, “Bus <strong>and</strong> Interconnect<br />
Errors”.<br />
.. ... ....Text omitted here... ... ....<br />
13. PUSHA/PUSHAD information updated<br />
In the Description subsection, “PUSHA/PUSHAD—Push All General-Purpose Registers”, in<br />
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 <strong>Manual</strong>,<br />
Volume 2B, the language has been updated to correct an error (EBP was listed twice in<br />
the earlier version). See the change bar <strong>and</strong> bold text.<br />
-------------------------------------------------------------------<br />
PUSHA/PUSHAD—Push All General-Purpose Registers<br />
Opcode Instruction <strong>64</strong>-Bit<br />
Mode<br />
Compat/<br />
Leg Mode<br />
Description<br />
60 PUSHA Invalid Valid Push AX, CX, DX, BX, original SP, BP, SI,<br />
<strong>and</strong> DI.<br />
60 PUSHAD Invalid Valid Push EAX, ECX, EDX, EBX, original ESP,<br />
EBP, ESI, <strong>and</strong> EDI.<br />
Description<br />
Pushes the contents of the general-purpose registers onto the stack. The registers are<br />
stored on the stack in the following order: EAX, ECX, EDX, EBX, ESP (original<br />
value), EBP, ESI, <strong>and</strong> EDI (if the current oper<strong>and</strong>-size attribute is <strong>32</strong>) <strong>and</strong> AX,<br />
CX, DX, BX, SP (original value), BP, SI, <strong>and</strong> DI (if the oper<strong>and</strong>-size attribute is<br />
16). These instructions perform the reverse operation of the POPA/POPAD instructions.<br />
The value pushed for the ESP or SP register is its value before prior to pushing the first<br />
register (see the “Operation” section below).<br />
The PUSHA (push all) <strong>and</strong> PUSHAD (push all double) mnemonics reference the same<br />
opcode. The PUSHA instruction is intended for use when the oper<strong>and</strong>-size attribute is 16<br />
<strong>and</strong> the PUSHAD instruction for when the oper<strong>and</strong>-size attribute is <strong>32</strong>. Some assemblers<br />
may force the oper<strong>and</strong> size to 16 when PUSHA is used <strong>and</strong> to <strong>32</strong> when PUSHAD is used.<br />
22 <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