changeset 36369ba5fad6 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=36369ba5fad6
description:
        X86: Ignore the size part of XMM/MMX operands. The instructions know 
what they want.

diffstat:

9 files changed, 19 insertions(+), 19 deletions(-)
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/addition.py            
                       |    4 ++--
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/division.py            
                       |    4 ++--
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/multiplication.py      
                       |    4 ++--
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/square_root.py         
                       |    4 ++--
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/subtraction.py         
                       |    4 ++--
src/arch/x86/isa/insts/simd128/floating_point/compare/compare_and_write_rflags.py
                      |    4 ++--
src/arch/x86/isa/insts/simd128/floating_point/data_conversion/convert_floating_point_to_gpr_integer.py
 |    4 ++--
src/arch/x86/isa/insts/simd128/floating_point/logical/exclusive_or.py           
                       |    8 ++++----
src/arch/x86/isa/specialize.isa                                                 
                       |    2 +-

diffs (169 lines):

diff -r 1ad4a7774b3c -r 36369ba5fad6 
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/addition.py
--- a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/addition.py      
Mon Aug 17 18:15:21 2009 -0700
+++ b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/addition.py      
Mon Aug 17 18:15:23 2009 -0700
@@ -63,13 +63,13 @@
 };
 
 def macroop ADDSD_XMM_M {
-    ldfp ufp1, seg, sib, disp
+    ldfp ufp1, seg, sib, disp, dataSize=8
     addfp xmml, xmml, ufp1
 };
 
 def macroop ADDSD_XMM_P {
     rdip t7
-    ldfp ufp1, seg, riprel, disp
+    ldfp ufp1, seg, riprel, disp, dataSize=8
     addfp xmml, xmml, ufp1
 };
 '''
diff -r 1ad4a7774b3c -r 36369ba5fad6 
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/division.py
--- a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/division.py      
Mon Aug 17 18:15:21 2009 -0700
+++ b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/division.py      
Mon Aug 17 18:15:23 2009 -0700
@@ -63,13 +63,13 @@
 };
 
 def macroop DIVSD_XMM_M {
-    ldfp ufp1, seg, sib, disp
+    ldfp ufp1, seg, sib, disp, dataSize=8
     divfp xmml, xmml, ufp1
 };
 
 def macroop DIVSD_XMM_P {
     rdip t7
-    ldfp ufp1, seg, riprel, disp
+    ldfp ufp1, seg, riprel, disp, dataSize=8
     divfp xmml, xmml, ufp1
 };
 '''
diff -r 1ad4a7774b3c -r 36369ba5fad6 
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/multiplication.py
--- 
a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/multiplication.py    
    Mon Aug 17 18:15:21 2009 -0700
+++ 
b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/multiplication.py    
    Mon Aug 17 18:15:23 2009 -0700
@@ -63,13 +63,13 @@
 };
 
 def macroop MULSD_XMM_M {
-    ldfp ufp1, seg, sib, disp
+    ldfp ufp1, seg, sib, disp, dataSize=8
     mulfp xmml, xmml, ufp1
 };
 
 def macroop MULSD_XMM_P {
     rdip t7
-    ldfp ufp1, seg, riprel, disp
+    ldfp ufp1, seg, riprel, disp, dataSize=8
     mulfp xmml, xmml, ufp1
 };
 '''
diff -r 1ad4a7774b3c -r 36369ba5fad6 
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/square_root.py
--- a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/square_root.py   
Mon Aug 17 18:15:21 2009 -0700
+++ b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/square_root.py   
Mon Aug 17 18:15:23 2009 -0700
@@ -63,13 +63,13 @@
 };
 
 def macroop SQRTSD_XMM_M {
-    ldfp ufp1, seg, sib, disp
+    ldfp ufp1, seg, sib, disp, dataSize=8
     sqrtfp xmml, xmml, ufp1
 };
 
 def macroop SQRTSD_XMM_P {
     rdip t7
-    ldfp ufp1, seg, riprel, disp
+    ldfp ufp1, seg, riprel, disp, dataSize=8
     sqrtfp xmml, xmml, ufp1
 };
 '''
diff -r 1ad4a7774b3c -r 36369ba5fad6 
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/subtraction.py
--- a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/subtraction.py   
Mon Aug 17 18:15:21 2009 -0700
+++ b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/subtraction.py   
Mon Aug 17 18:15:23 2009 -0700
@@ -63,13 +63,13 @@
 };
 
 def macroop SUBSD_XMM_M {
-    ldfp ufp1, seg, sib, disp
+    ldfp ufp1, seg, sib, disp, dataSize=8
     subfp xmml, xmml, ufp1
 };
 
 def macroop SUBSD_XMM_P {
     rdip t7
-    ldfp ufp1, seg, riprel, disp
+    ldfp ufp1, seg, riprel, disp, dataSize=8
     subfp xmml, xmml, ufp1
 };
 '''
diff -r 1ad4a7774b3c -r 36369ba5fad6 
src/arch/x86/isa/insts/simd128/floating_point/compare/compare_and_write_rflags.py
--- 
a/src/arch/x86/isa/insts/simd128/floating_point/compare/compare_and_write_rflags.py
 Mon Aug 17 18:15:21 2009 -0700
+++ 
b/src/arch/x86/isa/insts/simd128/floating_point/compare/compare_and_write_rflags.py
 Mon Aug 17 18:15:23 2009 -0700
@@ -63,13 +63,13 @@
 };
 
 def macroop UCOMISD_XMM_M {
-    ldfp ufp1, seg, sib, disp
+    ldfp ufp1, seg, sib, disp, dataSize=8
     compfp xmml, ufp1
 };
 
 def macroop UCOMISD_XMM_P {
     rdip t7
-    ldfp ufp1, seg, riprel, disp
+    ldfp ufp1, seg, riprel, disp, dataSize=8
     compfp xmml, ufp1
 };
 '''
diff -r 1ad4a7774b3c -r 36369ba5fad6 
src/arch/x86/isa/insts/simd128/floating_point/data_conversion/convert_floating_point_to_gpr_integer.py
--- 
a/src/arch/x86/isa/insts/simd128/floating_point/data_conversion/convert_floating_point_to_gpr_integer.py
    Mon Aug 17 18:15:21 2009 -0700
+++ 
b/src/arch/x86/isa/insts/simd128/floating_point/data_conversion/convert_floating_point_to_gpr_integer.py
    Mon Aug 17 18:15:23 2009 -0700
@@ -63,13 +63,13 @@
 };
 
 def macroop CVTTSD2SI_R_M {
-    ldfp ufp1, seg, sib, disp
+    ldfp ufp1, seg, sib, disp, dataSize=8
     cvtf_d2i reg, ufp1
 };
 
 def macroop CVTTSD2SI_R_P {
     rdip t7
-    ldfp ufp1, seg, riprel, disp
+    ldfp ufp1, seg, riprel, disp, dataSize=8
     cvtf_d2i reg, ufp1
 };
 '''
diff -r 1ad4a7774b3c -r 36369ba5fad6 
src/arch/x86/isa/insts/simd128/floating_point/logical/exclusive_or.py
--- a/src/arch/x86/isa/insts/simd128/floating_point/logical/exclusive_or.py     
Mon Aug 17 18:15:21 2009 -0700
+++ b/src/arch/x86/isa/insts/simd128/floating_point/logical/exclusive_or.py     
Mon Aug 17 18:15:23 2009 -0700
@@ -62,16 +62,16 @@
 };
 
 def macroop XORPD_XMM_M {
-    ldfp ufp1, seg, sib, disp
-    ldfp ufp2, seg, sib, "DISPLACEMENT + 8"
+    ldfp ufp1, seg, sib, disp, dataSize=8
+    ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
     xorfp xmml, xmml, ufp1
     xorfp xmmh, xmmh, ufp2
 };
 
 def macroop XORPD_XMM_P {
     rdip t7
-    ldfp ufp1, seg, riprel, disp
-    ldfp ufp2, seg, riprel, "DISPLACEMENT + 8"
+    ldfp ufp1, seg, riprel, disp, dataSize=8
+    ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
     xorfp xmml, xmml, ufp1
     xorfp xmmh, xmmh, ufp2
 };
diff -r 1ad4a7774b3c -r 36369ba5fad6 src/arch/x86/isa/specialize.isa
--- a/src/arch/x86/isa/specialize.isa   Mon Aug 17 18:15:21 2009 -0700
+++ b/src/arch/x86/isa/specialize.isa   Mon Aug 17 18:15:23 2009 -0700
@@ -139,7 +139,7 @@
             opType = OpType(opTypes[0])
             opTypes.pop(0)
 
-            if opType.tag not in ("I", "J"):
+            if opType.tag not in ("I", "J", "P", "PR", "Q", "V", "VR", "W"):
                 if opType.size:
                     env.setSize(opType.size)
 
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to