x86 Instruction Set Reference
MOVDDUP
Move One Double-FP and Duplicate
Opcode | Mnemonic | Description |
---|---|---|
F2 0F 12 /r |
MOVDDUP xmm1, xmm2/m64 |
Move 64 bits representing the lower DP data element from xmm2/m64 to xmm1 register and duplicate. |
Description |
---|
The linear address corresponds to the address of the least-significant byte of the referenced memory data. When a memory address is indicated, the 8 bytes of data at memory location m64 are loaded. When the register-register form of this operation is used, the lower half of the 128- bit source register is duplicated and copied into the 128-bit destination register. |
Operation |
---|
if(Source == m64) { //Load instruction xmm1[0..63] = m64; xmm1[64..127] = m64; } else { //Move instruction xmm1[0..63] = xmm2[0..63]; xmm1[64..127] = xmm2[0..63]; } |
Exceptions |
---|
None. |
Numeric Exceptions |
---|
None. |
Protected Mode Exceptions | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Real-Address Mode Exceptions | ||||||
---|---|---|---|---|---|---|
|
Virtual-8086 Mode Exceptions | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Instruction | Latency | Throughput | Execution Unit |
---|---|---|---|
CPUID | 0F3n | 0F3n | 0F3n |
MOVDDUP xmm1, xmm2 | 4 | 2 | FP_MOVE |