X86: Fix problem with movhps instruction
authorVince Weaver <vince@csl.cornell.edu>
Wed, 4 Nov 2009 18:22:15 +0000 (13:22 -0500)
committerVince Weaver <vince@csl.cornell.edu>
Wed, 4 Nov 2009 18:22:15 +0000 (13:22 -0500)
This problem is like the one fixed with movhpd a few weeks ago.
A +8 displacement is used to access memory when there should
be none.

This fix is needed for the perlbmk spec2k benchmark to run.

src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move.py

index ffe084786bd161aca7195f222e1d25693b731c50..86ac89adeb6f760ed1b0d6d530c0f72ffe6a8780 100644 (file)
@@ -168,22 +168,21 @@ def macroop MOVUPD_P_XMM {
 };
 
 def macroop MOVHPS_XMM_M {
-    ldfp xmmh, seg, sib, "DISPLACEMENT + 8", dataSize=8
+    ldfp xmmh, seg, sib, disp, dataSize=8
 };
 
 def macroop MOVHPS_XMM_P {
     rdip t7
-    ldfp xmmh, seg, riprel, "DISPLACEMENT + 8", dataSize=8
+    ldfp xmmh, seg, riprel, disp, dataSize=8
 };
 
 def macroop MOVHPS_M_XMM {
-    stfp xmmh, seg, sib, "DISPLACEMENT + 8", dataSize=8
+    stfp xmmh, seg, sib, disp, dataSize=8
 };
 
 def macroop MOVHPS_P_XMM {
     rdip t7
-    stfp xmml, seg, riprel, "DISPLACEMENT", dataSize=8
-    stfp xmmh, seg, riprel, "DISPLACEMENT + 8", dataSize=8
+    stfp xmmh, seg, riprel, disp, dataSize=8
 };
 
 def macroop MOVHPD_XMM_M {