X86: Implement the movsd instruction.
authorGabe Black <gblack@eecs.umich.edu>
Thu, 30 Aug 2007 03:37:44 +0000 (20:37 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Thu, 30 Aug 2007 03:37:44 +0000 (20:37 -0700)
--HG--
extra : convert_revision : a5a73e0ddd39144d2aeeb9cc6a299516752fd4c2

src/arch/x86/isa/decoder/two_byte_opcodes.isa
src/arch/x86/isa/insts/sse/move.py

index bed673e9243b4ea58cf9bc8014505a98e8ddce17..c426c6b0ffc93a4dddac7cf42c69e7a9aac2b451 100644 (file)
                 }
                 // repne (0xF2)
                 0x8: decode OPCODE_OP_BOTTOM3 {
-                    0x0: movsd_Vq_Wq();
-                    0x1: movsd_Wq_Vq();
+                    0x0: Inst::MOVSD(Vq,Wq);
+                    0x1: Inst::MOVSD(Wq,Vq);
                     0x2: movddup_Vo_Wq();
                     default: Inst::UD2();
                 }
index fb38a78aad4924402c20ec55af1cc99d1f71c1af..05e28d74d2f96229bd8099a2fa70bc2ca7fda335 100644 (file)
@@ -75,4 +75,28 @@ def macroop MOVLPD_P_R {
 def macroop MOVLPD_R_R {
     movfp xmml, xmml, xmmlm, dataSize=8
 };
+
+def macroop MOVSD_R_M {
+    # Zero xmmh
+    ldfp xmml, seg, sib, disp, dataSize=8
+};
+
+def macroop MOVSD_R_P {
+    rdip t7
+    # Zero xmmh
+    ldfp xmml, seg, riprel, disp, dataSize=8
+};
+
+def macroop MOVSD_M_R {
+    stfp xmml, seg, sib, disp, dataSize=8
+};
+
+def macroop MOVSD_P_R {
+    rdip t7
+    stfp xmml, seg, riprel, disp, dataSize=8
+};
+
+def macroop MOVSD_R_R {
+    movfp xmml, xmml, xmmlm, dataSize=8
+};
 '''