In the x86 assembly programming language, MOVHPD is the name for a specific action performable by modern x86 processors with 2nd-generation Streaming SIMD Extensions (SSE2). This action involves either copying a number from memory to temporary space or copying a number from temporary space to memory.
Specifically, MOVHPD causes the value at an 8-byte memory region to be either copied to or assigned from the upper half of an XMM register.
Opcode | Assembly (Intel syntax) | Assembly (AT&T syntax) | intrinsic equivalent(s) | built-in(s) | |
---|---|---|---|---|---|
66 0F 16 ''/r'' | MOVHPD ''xmm'', ''m64'' | MOVHPD ''m64'', ''xmm'' | __m128d _mm_loadh_pd(__m128d a, double *dp) | ||
66 0F 17 ''/r'' | MOVHPD ''m64'', ''xmm'' | MOVHPD ''xmm'', ''m64'' | void _mm_storeh_pd(double *pd, __m128d a) |
The source operand can be either an XMM register (xmm
) or a memory address (m64
). When the source operand is an XMM register, the destination operand must be a memory address. When the source operand is a memory address, the destination operand must be an XMM register.
Note that the lower half of the XMM register is unaffected by this operation.