summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrill Gorcunov <gorcunov@gmail.com>2010-11-20 21:43:34 +0300
committerCyrill Gorcunov <gorcunov@gmail.com>2010-11-23 18:39:01 +0300
commitbf305019a8bcdafb924a3ffeee9aec617bd1149b (patch)
treedcde97b9e70d3e61c6c6649c44c20c300e615ab1
parenta54b5eabd3a4a1339ee7aa1d9369d92d5d188f7f (diff)
downloadnasm-bf305019a8bcdafb924a3ffeee9aec617bd1149b.tar.gz
insns: Implement size bits on KATMAI
Perhaps not all of them are coevered yet, but mostly. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
-rw-r--r--insns.dat132
1 files changed, 63 insertions, 69 deletions
diff --git a/insns.dat b/insns.dat
index 79cc2a76..550318e5 100644
--- a/insns.dat
+++ b/insns.dat
@@ -1423,35 +1423,35 @@ SETcc mem \1\x0F\330\x90\200 386,SB
SETcc reg8 \1\x0F\330\x90\200 386
;# Katmai Streaming SIMD instructions (SSE -- a.k.a. KNI, XMM, MMX2)
-ADDPS xmmreg,xmmrm \360\2\x0F\x58\110 KATMAI,SSE
-ADDSS xmmreg,xmmrm \363\2\x0F\x58\110 KATMAI,SSE,SD
-ANDNPS xmmreg,xmmrm \360\2\x0F\x55\110 KATMAI,SSE
-ANDPS xmmreg,xmmrm \360\2\x0F\x54\110 KATMAI,SSE
-CMPEQPS xmmreg,xmmrm \360\2\x0F\xC2\110\1\x00 KATMAI,SSE
-CMPEQSS xmmreg,xmmrm \363\2\x0F\xC2\110\1\x00 KATMAI,SSE
-CMPLEPS xmmreg,xmmrm \360\2\x0F\xC2\110\1\x02 KATMAI,SSE
-CMPLESS xmmreg,xmmrm \363\2\x0F\xC2\110\1\x02 KATMAI,SSE
-CMPLTPS xmmreg,xmmrm \360\2\x0F\xC2\110\1\x01 KATMAI,SSE
-CMPLTSS xmmreg,xmmrm \363\2\x0F\xC2\110\1\x01 KATMAI,SSE
-CMPNEQPS xmmreg,xmmrm \360\2\x0F\xC2\110\1\x04 KATMAI,SSE
-CMPNEQSS xmmreg,xmmrm \363\2\x0F\xC2\110\1\x04 KATMAI,SSE
-CMPNLEPS xmmreg,xmmrm \360\2\x0F\xC2\110\1\x06 KATMAI,SSE
-CMPNLESS xmmreg,xmmrm \363\2\x0F\xC2\110\1\x06 KATMAI,SSE
-CMPNLTPS xmmreg,xmmrm \360\2\x0F\xC2\110\1\x05 KATMAI,SSE
-CMPNLTSS xmmreg,xmmrm \363\2\x0F\xC2\110\1\x05 KATMAI,SSE
-CMPORDPS xmmreg,xmmrm \360\2\x0F\xC2\110\1\x07 KATMAI,SSE
-CMPORDSS xmmreg,xmmrm \363\2\x0F\xC2\110\1\x07 KATMAI,SSE
-CMPUNORDPS xmmreg,xmmrm \360\2\x0F\xC2\110\1\x03 KATMAI,SSE
-CMPUNORDSS xmmreg,xmmrm \363\2\x0F\xC2\110\1\x03 KATMAI,SSE
+ADDPS xmmreg,xmmrm128 \360\2\x0F\x58\110 KATMAI,SSE
+ADDSS xmmreg,xmmrm32 \363\2\x0F\x58\110 KATMAI,SSE
+ANDNPS xmmreg,xmmrm128 \360\2\x0F\x55\110 KATMAI,SSE
+ANDPS xmmreg,xmmrm128 \360\2\x0F\x54\110 KATMAI,SSE
+CMPEQPS xmmreg,xmmrm128 \360\2\x0F\xC2\110\1\x00 KATMAI,SSE
+CMPEQSS xmmreg,xmmrm32 \363\2\x0F\xC2\110\1\x00 KATMAI,SSE
+CMPLEPS xmmreg,xmmrm128 \360\2\x0F\xC2\110\1\x02 KATMAI,SSE
+CMPLESS xmmreg,xmmrm32 \363\2\x0F\xC2\110\1\x02 KATMAI,SSE
+CMPLTPS xmmreg,xmmrm128 \360\2\x0F\xC2\110\1\x01 KATMAI,SSE
+CMPLTSS xmmreg,xmmrm32 \363\2\x0F\xC2\110\1\x01 KATMAI,SSE
+CMPNEQPS xmmreg,xmmrm128 \360\2\x0F\xC2\110\1\x04 KATMAI,SSE
+CMPNEQSS xmmreg,xmmrm32 \363\2\x0F\xC2\110\1\x04 KATMAI,SSE
+CMPNLEPS xmmreg,xmmrm128 \360\2\x0F\xC2\110\1\x06 KATMAI,SSE
+CMPNLESS xmmreg,xmmrm32 \363\2\x0F\xC2\110\1\x06 KATMAI,SSE
+CMPNLTPS xmmreg,xmmrm128 \360\2\x0F\xC2\110\1\x05 KATMAI,SSE
+CMPNLTSS xmmreg,xmmrm32 \363\2\x0F\xC2\110\1\x05 KATMAI,SSE
+CMPORDPS xmmreg,xmmrm128 \360\2\x0F\xC2\110\1\x07 KATMAI,SSE
+CMPORDSS xmmreg,xmmrm32 \363\2\x0F\xC2\110\1\x07 KATMAI,SSE
+CMPUNORDPS xmmreg,xmmrm128 \360\2\x0F\xC2\110\1\x03 KATMAI,SSE
+CMPUNORDSS xmmreg,xmmrm32 \363\2\x0F\xC2\110\1\x03 KATMAI,SSE
; CMPPS/CMPSS must come after the specific ops; that way the disassembler will find the
; specific ops first and only disassemble illegal ones as cmpps/cmpss.
CMPPS xmmreg,mem,imm \360\2\x0F\xC2\110\26 KATMAI,SSE,SB,AR2
CMPPS xmmreg,xmmreg,imm \360\2\x0F\xC2\110\26 KATMAI,SSE,SB,AR2
CMPSS xmmreg,mem,imm \363\2\x0F\xC2\110\26 KATMAI,SSE,SB,AR2
CMPSS xmmreg,xmmreg,imm \363\2\x0F\xC2\110\26 KATMAI,SSE,SB,AR2
-COMISS xmmreg,xmmrm \360\2\x0F\x2F\110 KATMAI,SSE
-CVTPI2PS xmmreg,mmxrm \360\2\x0F\x2A\110 KATMAI,SSE,MMX,SQ
-CVTPS2PI mmxreg,xmmrm \360\2\x0F\x2D\110 KATMAI,SSE,MMX,SQ
+COMISS xmmreg,xmmrm32 \360\2\x0F\x2F\110 KATMAI,SSE
+CVTPI2PS xmmreg,mmxrm64 \360\2\x0F\x2A\110 KATMAI,SSE,MMX
+CVTPS2PI mmxreg,xmmrm64 \360\2\x0F\x2D\110 KATMAI,SSE,MMX
CVTSI2SS xmmreg,mem \363\2\x0F\x2A\110 KATMAI,SSE,SD,AR1,ND
CVTSI2SS xmmreg,rm32 \363\2\x0F\x2A\110 KATMAI,SSE,SD,AR1
CVTSI2SS xmmreg,rm64 \324\363\2\x0F\x2A\110 X64,SSE,SQ,AR1
@@ -1462,52 +1462,46 @@ CVTSS2SI reg64,mem \324\363\2\x0F\x2D\110 X64,SSE,SD,AR1
CVTTPS2PI mmxreg,xmmrm \360\2\x0F\x2C\110 KATMAI,SSE,MMX,SQ
CVTTSS2SI reg32,xmmrm \363\2\x0F\x2C\110 KATMAI,SSE,SD,AR1
CVTTSS2SI reg64,xmmrm \324\363\2\x0F\x2C\110 X64,SSE,SD,AR1
-DIVPS xmmreg,xmmrm \360\2\x0F\x5E\110 KATMAI,SSE
-DIVSS xmmreg,xmmrm \363\2\x0F\x5E\110 KATMAI,SSE
-LDMXCSR mem \2\x0F\xAE\202 KATMAI,SSE,SD
-MAXPS xmmreg,xmmrm \360\2\x0F\x5F\110 KATMAI,SSE
-MAXSS xmmreg,xmmrm \363\2\x0F\x5F\110 KATMAI,SSE
-MINPS xmmreg,xmmrm \360\2\x0F\x5D\110 KATMAI,SSE
-MINSS xmmreg,xmmrm \363\2\x0F\x5D\110 KATMAI,SSE
-MOVAPS xmmreg,mem \360\2\x0F\x28\110 KATMAI,SSE
-MOVAPS mem,xmmreg \360\2\x0F\x29\101 KATMAI,SSE
-MOVAPS xmmreg,xmmreg \360\2\x0F\x28\110 KATMAI,SSE
-MOVAPS xmmreg,xmmreg \360\2\x0F\x29\101 KATMAI,SSE
-MOVHPS xmmreg,mem \360\2\x0F\x16\110 KATMAI,SSE
-MOVHPS mem,xmmreg \360\2\x0F\x17\101 KATMAI,SSE
+DIVPS xmmreg,xmmrm128 \360\2\x0F\x5E\110 KATMAI,SSE
+DIVSS xmmreg,xmmrm32 \363\2\x0F\x5E\110 KATMAI,SSE
+LDMXCSR mem32 \2\x0F\xAE\202 KATMAI,SSE
+MAXPS xmmreg,xmmrm128 \360\2\x0F\x5F\110 KATMAI,SSE
+MAXSS xmmreg,xmmrm32 \363\2\x0F\x5F\110 KATMAI,SSE
+MINPS xmmreg,xmmrm128 \360\2\x0F\x5D\110 KATMAI,SSE
+MINSS xmmreg,xmmrm32 \363\2\x0F\x5D\110 KATMAI,SSE
+MOVAPS xmmreg,xmmrm128 \360\2\x0F\x28\110 KATMAI,SSE
+MOVAPS mem128,xmmreg \360\2\x0F\x29\101 KATMAI,SSE
+MOVHPS xmmreg,mem64 \360\2\x0F\x16\110 KATMAI,SSE
+MOVHPS mem64,xmmreg \360\2\x0F\x17\101 KATMAI,SSE
MOVLHPS xmmreg,xmmreg \360\2\x0F\x16\110 KATMAI,SSE
-MOVLPS xmmreg,mem \360\2\x0F\x12\110 KATMAI,SSE
-MOVLPS mem,xmmreg \360\2\x0F\x13\101 KATMAI,SSE
+MOVLPS xmmreg,mem64 \360\2\x0F\x12\110 KATMAI,SSE
+MOVLPS mem64,xmmreg \360\2\x0F\x13\101 KATMAI,SSE
MOVHLPS xmmreg,xmmreg \360\2\x0F\x12\110 KATMAI,SSE
MOVMSKPS reg32,xmmreg \360\2\x0F\x50\110 KATMAI,SSE
MOVMSKPS reg64,xmmreg \360\324\2\x0F\x50\110 X64,SSE
-MOVNTPS mem,xmmreg \360\2\x0F\x2B\101 KATMAI,SSE
-MOVSS xmmreg,mem \363\2\x0F\x10\110 KATMAI,SSE
-MOVSS mem,xmmreg \363\2\x0F\x11\101 KATMAI,SSE
+MOVNTPS mem128,xmmreg \360\2\x0F\x2B\101 KATMAI,SSE
+MOVSS xmmreg,xmmrm32 \363\2\x0F\x10\110 KATMAI,SSE
+MOVSS mem32,xmmreg \363\2\x0F\x11\101 KATMAI,SSE
MOVSS xmmreg,xmmreg \363\2\x0F\x10\110 KATMAI,SSE
-MOVSS xmmreg,xmmreg \363\2\x0F\x11\101 KATMAI,SSE
-MOVUPS xmmreg,mem \360\2\x0F\x10\110 KATMAI,SSE
-MOVUPS mem,xmmreg \360\2\x0F\x11\101 KATMAI,SSE
-MOVUPS xmmreg,xmmreg \360\2\x0F\x10\110 KATMAI,SSE
-MOVUPS xmmreg,xmmreg \360\2\x0F\x11\101 KATMAI,SSE
-MULPS xmmreg,xmmrm \360\2\x0F\x59\110 KATMAI,SSE
-MULSS xmmreg,xmmrm \363\2\x0F\x59\110 KATMAI,SSE
-ORPS xmmreg,xmmrm \360\2\x0F\x56\110 KATMAI,SSE
-RCPPS xmmreg,xmmrm \360\2\x0F\x53\110 KATMAI,SSE
-RCPSS xmmreg,xmmrm \363\2\x0F\x53\110 KATMAI,SSE
-RSQRTPS xmmreg,xmmrm \360\2\x0F\x52\110 KATMAI,SSE
-RSQRTSS xmmreg,xmmrm \363\2\x0F\x52\110 KATMAI,SSE
-SHUFPS xmmreg,mem,imm \360\2\x0F\xC6\110\26 KATMAI,SSE,SB,AR2
-SHUFPS xmmreg,xmmreg,imm \360\2\x0F\xC6\110\26 KATMAI,SSE,SB,AR2
-SQRTPS xmmreg,xmmrm \360\2\x0F\x51\110 KATMAI,SSE
-SQRTSS xmmreg,xmmrm \363\2\x0F\x51\110 KATMAI,SSE
-STMXCSR mem \2\x0F\xAE\203 KATMAI,SSE,SD
-SUBPS xmmreg,xmmrm \360\2\x0F\x5C\110 KATMAI,SSE
-SUBSS xmmreg,xmmrm \363\2\x0F\x5C\110 KATMAI,SSE
-UCOMISS xmmreg,xmmrm \360\2\x0F\x2E\110 KATMAI,SSE
-UNPCKHPS xmmreg,xmmrm \360\2\x0F\x15\110 KATMAI,SSE
-UNPCKLPS xmmreg,xmmrm \360\2\x0F\x14\110 KATMAI,SSE
-XORPS xmmreg,xmmrm \360\2\x0F\x57\110 KATMAI,SSE
+MOVUPS xmmreg,xmmrm128 \360\2\x0F\x10\110 KATMAI,SSE
+MOVUPS mem128,xmmreg \360\2\x0F\x11\101 KATMAI,SSE
+MULPS xmmreg,xmmrm128 \360\2\x0F\x59\110 KATMAI,SSE
+MULSS xmmreg,xmmrm32 \363\2\x0F\x59\110 KATMAI,SSE
+ORPS xmmreg,xmmrm128 \360\2\x0F\x56\110 KATMAI,SSE
+RCPPS xmmreg,xmmrm128 \360\2\x0F\x53\110 KATMAI,SSE
+RCPSS xmmreg,xmmrm32 \363\2\x0F\x53\110 KATMAI,SSE
+RSQRTPS xmmreg,xmmrm128 \360\2\x0F\x52\110 KATMAI,SSE
+RSQRTSS xmmreg,xmmrm32 \363\2\x0F\x52\110 KATMAI,SSE
+SHUFPS xmmreg,xmmrm128,imm8 \360\2\x0F\xC6\110\26 KATMAI,SSE
+SQRTPS xmmreg,xmmrm128 \360\2\x0F\x51\110 KATMAI,SSE
+SQRTSS xmmreg,xmmrm32 \363\2\x0F\x51\110 KATMAI,SSE
+STMXCSR mem32 \2\x0F\xAE\203 KATMAI,SSE
+SUBPS xmmreg,xmmrm128 \360\2\x0F\x5C\110 KATMAI,SSE
+SUBSS xmmreg,xmmrm32 \363\2\x0F\x5C\110 KATMAI,SSE
+UCOMISS xmmreg,xmmrm32 \360\2\x0F\x2E\110 KATMAI,SSE
+UNPCKHPS xmmreg,xmmrm128 \360\2\x0F\x15\110 KATMAI,SSE
+UNPCKLPS xmmreg,xmmrm128 \360\2\x0F\x14\110 KATMAI,SSE
+XORPS xmmreg,xmmrm128 \360\2\x0F\x57\110 KATMAI,SSE
;# Introduced in Deschutes but necessary for SSE support
FXRSTOR mem [m: 0f ae /1] P6,SSE,FPU
@@ -1701,8 +1695,8 @@ CMPUNORDPD xmmreg,xmmrm \361\2\x0F\xC2\110\1\x03 WILLAMETTE,SSE2,SO
CMPUNORDSD xmmreg,xmmrm \362\2\x0F\xC2\110\1\x03 WILLAMETTE,SSE2
; CMPPD/CMPSD must come after the specific ops; that way the disassembler will find the
; specific ops first and only disassemble illegal ones as cmppd/cmpsd.
-CMPPD xmmreg,xmmrm,imm \361\2\x0F\xC2\110\26 WILLAMETTE,SSE2,SM2,SB,AR2
-CMPSD xmmreg,xmmrm,imm \362\2\x0F\xC2\110\26 WILLAMETTE,SSE2,SB,AR2
+CMPPD xmmreg,xmmrm128,imm8 \361\2\x0F\xC2\110\26 WILLAMETTE,SSE2
+CMPSD xmmreg,xmmrm128,imm8 \362\2\x0F\xC2\110\26 WILLAMETTE,SSE2
COMISD xmmreg,xmmrm \361\2\x0F\x2F\110 WILLAMETTE,SSE2
CVTDQ2PD xmmreg,xmmrm \363\2\x0F\xE6\110 WILLAMETTE,SSE2,SQ
CVTDQ2PS xmmreg,xmmrm \360\2\x0F\x5B\110 WILLAMETTE,SSE2,SO
@@ -1762,9 +1756,9 @@ SQRTSD xmmreg,xmmrm \362\2\x0F\x51\110 WILLAMETTE,SSE2
SUBPD xmmreg,xmmrm \361\2\x0F\x5C\110 WILLAMETTE,SSE2,SO
SUBSD xmmreg,xmmrm \362\2\x0F\x5C\110 WILLAMETTE,SSE2
UCOMISD xmmreg,xmmrm \361\2\x0F\x2E\110 WILLAMETTE,SSE2
-UNPCKHPD xmmreg,xmmrm \361\2\x0F\x15\110 WILLAMETTE,SSE2,SO
-UNPCKLPD xmmreg,xmmrm \361\2\x0F\x14\110 WILLAMETTE,SSE2,SO
-XORPD xmmreg,xmmrm \361\2\x0F\x57\110 WILLAMETTE,SSE2,SO
+UNPCKHPD xmmreg,xmmrm128 \361\2\x0F\x15\110 WILLAMETTE,SSE2
+UNPCKLPD xmmreg,xmmrm128 \361\2\x0F\x14\110 WILLAMETTE,SSE2
+XORPD xmmreg,xmmrm128 \361\2\x0F\x57\110 WILLAMETTE,SSE2
;# Prescott New Instructions (SSE3)
ADDSUBPD xmmreg,xmmrm \361\2\x0F\xD0\110 PRESCOTT,SSE3,SO