From 191590bcc4fcdc08da34c94723ade57f8eb9e948 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Mon, 17 Aug 2009 18:15:23 -0700 Subject: [PATCH] X86: Ignore the size part of XMM/MMX operands. The instructions know what they want. --- .../insts/simd128/floating_point/arithmetic/addition.py | 4 ++-- .../insts/simd128/floating_point/arithmetic/division.py | 4 ++-- .../simd128/floating_point/arithmetic/multiplication.py | 4 ++-- .../simd128/floating_point/arithmetic/square_root.py | 4 ++-- .../simd128/floating_point/arithmetic/subtraction.py | 4 ++-- .../floating_point/compare/compare_and_write_rflags.py | 4 ++-- .../convert_floating_point_to_gpr_integer.py | 4 ++-- .../insts/simd128/floating_point/logical/exclusive_or.py | 8 ++++---- src/arch/x86/isa/specialize.isa | 2 +- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/addition.py b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/addition.py index abe09cf34..7e0088c81 100644 --- a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/addition.py +++ b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/addition.py @@ -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 }; ''' diff --git a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/division.py b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/division.py index dad2e6510..0f4b14a81 100644 --- a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/division.py +++ b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/division.py @@ -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 }; ''' diff --git a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/multiplication.py b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/multiplication.py index 5310cdd01..ba4f035d0 100644 --- a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/multiplication.py +++ b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/multiplication.py @@ -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 }; ''' diff --git a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/square_root.py b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/square_root.py index 537aa8ae9..1591eee8e 100644 --- a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/square_root.py +++ b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/square_root.py @@ -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 }; ''' diff --git a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/subtraction.py b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/subtraction.py index afb477023..10669136b 100644 --- a/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/subtraction.py +++ b/src/arch/x86/isa/insts/simd128/floating_point/arithmetic/subtraction.py @@ -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 }; ''' diff --git a/src/arch/x86/isa/insts/simd128/floating_point/compare/compare_and_write_rflags.py b/src/arch/x86/isa/insts/simd128/floating_point/compare/compare_and_write_rflags.py index 0f6ef2ba2..2e22f71eb 100644 --- a/src/arch/x86/isa/insts/simd128/floating_point/compare/compare_and_write_rflags.py +++ b/src/arch/x86/isa/insts/simd128/floating_point/compare/compare_and_write_rflags.py @@ -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 }; ''' diff --git a/src/arch/x86/isa/insts/simd128/floating_point/data_conversion/convert_floating_point_to_gpr_integer.py b/src/arch/x86/isa/insts/simd128/floating_point/data_conversion/convert_floating_point_to_gpr_integer.py index 80eae8331..413026d63 100644 --- a/src/arch/x86/isa/insts/simd128/floating_point/data_conversion/convert_floating_point_to_gpr_integer.py +++ b/src/arch/x86/isa/insts/simd128/floating_point/data_conversion/convert_floating_point_to_gpr_integer.py @@ -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 }; ''' diff --git a/src/arch/x86/isa/insts/simd128/floating_point/logical/exclusive_or.py b/src/arch/x86/isa/insts/simd128/floating_point/logical/exclusive_or.py index 5eed80393..40477a8f2 100644 --- a/src/arch/x86/isa/insts/simd128/floating_point/logical/exclusive_or.py +++ b/src/arch/x86/isa/insts/simd128/floating_point/logical/exclusive_or.py @@ -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 }; diff --git a/src/arch/x86/isa/specialize.isa b/src/arch/x86/isa/specialize.isa index 4ebba6981..8d65111b0 100644 --- a/src/arch/x86/isa/specialize.isa +++ b/src/arch/x86/isa/specialize.isa @@ -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) -- 2.30.2