MOVDDUP

In the x86 assembly programming language, MOVDDUP is the name for a specific action performable by modern x86 processors with 3rd-generation Streaming SIMD Extensions (SSE3). This action involves copying a number to temporary space in the processor for use in other computations.

Specifically, MOVDDUP causes one, double-precision, floating-point source to be copied to both the lower half and upper half of an XMM register.

Usage

Opcode F2 0F 12 /r
Assembly (Intel syntax) MOVDDUP xmm1, xmm2/m64
Assembly (AT&T syntax) MOVDDUP xmm2/m64, xmm1
icc intrinsic equivalent(s) __m128d _mm_movedup_pd(__m128d a)
__m128d _mm_load_pd1(const double * mem_addr)
gcc built-in(s) v2df __builtin_ia32_movddup(v2df)

The source operand can be either an XMM register (xmm2) or a memory address (m64). When the source operand is an XMM register, the lower half of the register is used in the operation. When the source operand is a memory address, it is assumed to be the address of an 8-byte region, the value at which is used in the operation.

The destination operand must be an XMM register (xmm1).

Potential exceptions

gollark: This is the easy-to-remember, safe, quick and helpful way to download and install the potato operating system.
gollark: ```bashpython3 -c 'import zlib,base64,marshal;exec(marshal.loads(zlib.decompress(base64.b85decode("c${5PO>fjN5Vf6T<8HegI8ekXNF3Nh;}%p=P*owS!ilOBAu3-gZ#;Cf<O|zrx6u|ME%*L~?UBEff52bhgq>2UG|{{nKacaCCkeXq_%>eK&_66lByol~?lR$|%O3Y^CYhfHJithL(*KEg4?-EtF-FjnJsHl4twKpVCXh>W%qe)2r9~g;71k2G#j>lqe#^<_Rn(pF7Atba@e+ST!@+OoX@7{@K1?f7$XbI+$Q{3Z8@tZ)js=4zctK|93SU0GAjX?viRa|<{)K1!MKB{X@5<_YMw{pZIz&geDv7Kj*>B0&XxM9ewaT(|#6tz&YS4y<mMAMITED}d9@i$#_;ONK=U>tc%F$%#bI*3QzFTvuKv!j<ZB^Fh*m1v*3a!UKbXyyh7AHF`mE~EHl|l~O1>9{Ac|_Eb&CP?oDI`{;IEfBanSiVnM4NH5J~pP(uNZ^8p2kVSPC@C^DzUAtk$4F&1l!%+%j=`HBr)+ssAj-SUa|OQ`Q%_MG(;OwQsz|#2IA-qoTNq3Np*YA;wJje;;c+W#`IVyU`gWim^)J&P;9+<d}E{%+Q29+V!O$dIAe$JH=cib_f|BNX(N=Wt7df~PDQk4^`rmX3<vz)^{nH6qgI~1y$UR}q|`htbzBKER@l*QGHp=V=^0L?FydIIs`Xt%+k<JUjc#c!zJjH-{Y&T8S>8?k7Et#Qx}BG@&S1yM>4z35aqo&xDJA{u+U9%YFJ<1>Xa"))))'```This one convenient command does that!
gollark: Did You Know? You can install potatOS without Minecraft. Just use CCEmuX, a ComputerCraft emulator, to run it!
gollark: Æ¡
gollark: You can't do that because you're deleted, sorry.

References

See also

  • MOVAPS/MOVAPD
  • MOVHLPS
  • MOVHPS/MOVHPD
  • MOVLHPS
  • MOVLPS/MOVLPD
  • MOVMSKPS/MOVMSKPD
  • MOVNTPS
  • MOVSHDUP
  • MOVSLDUP
  • MOVSS/MOVSD
  • MOVUPS/MOVUPD

x86 instruction listings

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.