changeset 16817406af29 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=16817406af29
description:
        X86: Fix bugs in movd implementation.

        Unfortunately my implementation of the movd instruction had two bugs.

        In one case, when moving a 32-bit value into an xmm register, the
        lower half of the xmm register was not zero extended.

        The other case is that xmm was used instead of xmmlm as the source
        for a register move.  My test case didn't notice this at first
        as it moved xmm0 to eax, which both have the same register
        number.

diffstat:

1 file changed, 2 insertions(+), 2 deletions(-)
src/arch/x86/isa/insts/general_purpose/data_transfer/move.py |    4 ++--

diffs (21 lines):

diff -r 4b93003bb069 -r 16817406af29 
src/arch/x86/isa/insts/general_purpose/data_transfer/move.py
--- a/src/arch/x86/isa/insts/general_purpose/data_transfer/move.py      Tue Nov 
10 11:18:23 2009 -0500
+++ b/src/arch/x86/isa/insts/general_purpose/data_transfer/move.py      Tue Nov 
10 11:29:30 2009 -0500
@@ -357,7 +357,7 @@
 };
 
 def macroop MOVD_XMM_R {
-   mov2fp xmml, regm, srcSize=dsz, destSize=dsz
+   mov2fp xmml, regm, srcSize=dsz, destSize=8
    lfpimm xmmh, 0
 };
 
@@ -373,7 +373,7 @@
 };
 
 def macroop MOVD_R_XMM {
-    mov2int reg, xmml, size=dsz
+    mov2int reg, xmmlm, size=dsz
 };
 
 def macroop MOVD_M_XMM {
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to