changeset ea20065f6614 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=ea20065f6614
description:
        X86: Implement movd_Vo_Edp on X86

        This patch implements the movd_Vo_Edp series of instructions.

        It addresses various concerns by Gabe Black about which file the
        instruction belonged in, as well as supporting REX prefixed
        instructions properly.

        This instruction is needed for some of the spec2k benchmarks, most
        notably bzip2.

diffstat:

2 files changed, 32 insertions(+), 2 deletions(-)
src/arch/x86/isa/decoder/two_byte_opcodes.isa                |    4 -
src/arch/x86/isa/insts/general_purpose/data_transfer/move.py |   30 ++++++++++

diffs (61 lines):

diff -r 3c810b64ee7d -r ea20065f6614 
src/arch/x86/isa/decoder/two_byte_opcodes.isa
--- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa     Fri Oct 30 14:19:06 
2009 -0400
+++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa     Fri Oct 30 15:52:33 
2009 -0400
@@ -615,7 +615,7 @@
                         0x3: PACKSSDW(Vo,Wo);
                         0x4: PUNPCKLQDQ(Vo,Wq);
                         0x5: PUNPCKHQDQ(Vo,Wq);
-                        0x6: WarnUnimpl::movd_Vo_Ed();
+                        0x6: MOVD(Vo,Edp);
                         0x7: MOVDQA(Vo,Wo);
                     }
                     default: UD2();
@@ -709,7 +709,7 @@
                     0x1: decode OPCODE_OP_BOTTOM3 {
                         0x4: HADDPD(Vo,Wo);
                         0x5: WarnUnimpl::hsubpd_Vo_Wo();
-                        0x6: WarnUnimpl::movd_Ed_Vd();
+                        0x6: MOVD(Edp,Vd);
                         0x7: MOVDQA(Wo,Vo);
                         default: UD2();
                     }
diff -r 3c810b64ee7d -r ea20065f6614 
src/arch/x86/isa/insts/general_purpose/data_transfer/move.py
--- a/src/arch/x86/isa/insts/general_purpose/data_transfer/move.py      Fri Oct 
30 14:19:06 2009 -0400
+++ b/src/arch/x86/isa/insts/general_purpose/data_transfer/move.py      Fri Oct 
30 15:52:33 2009 -0400
@@ -355,6 +355,36 @@
     rdip t7
     st reg, seg, riprel, disp
 };
+
+def macroop MOVD_XMM_R {
+   mov2fp xmml, regm, srcSize=dsz, destSize=dsz
+   lfpimm xmmh, 0
+};
+
+def macroop MOVD_XMM_M {
+    ldfp xmml, seg, sib, disp, dataSize=dsz
+    lfpimm xmmh, 0
+};
+
+def macroop MOVD_XMM_P {
+    rdip t7
+    ldfp xmml, seg, riprel, disp, dataSize=dsz
+    lfpimm xmmh, 0
+};
+
+def macroop MOVD_R_XMM {
+    mov2int reg, xmml, size=dsz
+};
+
+def macroop MOVD_M_XMM {
+    stfp xmml, seg, sib, disp, dataSize=dsz
+};
+
+def macroop MOVD_P_XMM {
+    rdip t7
+    stfp xmml, seg, riprel, disp, dataSize=dsz
+};
+
 '''
 #let {{
 #    class MOVD(Inst):
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to