x86アセンブリプログラミング言語において、MOVDDUPは、第3世代ストリーミングSIMD拡張命令(SSE3)を搭載した最新のx86プロセッサで実行可能な特定のアクションの名称です。このアクションは、他の計算で使用するために、数値をプロセッサ内の一時領域にコピーする処理です。
具体的には、MOVDDUP により、1 つの倍精度浮動小数点ソースがXMMレジスタの下位半分と上位半分の両方にコピーされます。
使用法
| オペコード | F2 0F 12 /r |
|---|---|
| アセンブリ(Intel構文) | MOVDDUP xmm1, xmm2/m64 |
| アセンブリ(AT&T構文) | MOVDDUP xmm2/m64, xmm1 |
| ICC本質的等価物 | __m128d _mm_movedup_pd(__m128d a)__m128d _mm_load_pd1(const double * mem_addr) |
| gcc組み込み | v2df __builtin_ia32_movddup(v2df) |
ソースオペランドは、XMMレジスタ(xmm2)またはメモリアドレス(m64)のいずれかです。ソースオペランドがXMMレジスタの場合、レジスタの下位半分が演算に使用されます。ソースオペランドがメモリアドレスの場合、8バイト領域のアドレスであるとみなされ、その値が演算に使用されます。
宛先オペランドは XMM レジスタ ( xmm1 ) である必要があります。
潜在的な例外
このセクションは空です。追加していただける と助かります。 (2010年7月) |
参考文献
- gcc infoドキュメント。
- Intel 64 および IA-32 アーキテクチャ ソフトウェア開発者マニュアル ボリューム 2A: 命令セット リファレンス、AM、2006 年 11 月。
- https://software.intel.com/sites/landingpage/IntrinsicsGuide/