summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/insts/simd64/integer/arithmetic
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-12-19 01:48:31 -0800
committerGabe Black <gblack@eecs.umich.edu>2009-12-19 01:48:31 -0800
commitc7ca1d3c8a3b785c80ec23bd84666c3c6e08b4e4 (patch)
tree46c2eddae0dd6ccb43fafd81fce33f2a84208303 /src/arch/x86/isa/insts/simd64/integer/arithmetic
parent25545115336e961a570bafdb8c2934db0015dece (diff)
downloadgem5-c7ca1d3c8a3b785c80ec23bd84666c3c6e08b4e4.tar.xz
X86: Add a common named flag for signed media operations.
Diffstat (limited to 'src/arch/x86/isa/insts/simd64/integer/arithmetic')
-rw-r--r--src/arch/x86/isa/insts/simd64/integer/arithmetic/addition.py12
-rw-r--r--src/arch/x86/isa/insts/simd64/integer/arithmetic/multiplication.py18
-rw-r--r--src/arch/x86/isa/insts/simd64/integer/arithmetic/multiply_add.py12
-rw-r--r--src/arch/x86/isa/insts/simd64/integer/arithmetic/subtraction.py12
4 files changed, 27 insertions, 27 deletions
diff --git a/src/arch/x86/isa/insts/simd64/integer/arithmetic/addition.py b/src/arch/x86/isa/insts/simd64/integer/arithmetic/addition.py
index b663d15b7..d376dccce 100644
--- a/src/arch/x86/isa/insts/simd64/integer/arithmetic/addition.py
+++ b/src/arch/x86/isa/insts/simd64/integer/arithmetic/addition.py
@@ -115,33 +115,33 @@ def macroop PADDQ_MMX_P {
};
def macroop PADDSB_MMX_MMX {
- maddi mmx, mmx, mmxm, size=1, ext=4
+ maddi mmx, mmx, mmxm, size=1, ext = "2 |" + Signed
};
def macroop PADDSB_MMX_M {
ldfp ufp1, seg, sib, disp, dataSize=8
- maddi mmx, mmx, ufp1, size=1, ext=4
+ maddi mmx, mmx, ufp1, size=1, ext = "2 |" + Signed
};
def macroop PADDSB_MMX_P {
rdip t7
ldfp ufp1, seg, riprel, disp, dataSize=8
- maddi mmx, mmx, ufp1, size=1, ext=4
+ maddi mmx, mmx, ufp1, size=1, ext = "2 |" + Signed
};
def macroop PADDSW_MMX_MMX {
- maddi mmx, mmx, mmxm, size=2, ext=4
+ maddi mmx, mmx, mmxm, size=2, ext = "2 |" + Signed
};
def macroop PADDSW_MMX_M {
ldfp ufp1, seg, sib, disp, dataSize=8
- maddi mmx, mmx, ufp1, size=2, ext=4
+ maddi mmx, mmx, ufp1, size=2, ext = "2 |" + Signed
};
def macroop PADDSW_MMX_P {
rdip t7
ldfp ufp1, seg, riprel, disp, dataSize=8
- maddi mmx, mmx, ufp1, size=2, ext=4
+ maddi mmx, mmx, ufp1, size=2, ext = "2 |" + Signed
};
def macroop PADDUSB_MMX_MMX {
diff --git a/src/arch/x86/isa/insts/simd64/integer/arithmetic/multiplication.py b/src/arch/x86/isa/insts/simd64/integer/arithmetic/multiplication.py
index 50a1e5dc0..526162e32 100644
--- a/src/arch/x86/isa/insts/simd64/integer/arithmetic/multiplication.py
+++ b/src/arch/x86/isa/insts/simd64/integer/arithmetic/multiplication.py
@@ -55,48 +55,48 @@
microcode = '''
def macroop PMULHW_MMX_MMX {
- mmuli mmx, mmx, mmxm, size=2, ext = "0x2 |" + MultHi
+ mmuli mmx, mmx, mmxm, size=2, ext = Signed + "|" + MultHi
};
def macroop PMULHW_MMX_M {
ldfp ufp1, seg, sib, disp, dataSize=8
- mmuli mmx, mmx, ufp1, size=2, ext = "0x2 |" + MultHi
+ mmuli mmx, mmx, ufp1, size=2, ext = Signed + "|" + MultHi
};
def macroop PMULHW_MMX_P {
rdip t7
ldfp ufp1, seg, riprel, disp, dataSize=8
- mmuli mmx, mmx, ufp1, size=2, ext = "0x2 |" + MultHi
+ mmuli mmx, mmx, ufp1, size=2, ext = Signed + "|" + MultHi
};
def macroop PMULLW_MMX_MMX {
- mmuli mmx, mmx, mmxm, size=2, ext=2
+ mmuli mmx, mmx, mmxm, size=2, ext = Signed
};
def macroop PMULLW_MMX_M {
ldfp ufp1, seg, sib, disp, dataSize=8
- mmuli mmx, mmx, ufp1, size=2, ext=2
+ mmuli mmx, mmx, ufp1, size=2, ext = Signed
};
def macroop PMULLW_MMX_P {
rdip t7
ldfp ufp1, seg, riprel, disp, dataSize=8
- mmuli mmx, mmx, ufp1, size=2, ext=2
+ mmuli mmx, mmx, ufp1, size=2, ext = Signed
};
def macroop PMULHRW_MMX_MMX {
- mmuli mmx, mmx, mmxm, size=2, ext = "0x2 | 0x4 |" + MultHi
+ mmuli mmx, mmx, mmxm, size=2, ext = Signed + "| 0x4 |" + MultHi
};
def macroop PMULHRW_MMX_M {
ldfp ufp1, seg, sib, disp, dataSize=8
- mmuli mmx, mmx, ufp1, size=2, ext = "0x2 | 0x4 |" + MultHi
+ mmuli mmx, mmx, ufp1, size=2, ext = Signed + "| 0x4 |" + MultHi
};
def macroop PMULHRW_MMX_P {
rdip t7
ldfp ufp1, seg, riprel, disp, dataSize=8
- mmuli mmx, mmx, ufp1, size=2, ext = "0x2 | 0x4 |" + MultHi
+ mmuli mmx, mmx, ufp1, size=2, ext = Signed + "| 0x4 |" + MultHi
};
def macroop PMULHUW_MMX_MMX {
diff --git a/src/arch/x86/isa/insts/simd64/integer/arithmetic/multiply_add.py b/src/arch/x86/isa/insts/simd64/integer/arithmetic/multiply_add.py
index f6940d159..354cf8722 100644
--- a/src/arch/x86/isa/insts/simd64/integer/arithmetic/multiply_add.py
+++ b/src/arch/x86/isa/insts/simd64/integer/arithmetic/multiply_add.py
@@ -55,23 +55,23 @@
microcode = '''
def macroop PMADDWD_MMX_MMX {
- mmuli ufp3, mmx, mmxm, srcSize=2, destSize=4, ext=(0x2 | 0x10 | 0x20)
- mmuli ufp4, mmx, mmxm, srcSize=2, destSize=4, ext=(0x2 | 0x10)
+ mmuli ufp3, mmx, mmxm, srcSize=2, destSize=4, ext = Signed + "| 0x10 | 0x20"
+ mmuli ufp4, mmx, mmxm, srcSize=2, destSize=4, ext = Signed + "| 0x10"
maddi mmx, ufp3, ufp4, size=4, ext=0
};
def macroop PMADDWD_MMX_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
- mmuli ufp3, mmx, ufp1, srcSize=2, destSize=4, ext=(0x2 | 0x10 | 0x20)
- mmuli ufp4, mmx, ufp1, srcSize=2, destSize=4, ext=(0x2 | 0x10)
+ mmuli ufp3, mmx, ufp1, srcSize=2, destSize=4, ext = Signed + "| 0x10 | 0x20"
+ mmuli ufp4, mmx, ufp1, srcSize=2, destSize=4, ext = Signed + "| 0x10"
maddi mmx, ufp3, ufp4, size=4, ext=0
};
def macroop PMADDWD_MMX_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
- mmuli ufp3, mmx, ufp1, srcSize=2, destSize=4, ext=(0x2 | 0x10 | 0x20)
- mmuli ufp4, mmx, ufp1, srcSize=2, destSize=4, ext=(0x2 | 0x10)
+ mmuli ufp3, mmx, ufp1, srcSize=2, destSize=4, ext = Signed + "| 0x10 | 0x20"
+ mmuli ufp4, mmx, ufp1, srcSize=2, destSize=4, ext = Signed + "| 0x10"
maddi mmx, ufp3, ufp4, size=4, ext=0
};
'''
diff --git a/src/arch/x86/isa/insts/simd64/integer/arithmetic/subtraction.py b/src/arch/x86/isa/insts/simd64/integer/arithmetic/subtraction.py
index a60c0b1a8..4ee87e0f8 100644
--- a/src/arch/x86/isa/insts/simd64/integer/arithmetic/subtraction.py
+++ b/src/arch/x86/isa/insts/simd64/integer/arithmetic/subtraction.py
@@ -115,33 +115,33 @@ def macroop PSUBQ_MMX_P {
};
def macroop PSUBSB_MMX_MMX {
- msubi mmx, mmx, mmxm, size=1, ext=4
+ msubi mmx, mmx, mmxm, size=1, ext = "2 |" + Signed
};
def macroop PSUBSB_MMX_M {
ldfp ufp1, seg, sib, disp, dataSize=8
- msubi mmx, mmx, ufp1, size=1, ext=4
+ msubi mmx, mmx, ufp1, size=1, ext = "2 |" + Signed
};
def macroop PSUBSB_MMX_P {
rdip t7
ldfp ufp1, seg, riprel, disp, dataSize=8
- msubi mmx, mmx, ufp1, size=1, ext=4
+ msubi mmx, mmx, ufp1, size=1, ext = "2 |" + Signed
};
def macroop PSUBSW_MMX_MMX {
- msubi mmx, mmx, mmxm, size=2, ext=4
+ msubi mmx, mmx, mmxm, size=2, ext = "2 |" + Signed
};
def macroop PSUBSW_MMX_M {
ldfp ufp1, seg, sib, disp, dataSize=8
- msubi mmx, mmx, ufp1, size=2, ext=4
+ msubi mmx, mmx, ufp1, size=2, ext = "2 |" + Signed
};
def macroop PSUBSW_MMX_P {
rdip t7
ldfp ufp1, seg, riprel, disp, dataSize=8
- msubi mmx, mmx, ufp1, size=2, ext=4
+ msubi mmx, mmx, ufp1, size=2, ext = "2 |" + Signed
};
def macroop PSUBUSB_MMX_MMX {