background image

Vol. 3B 22-21

ARCHITECTURE COMPATIBILITY

22.25.1 Machine-Check 

Architecture

The Pentium Pro processor introduced a new architecture to the IA-32 for handling and reporting on machine-
check exceptions. This machine-check architecture (described in detail in Chapter 15, “Machine-
Check Architecture”
) greatly expands the ability of the processor to report on internal hardware errors.

22.25.2  Priority of Exceptions

The priority of exceptions are broken down into several major categories:
1. Traps on the previous instruction
2. External interrupts
3. Faults on fetching the next instruction
4. Faults in decoding the next instruction
5. Faults on executing an instruction
There are no changes in the priority of these major categories between the different processors, however, excep-
tions within these categories are implementation dependent and may change from processor to processor.

22.25.3  Exception Conditions of Legacy SIMD Instructions Operating on MMX Registers

MMX instructions and a subset of SSE, SSE2, SSSE3 instructions operate on MMX registers. The exception condi-
tions of these instructions are described in the following tables.

Table 22-4.  Exception Conditions for Legacy SIMD/MMX Instructions with FP Exception and 16-Byte Alignment

Exception

Re

al

Vi

rtual-8086

Pr

ot

ec

ted and

 

Co

mp

at

ib

ilit

y

64-bi

Cause of Exception

Invalid Opcode, 

#UD

X

X

X

X

If an unmasked SIMD floating-point exception and CR4.OSXMMEXCPT[bit 10] = 0. 

X

X

X

X

If CR0.EM[bit 2] = 1.

If CR4.OSFXSR[bit 9] = 0.

X

X

X

X

If preceded by a LOCK prefix (F0H)

X

X

X

X

If any corresponding CPUID feature flag is ‘0’

#MF

X

X

X

X

If there is a pending X87 FPU exception

#NM

X

X

X

X

If CR0.TS[bit 3]=1

Stack, SS(0)

X

For an illegal address in the SS segment

X

If a memory address referencing the SS segment is in a non-canonical form

General Protec-

tion, #GP(0)

X

X

X

X

Legacy SSE: Memory operand is not 16-byte aligned

X

For an illegal memory operand effective address in the CS, DS, ES, FS or GS segments.

X

If the memory address is in a non-canonical form.

X

X

If any part of the operand lies outside the effective address space from 0 to FFFFH

#PF(fault-code)

X

X

X

For a page fault

#XM

X

X

X

X

If an unmasked SIMD floating-point exception and CR4.OSXMMEXCPT[bit 10] = 1

Applicable 

Instructions

CVTPD2PI, CVTTPD2PI