X86: Ignore the size part of XMM/MMX operands. The instructions know what they want.
authorGabe Black <gblack@eecs.umich.edu>
Tue, 18 Aug 2009 01:15:23 +0000 (18:15 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Tue, 18 Aug 2009 01:15:23 +0000 (18:15 -0700)
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/addition.py
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/division.py
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/multiplication.py
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/square_root.py
src/arch/x86/isa/insts/simd128/floating_point/arithmetic/subtraction.py
src/arch/x86/isa/insts/simd128/floating_point/compare/compare_and_write_rflags.py
src/arch/x86/isa/insts/simd128/floating_point/data_conversion/convert_floating_point_to_gpr_integer.py
src/arch/x86/isa/insts/simd128/floating_point/logical/exclusive_or.py
src/arch/x86/isa/specialize.isa

index abe09cf34f6c1f7fefe8bf5be64c73cae66bb809..7e0088c8193f0f3e2e028cfc058b13463cbe763a 100644 (file)
@@ -63,13 +63,13 @@ def macroop ADDSD_XMM_XMM {
 };
 
 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
 };
 '''
index dad2e6510d6090898f6e8536232ff3465b5ef65c..0f4b14a81fef5509959fb15f0d7498561150248f 100644 (file)
@@ -63,13 +63,13 @@ def macroop DIVSD_XMM_XMM {
 };
 
 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
 };
 '''
index 5310cdd01ff48ec723e5e4f0734cd1f867b5c34d..ba4f035d08c588530ac2bd7e77263677be6eb4e8 100644 (file)
@@ -63,13 +63,13 @@ def macroop MULSD_XMM_XMM {
 };
 
 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
 };
 '''
index 537aa8ae9f1ddef1173c7e12ecc7417a1874cb15..1591eee8ed10edd3a34ed663d520ab18c33e8210 100644 (file)
@@ -63,13 +63,13 @@ def macroop SQRTSD_XMM_XMM {
 };
 
 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
 };
 '''
index afb477023a97ee5148a7271c3756c582ceeadc7f..10669136be79932ca84b980643ac0f5f180de28b 100644 (file)
@@ -63,13 +63,13 @@ def macroop SUBSD_XMM_XMM {
 };
 
 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
 };
 '''
index 0f6ef2ba2c586132bc31aaeffeb136185141c8df..2e22f71ebcc74def2a0cdcd4189e8f6e68106669 100644 (file)
@@ -63,13 +63,13 @@ def macroop UCOMISD_XMM_XMM {
 };
 
 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
 };
 '''
index 80eae83319b176d9cabef4abc86cd2a05282a986..413026d63cf1bab168c02fb998c66f6432f563bc 100644 (file)
@@ -63,13 +63,13 @@ def macroop CVTTSD2SI_R_XMM {
 };
 
 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
 };
 '''
index 5eed80393a1daca21e3237cab467be150b0e3c6a..40477a8f2896d606759b18a373ba4e70a448e8f3 100644 (file)
@@ -62,16 +62,16 @@ def macroop XORPD_XMM_XMM {
 };
 
 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
 };
index 4ebba698131cf62e5c139219fcf658e59886ace2..8d65111b023067789127eb5d26d67ef6e17ef894 100644 (file)
@@ -139,7 +139,7 @@ let {{
             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)