MOVAPD


In the x86 assembly programming language, MOVAPD is the name for a specific action performable by modern x86 processors with 2nd-generation Streaming SIMD Extensions. This action involves copying a pair of numbers to temporary space in the processor for use in other computations. MOVAPD is one of the fastest ways to accomplish this effect.
Specifically, MOVAPD causes a 16-byte-aligned packed-doubles source to be copied to an XMM register or a 16-byte memory region.

Usage

The source operand can be either an XMM register or a memory address.
The destination operand can be either an XMM register or a memory address. Note, however, that the source and destination operands cannot both be memory addresses.

Potential Exceptions

If a memory address operand is not 16-byte-aligned, a general protection exception will be raised. This can cause strange interoperability bugs when ordinary code calls an external code that was compiled with the assumption of a 16-byte-aligned stack frame boundary.