X86: Implement PUNPCKHQDQ.
authorGabe Black <gblack@eecs.umich.edu>
Tue, 18 Aug 2009 01:21:09 +0000 (18:21 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Tue, 18 Aug 2009 01:21:09 +0000 (18:21 -0700)
src/arch/x86/isa/decoder/two_byte_opcodes.isa
src/arch/x86/isa/insts/simd128/integer/data_reordering/unpack_and_interleave.py

index efc3d295babbc80e97950f0866423ef7ea43e6e6..fd07f31921d4157446bfda68ec559bca55aa4f9a 100644 (file)
                     0x2: Inst::PUNPCKHDQ(Vo,Wo);
                     0x3: packssdw_Vo_Wo();
                     0x4: punpcklqdq_Vo_Wq();
-                    0x5: punpcklqdq_Vo_Wq();
+                    0x5: Inst::PUNPCKHQDQ(Vo,Wq);
                     0x6: movd_Vo_Ed();
                     0x7: movdqa_Vo_Wo();
                 }
index 0e11b5aba29cb3afed1d3b7584ab135a147b25ab..9ae617d36ff85a2a382f6eaba755667ed6e44aa0 100644 (file)
@@ -167,6 +167,25 @@ def macroop PUNPCKHDQ_XMM_P {
     unpack xmml, xmmh, ufp1, sel=0, size=4
     unpack xmmh, xmmh, ufp1, sel=1, size=4
 };
+
+def macroop PUNPCKHQDQ_XMM_XMM {
+    movfp xmml, xmmh
+    movfp xmmh, xmmhm
+};
+
+def macroop PUNPCKHQDQ_XMM_M {
+    lea t1, seg, sib, disp, dataSize=asz
+    ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
+    movfp xmml, xmmh
+    movfp xmmh, ufp1
+};
+
+def macroop PUNPCKHQDQ_XMM_P {
+    rdip t7
+    lea t1, seg, riprel, disp, dataSize=asz
+    ldfp ufp1, seg, riprel, 8, dataSize=8
+    movfp xmml, xmmh
+    movfp xmmh, ufp1
+};
 '''
-# PUNPCKHQDQ
 # PUNPCKLQDQ