summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-08-17 18:15:23 -0700
committerGabe Black <gblack@eecs.umich.edu>2009-08-17 18:15:23 -0700
commit191590bcc4fcdc08da34c94723ade57f8eb9e948 (patch)
treeb1c01ce95967f15644644948ba78421c64950019 /src/arch
parent33cb4c2f09d7ad21cf37bab6ce1f846a049e121e (diff)
downloadgem5-191590bcc4fcdc08da34c94723ade57f8eb9e948.tar.xz
X86: Ignore the size part of XMM/MMX operands. The instructions know what they want.
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/isa/insts/simd128/floating_point/arithmetic/addition.py4
-rw-r--r--src/arch/x86/isa/insts/simd128/floating_point/arithmetic/division.py4
-rw-r--r--src/arch/x86/isa/insts/simd128/floating_point/arithmetic/multiplication.py4
-rw-r--r--src/arch/x86/isa/insts/simd128/floating_point/arithmetic/square_root.py4
-rw-r--r--src/arch/x86/isa/insts/simd128/floating_point/arithmetic/subtraction.py4
-rw-r--r--src/arch/x86/isa/insts/simd128/floating_point/compare/compare_and_write_rflags.py4
-rw-r--r--src/arch/x86/isa/insts/simd128/floating_point/data_conversion/convert_floating_point_to_gpr_integer.py4
-rw-r--r--src/arch/x86/isa/insts/simd128/floating_point/logical/exclusive_or.py8
-rw-r--r--src/arch/x86/isa/specialize.isa2
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)