X86: Implement MOVSS.
authorGabe Black <gblack@eecs.umich.edu>
Tue, 18 Aug 2009 03:25:14 +0000 (20:25 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Tue, 18 Aug 2009 03:25:14 +0000 (20:25 -0700)
src/arch/x86/isa/decoder/two_byte_opcodes.isa
src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move.py

index dabc1bb75a0abf3a9d625eae21a33b8ea30ad71c..41cbdd869aa5c80db991e26c93bca2062d576358 100644 (file)
                     }
                     // repe (0xF3)
                     0x4: decode OPCODE_OP_BOTTOM3 {
-                        0x0: WarnUnimpl::movss_Vd_Wd();
-                        0x1: WarnUnimpl::movss_Wd_Vd();
+                        0x0: MOVSS(Vd,Wd);
+                        0x1: MOVSS(Wd,Vd);
                         0x2: WarnUnimpl::movsldup_Vo_Wo();
                         0x6: WarnUnimpl::movshdup_Vo_Wo();
                         default: UD2();
index 1a6be67836fc02ebafd2b8716cddc5fbf727914c..1f4044bde6492122c3b09378b6d2c5aaa77d7d6c 100644 (file)
@@ -249,7 +249,31 @@ def macroop MOVLHPS_XMM_XMM {
     movfp xmmh, xmmlm, dataSize=8
 };
 
-# MOVSS
+def macroop MOVSS_XMM_XMM {
+    movfp xmml, xmmlm, dataSize=4
+};
+
+def macroop MOVSS_XMM_M {
+    lfpimm xmml, 0
+    lfpimm xmmh, 0
+    ldfp xmml, seg, sib, disp, dataSize=4
+};
+
+def macroop MOVSS_XMM_P {
+    rdip t7
+    lfpimm xmml, 0
+    lfpimm xmmh, 0
+    ldfp xmml, seg, riprel, disp, dataSize=4
+};
+
+def macroop MOVSS_M_XMM {
+    stfp xmml, seg, sib, disp, dataSize=4
+};
+
+def macroop MOVSS_P_XMM {
+    rdip t7
+    stfp xmml, seg, riprel, disp, dataSize=4
+};
 
 def macroop MOVSD_XMM_M {
     # Zero xmmh