3-445
INSTRUCTION SET REFERENCE
MOVUPS—Move Unaligned Four Packed Single-FP (Continued)
Protected Mode Exceptions
#GP(0)
For an illegal memory operand effective address in the CS, DS, ES, FS, or
GS segments.
#SS(0)
For an illegal address in the SS segment.
#PF (fault-codeFor a page fault.
#UD
If CR0.EM = 1.
#AC
For unaligned memory reference if the current privilege level is 3.
#NM
If TS bit in CR0 is set.
Real Address Mode Exceptions
Interrupt 13
If any part of the operand would lie outside of the effective address space
from 0 to 0FFFFH.
#UD
If CR0.EM = 1.
#NM
If TS bit in CR0 is set.
Virtual 8086 Mode Exceptions
Same exceptions as in Real Address Mode.
#AC
For unaligned memory reference if the current privilege level is 3.
#PF (fault-code) For a page fault.
Comments
MOVUPS should be used with SP FP numbers when that data is known to be unaligned.The
usage of this instruction should be limited to the cases where the aligned restriction is hard or
impossible to meet. Streaming SIMD Extension implementations guarantee optimum unaligned
support for MOVUPS. Efficient Streaming SIMD Extension applications should mainly rely on
MOVAPS, not MOVUPS, when dealing with aligned data.
The usage of Repeat-NE (F2H) and Operand Size (66H) prefixes is reserved. Different
processor implementations may handle these prefixes differently. Usage of these prefixes with
MOVUPS risks incompatibility with future processors.
A linear address of the 128 bit data access, while executing in 16-bit mode, that overlaps the end
of a 16-bit segment is not allowed and is defined as reserved behavior. Different processor
implementations may/may not raise a GP fault in this case if the segment limit has been
exceeded. Additionally, the address that spans the end of the segment may/may not wrap around
to the beginning of the segment.