User Guide
124 128-Bit Media and Scientific Programming
AMD64 Technology 24592—Rev. 3.15—November 2009
• MOVUPS—Move Unaligned Packed Single-Precision Floating-Point.
• LDDQU—Load Unaligned Double Quadword
When alignment checking is enabled (CR0.AM = 1 and rFLAGS.AC = 1) and the MXCSR misaligned
exceptionmask(MM)bitissetto1,a16-bytemisalignedmemoryaccessonmostpackedSSE
instructions will not cause a #GP exception, but a #AC exception is generated instead. On the other
hand, if MM is cleared to 0, then a 16-byte misaligned memory access will cause a #GP exception.
Keep in mind that the corresponding MXCSR_MASK bit (17) is 1, regardless of whether MM is set or
not. For details on MXCSR and MXCSR_MASK, see “128-Bit, 64-Bit, and x87 Programming” in the
AMD64 Architecture Programmer’s Manual Volume 2: System Programming, order #24593.
The FXSAVE, FXRSTOR, MOVAPD, MOVAPS, and MOVDQA, MOVNTDQ, MOVNTPD and
MOVNTPS instructions do not support misaligned accesses. These instructions always generate a #GP
exception if misaligned on a 16-byte boundary.
While the architecture does not impose data-alignment requirements for 128-bit media instructions,
the consequence of storing operands at unaligned locations is that accesses to those operands may
require more processor and bus cycles than for aligned accesses. See “Data Alignment” on page 40 for
details.
Support for misaligned SSE mode is indicated by ECX bit 7 of CPUID function 8000_0001h.
4.4.5 Integer Data Types
The 128-bit media instructions that support operations on integer data types a re summarized in
“Instruction Summary—Integer Instructions” on page 133. The characteristics of these data types are
described below.
Sign. Many of the 128-bit media instructions have variants for operating on signed or unsigned
integers. For signed integers, the sign bit is the most-significant bit—bit 7 for a byte, bit 15 for a word,
bit 31 for a doubleword, bit 63 for a quadword, or bit 127 for a double quadword. Arithmetic
instructions that are not specifically named as unsigned perform signed two’s-complement arithmetic.
Range of Representable Values. Table 4-1 on page 125 shows the range of representable values for
the integer data types.