summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/insts/simd128
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/isa/insts/simd128')
-rw-r--r--src/arch/x86/isa/insts/simd128/integer/arithmetic/addition.py24
-rw-r--r--src/arch/x86/isa/insts/simd128/integer/arithmetic/multiplication.py24
-rw-r--r--src/arch/x86/isa/insts/simd128/integer/arithmetic/multiply_add.py24
-rw-r--r--src/arch/x86/isa/insts/simd128/integer/arithmetic/subtraction.py24
-rw-r--r--src/arch/x86/isa/insts/simd128/integer/compare/compare_and_write_minimum_or_maximum.py24
-rw-r--r--src/arch/x86/isa/insts/simd128/integer/data_reordering/pack_with_saturation.py28
6 files changed, 74 insertions, 74 deletions
diff --git a/src/arch/x86/isa/insts/simd128/integer/arithmetic/addition.py b/src/arch/x86/isa/insts/simd128/integer/arithmetic/addition.py
index 05e2b80d5..1e9856562 100644
--- a/src/arch/x86/isa/insts/simd128/integer/arithmetic/addition.py
+++ b/src/arch/x86/isa/insts/simd128/integer/arithmetic/addition.py
@@ -135,43 +135,43 @@ def macroop PADDQ_XMM_P {
};
def macroop PADDSB_XMM_XMM {
- maddi xmml, xmml, xmmlm, size=1, ext=4
- maddi xmmh, xmmh, xmmhm, size=1, ext=4
+ maddi xmml, xmml, xmmlm, size=1, ext = "2 |" + Signed
+ maddi xmmh, xmmh, xmmhm, size=1, ext = "2 |" + Signed
};
def macroop PADDSB_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- maddi xmml, xmml, ufp1, size=1, ext=4
- maddi xmmh, xmmh, ufp2, size=1, ext=4
+ maddi xmml, xmml, ufp1, size=1, ext = "2 |" + Signed
+ maddi xmmh, xmmh, ufp2, size=1, ext = "2 |" + Signed
};
def macroop PADDSB_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
- maddi xmml, xmml, ufp1, size=1, ext=4
- maddi xmmh, xmmh, ufp2, size=1, ext=4
+ maddi xmml, xmml, ufp1, size=1, ext = "2 |" + Signed
+ maddi xmmh, xmmh, ufp2, size=1, ext = "2 |" + Signed
};
def macroop PADDSW_XMM_XMM {
- maddi xmml, xmml, xmmlm, size=2, ext=4
- maddi xmmh, xmmh, xmmhm, size=2, ext=4
+ maddi xmml, xmml, xmmlm, size=2, ext = "2 |" + Signed
+ maddi xmmh, xmmh, xmmhm, size=2, ext = "2 |" + Signed
};
def macroop PADDSW_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- maddi xmml, xmml, ufp1, size=2, ext=4
- maddi xmmh, xmmh, ufp2, size=2, ext=4
+ maddi xmml, xmml, ufp1, size=2, ext = "2 |" + Signed
+ maddi xmmh, xmmh, ufp2, size=2, ext = "2 |" + Signed
};
def macroop PADDSW_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
- maddi xmml, xmml, ufp1, size=2, ext=4
- maddi xmmh, xmmh, ufp2, size=2, ext=4
+ maddi xmml, xmml, ufp1, size=2, ext = "2 |" + Signed
+ maddi xmmh, xmmh, ufp2, size=2, ext = "2 |" + Signed
};
def macroop PADDUSB_XMM_XMM {
diff --git a/src/arch/x86/isa/insts/simd128/integer/arithmetic/multiplication.py b/src/arch/x86/isa/insts/simd128/integer/arithmetic/multiplication.py
index 2715f5d25..904bf69f8 100644
--- a/src/arch/x86/isa/insts/simd128/integer/arithmetic/multiplication.py
+++ b/src/arch/x86/isa/insts/simd128/integer/arithmetic/multiplication.py
@@ -55,43 +55,43 @@
microcode = '''
def macroop PMULHW_XMM_XMM {
- mmuli xmml, xmml, xmmlm, size=2, ext = "0x2 |" + MultHi
- mmuli xmmh, xmmh, xmmhm, size=2, ext = "0x2 |" + MultHi
+ mmuli xmml, xmml, xmmlm, size=2, ext = Signed + "|" + MultHi
+ mmuli xmmh, xmmh, xmmhm, size=2, ext = Signed + "|" + MultHi
};
def macroop PMULHW_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- mmuli xmml, xmml, ufp1, size=2, ext = "0x2 |" + MultHi
- mmuli xmmh, xmmh, ufp2, size=2, ext = "0x2 |" + MultHi
+ mmuli xmml, xmml, ufp1, size=2, ext = Signed + "|" + MultHi
+ mmuli xmmh, xmmh, ufp2, size=2, ext = Signed + "|" + MultHi
};
def macroop PMULHW_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
- mmuli xmml, xmml, ufp1, size=2, ext = "0x2 |" + MultHi
- mmuli xmmh, xmmh, ufp2, size=2, ext = "0x2 |" + MultHi
+ mmuli xmml, xmml, ufp1, size=2, ext = Signed + "|" + MultHi
+ mmuli xmmh, xmmh, ufp2, size=2, ext = Signed + "|" + MultHi
};
def macroop PMULLW_XMM_XMM {
- mmuli xmml, xmml, xmmlm, size=2, ext=2
- mmuli xmmh, xmmh, xmmhm, size=2, ext=2
+ mmuli xmml, xmml, xmmlm, size=2, ext=Signed
+ mmuli xmmh, xmmh, xmmhm, size=2, ext=Signed
};
def macroop PMULLW_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- mmuli xmml, xmml, ufp1, size=2, ext=2
- mmuli xmmh, xmmh, ufp2, size=2, ext=2
+ mmuli xmml, xmml, ufp1, size=2, ext=Signed
+ mmuli xmmh, xmmh, ufp2, size=2, ext=Signed
};
def macroop PMULLW_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
- mmuli xmml, xmml, ufp1, size=2, ext=2
- mmuli xmmh, xmmh, ufp2, size=2, ext=2
+ mmuli xmml, xmml, ufp1, size=2, ext=Signed
+ mmuli xmmh, xmmh, ufp2, size=2, ext=Signed
};
def macroop PMULHUW_XMM_XMM {
diff --git a/src/arch/x86/isa/insts/simd128/integer/arithmetic/multiply_add.py b/src/arch/x86/isa/insts/simd128/integer/arithmetic/multiply_add.py
index f157d165f..64ae05190 100644
--- a/src/arch/x86/isa/insts/simd128/integer/arithmetic/multiply_add.py
+++ b/src/arch/x86/isa/insts/simd128/integer/arithmetic/multiply_add.py
@@ -55,22 +55,22 @@
microcode = '''
def macroop PMADDWD_XMM_XMM {
- mmuli ufp3, xmml, xmmlm, srcSize=2, destSize=4, ext=(0x2 | 0x10 | 0x20)
- mmuli ufp4, xmml, xmmlm, srcSize=2, destSize=4, ext=(0x2 | 0x10)
+ mmuli ufp3, xmml, xmmlm, srcSize=2, destSize=4, ext = Signed + "| 0x10 | 0x20"
+ mmuli ufp4, xmml, xmmlm, srcSize=2, destSize=4, ext = Signed + "| 0x10"
maddi xmml, ufp3, ufp4, size=4, ext=0
- mmuli ufp3, xmmh, xmmhm, srcSize=2, destSize=4, ext=(0x2 | 0x10 | 0x20)
- mmuli ufp4, xmmh, xmmhm, srcSize=2, destSize=4, ext=(0x2 | 0x10)
+ mmuli ufp3, xmmh, xmmhm, srcSize=2, destSize=4, ext = Signed + "| 0x10 | 0x20"
+ mmuli ufp4, xmmh, xmmhm, srcSize=2, destSize=4, ext = Signed + "| 0x10"
maddi xmmh, ufp3, ufp4, size=4, ext=0
};
def macroop PMADDWD_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- mmuli ufp3, xmml, ufp1, srcSize=2, destSize=4, ext=(0x2 | 0x10 | 0x20)
- mmuli ufp4, xmml, ufp1, srcSize=2, destSize=4, ext=(0x2 | 0x10)
+ mmuli ufp3, xmml, ufp1, srcSize=2, destSize=4, ext = Signed + "| 0x10 | 0x20"
+ mmuli ufp4, xmml, ufp1, srcSize=2, destSize=4, ext = Signed + "| 0x10"
maddi xmml, ufp3, ufp4, size=4, ext=0
- mmuli ufp3, xmmh, ufp2, srcSize=2, destSize=4, ext=(0x2 | 0x10 | 0x20)
- mmuli ufp4, xmmh, ufp2, srcSize=2, destSize=4, ext=(0x2 | 0x10)
+ mmuli ufp3, xmmh, ufp2, srcSize=2, destSize=4, ext = Signed + "| 0x10 | 0x20"
+ mmuli ufp4, xmmh, ufp2, srcSize=2, destSize=4, ext = Signed + "| 0x10"
maddi xmmh, ufp3, ufp4, size=4, ext=0
};
@@ -78,11 +78,11 @@ def macroop PMADDWD_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
- mmuli ufp3, xmml, ufp1, srcSize=2, destSize=4, ext=(0x2 | 0x10 | 0x20)
- mmuli ufp4, xmml, ufp1, srcSize=2, destSize=4, ext=(0x2 | 0x10)
+ mmuli ufp3, xmml, ufp1, srcSize=2, destSize=4, ext = Signed + "| 0x10 | 0x20"
+ mmuli ufp4, xmml, ufp1, srcSize=2, destSize=4, ext = Signed + "| 0x10"
maddi xmml, ufp3, ufp4, size=4, ext=0
- mmuli ufp3, xmmh, ufp2, srcSize=2, destSize=4, ext=(0x2 | 0x10 | 0x20)
- mmuli ufp4, xmmh, ufp2, srcSize=2, destSize=4, ext=(0x2 | 0x10)
+ mmuli ufp3, xmmh, ufp2, srcSize=2, destSize=4, ext = Signed + "| 0x10 | 0x20"
+ mmuli ufp4, xmmh, ufp2, srcSize=2, destSize=4, ext = Signed + "| 0x10"
maddi xmmh, ufp3, ufp4, size=4, ext=0
};
'''
diff --git a/src/arch/x86/isa/insts/simd128/integer/arithmetic/subtraction.py b/src/arch/x86/isa/insts/simd128/integer/arithmetic/subtraction.py
index fdfb08667..d73434832 100644
--- a/src/arch/x86/isa/insts/simd128/integer/arithmetic/subtraction.py
+++ b/src/arch/x86/isa/insts/simd128/integer/arithmetic/subtraction.py
@@ -135,43 +135,43 @@ def macroop PSUBQ_XMM_P {
};
def macroop PSUBSB_XMM_XMM {
- msubi xmml, xmml, xmmlm, size=1, ext=4
- msubi xmmh, xmmh, xmmhm, size=1, ext=4
+ msubi xmml, xmml, xmmlm, size=1, ext = "2 |" + Signed
+ msubi xmmh, xmmh, xmmhm, size=1, ext = "2 |" + Signed
};
def macroop PSUBSB_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- msubi xmml, xmml, ufp1, size=1, ext=4
- msubi xmmh, xmmh, ufp2, size=1, ext=4
+ msubi xmml, xmml, ufp1, size=1, ext = "2 |" + Signed
+ msubi xmmh, xmmh, ufp2, size=1, ext = "2 |" + Signed
};
def macroop PSUBSB_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
- msubi xmml, xmml, ufp1, size=1, ext=4
- msubi xmmh, xmmh, ufp2, size=1, ext=4
+ msubi xmml, xmml, ufp1, size=1, ext = "2 |" + Signed
+ msubi xmmh, xmmh, ufp2, size=1, ext = "2 |" + Signed
};
def macroop PSUBSW_XMM_XMM {
- msubi xmml, xmml, xmmlm, size=2, ext=4
- msubi xmmh, xmmh, xmmhm, size=2, ext=4
+ msubi xmml, xmml, xmmlm, size=2, ext = "2 |" + Signed
+ msubi xmmh, xmmh, xmmhm, size=2, ext = "2 |" + Signed
};
def macroop PSUBSW_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- msubi xmml, xmml, ufp1, size=2, ext=4
- msubi xmmh, xmmh, ufp2, size=2, ext=4
+ msubi xmml, xmml, ufp1, size=2, ext = "2 |" + Signed
+ msubi xmmh, xmmh, ufp2, size=2, ext = "2 |" + Signed
};
def macroop PSUBSW_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
- msubi xmml, xmml, ufp1, size=2, ext=4
- msubi xmmh, xmmh, ufp2, size=2, ext=4
+ msubi xmml, xmml, ufp1, size=2, ext = "2 |" + Signed
+ msubi xmmh, xmmh, ufp2, size=2, ext = "2 |" + Signed
};
def macroop PSUBUSB_XMM_XMM {
diff --git a/src/arch/x86/isa/insts/simd128/integer/compare/compare_and_write_minimum_or_maximum.py b/src/arch/x86/isa/insts/simd128/integer/compare/compare_and_write_minimum_or_maximum.py
index d3bfbb529..6610e0690 100644
--- a/src/arch/x86/isa/insts/simd128/integer/compare/compare_and_write_minimum_or_maximum.py
+++ b/src/arch/x86/isa/insts/simd128/integer/compare/compare_and_write_minimum_or_maximum.py
@@ -75,23 +75,23 @@ def macroop PMINUB_XMM_P {
};
def macroop PMINSW_XMM_XMM {
- mmini xmml, xmml, xmmlm, size=2, ext=2
- mmini xmmh, xmmh, xmmhm, size=2, ext=2
+ mmini xmml, xmml, xmmlm, size=2, ext=Signed
+ mmini xmmh, xmmh, xmmhm, size=2, ext=Signed
};
def macroop PMINSW_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- mmini xmml, xmml, ufp1, size=2, ext=2
- mmini xmmh, xmmh, ufp2, size=2, ext=2
+ mmini xmml, xmml, ufp1, size=2, ext=Signed
+ mmini xmmh, xmmh, ufp2, size=2, ext=Signed
};
def macroop PMINSW_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
- mmini xmml, xmml, ufp1, size=2, ext=2
- mmini xmmh, xmmh, ufp2, size=2, ext=2
+ mmini xmml, xmml, ufp1, size=2, ext=Signed
+ mmini xmmh, xmmh, ufp2, size=2, ext=Signed
};
def macroop PMAXUB_XMM_XMM {
@@ -115,22 +115,22 @@ def macroop PMAXUB_XMM_P {
};
def macroop PMAXSW_XMM_XMM {
- mmaxi xmml, xmml, xmmlm, size=2, ext=2
- mmaxi xmmh, xmmh, xmmhm, size=2, ext=2
+ mmaxi xmml, xmml, xmmlm, size=2, ext=Signed
+ mmaxi xmmh, xmmh, xmmhm, size=2, ext=Signed
};
def macroop PMAXSW_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- mmaxi xmml, xmml, ufp1, size=2, ext=2
- mmaxi xmmh, xmmh, ufp2, size=2, ext=2
+ mmaxi xmml, xmml, ufp1, size=2, ext=Signed
+ mmaxi xmmh, xmmh, ufp2, size=2, ext=Signed
};
def macroop PMAXSW_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
- mmaxi xmml, xmml, ufp1, size=2, ext=2
- mmaxi xmmh, xmmh, ufp2, size=2, ext=2
+ mmaxi xmml, xmml, ufp1, size=2, ext=Signed
+ mmaxi xmmh, xmmh, ufp2, size=2, ext=Signed
};
'''
diff --git a/src/arch/x86/isa/insts/simd128/integer/data_reordering/pack_with_saturation.py b/src/arch/x86/isa/insts/simd128/integer/data_reordering/pack_with_saturation.py
index 9112a7382..7afee6cbf 100644
--- a/src/arch/x86/isa/insts/simd128/integer/data_reordering/pack_with_saturation.py
+++ b/src/arch/x86/isa/insts/simd128/integer/data_reordering/pack_with_saturation.py
@@ -55,45 +55,45 @@
microcode = '''
def macroop PACKSSDW_XMM_XMM {
- pack ufp1, xmml, xmmh, ext=1, srcSize=4, destSize=2
- pack xmmh, xmmlm, xmmhm, ext=1, srcSize=4, destSize=2
+ pack ufp1, xmml, xmmh, ext=Signed, srcSize=4, destSize=2
+ pack xmmh, xmmlm, xmmhm, ext=Signed, srcSize=4, destSize=2
movfp xmml, ufp1, dataSize=8
};
def macroop PACKSSDW_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- pack xmml, xmml, xmmh, ext=1, srcSize=4, destSize=2
- pack xmmh, ufp1, ufp2, ext=1, srcSize=4, destSize=2
+ pack xmml, xmml, xmmh, ext=Signed, srcSize=4, destSize=2
+ pack xmmh, ufp1, ufp2, ext=Signed, srcSize=4, destSize=2
};
def macroop PACKSSDW_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
- pack xmml, xmml, xmmh, ext=1, srcSize=4, destSize=2
- pack xmmh, ufp1, ufp2, ext=1, srcSize=4, destSize=2
+ pack xmml, xmml, xmmh, ext=Signed, srcSize=4, destSize=2
+ pack xmmh, ufp1, ufp2, ext=Signed, srcSize=4, destSize=2
};
def macroop PACKSSWB_XMM_XMM {
- pack ufp1, xmml, xmmh, ext=1, srcSize=2, destSize=1
- pack xmmh, xmmlm, xmmhm, ext=1, srcSize=2, destSize=1
+ pack ufp1, xmml, xmmh, ext=Signed, srcSize=2, destSize=1
+ pack xmmh, xmmlm, xmmhm, ext=Signed, srcSize=2, destSize=1
movfp xmml, ufp1, dataSize=8
};
def macroop PACKSSWB_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- pack xmml, xmml, xmmh, ext=1, srcSize=2, destSize=1
- pack xmmh, ufp1, ufp2, ext=1, srcSize=2, destSize=1
+ pack xmml, xmml, xmmh, ext=Signed, srcSize=2, destSize=1
+ pack xmmh, ufp1, ufp2, ext=Signed, srcSize=2, destSize=1
};
def macroop PACKSSWB_XMM_P {
rdip t7
ldfp ufp1, seg, riprel, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, riprel, "DISPLACEMENT + 8", dataSize=8
- pack xmml, xmml, xmmh, ext=1, srcSize=2, destSize=1
- pack xmmh, ufp1, ufp2, ext=1, srcSize=2, destSize=1
+ pack xmml, xmml, xmmh, ext=Signed, srcSize=2, destSize=1
+ pack xmmh, ufp1, ufp2, ext=Signed, srcSize=2, destSize=1
};
def macroop PACKUSWB_XMM_XMM {
@@ -105,8 +105,8 @@ def macroop PACKUSWB_XMM_XMM {
def macroop PACKUSWB_XMM_M {
ldfp ufp1, seg, sib, "DISPLACEMENT", dataSize=8
ldfp ufp2, seg, sib, "DISPLACEMENT + 8", dataSize=8
- pack xmml, xmml, xmmh, ext=0, srcSize=2, destSize=1
- pack xmmh, ufp1, ufp2, ext=0, srcSize=2, destSize=1
+ pack xmml, xmml, xmmh, ext=Signed, srcSize=2, destSize=1
+ pack xmmh, ufp1, ufp2, ext=Signed, srcSize=2, destSize=1
};
def macroop PACKUSWB_XMM_P {