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 (SSE2). 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[edit]
Opcode | Assembly (Intel syntax) | Assembly (AT&T syntax) | icc intrinsic equivalent(s) | gcc built-in(s) |
---|---|---|---|---|
66 0F 28 /r | MOVAPD xmm1, xmm2/m128 | MOVAPD xmm2/m128, xmm1 | __m128 _mm_load_pd(double* p)
|
|
66 0F 29 /r | MOVAPD xmm1/m128, xmm2 | MOVAPD xmm2, xmm1/m128 | void _mm_store_pd(double* p, __m128 a)
|
The source operand can be either an XMM register (xmm2) or a memory address (m128).
The destination operand can be either an XMM register (xmm1) or a memory address (m128). Note, however, that the source and destination operands cannot both be memory addresses.
Potential Exceptions[edit]
If a memory address operand is not 16-byte-aligned, a general protection exception (#GP) 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.[1]
References[edit]
- gcc info page.
- Intel 64 and IA-32 Architectures Optimization Reference Manual, November, 2006.
- Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2A: Instruction Set Reference, A-M, November, 2006.
See also[edit]
- MOVAPS/MOVAPD
- MOVDDUP
- MOVHLPS
- MOVHPS/MOVHPD
- MOVLHPS
- MOVLPS/MOVLPD
- MOVMSKPS/MOVMSKPD
- MOVNTPS
- MOVSHDUP
- MOVSLDUP
- MOVSS/MOVSD
- MOVUPS/MOVUPD
This programming-language-related article is a stub. You can help EverybodyWiki by expanding it. |
This article "MOVAPD" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:MOVAPD. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
This page exists already on Wikipedia. |