summaryrefslogtreecommitdiff
path: root/insns.dat
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-12-25 15:18:12 -0800
committerH. Peter Anvin <hpa@zytor.com>2007-12-25 15:18:12 -0800
commit1bec91e5672810423d5a9bff5dc531066148230b (patch)
tree5f01c5b8202102ade3cf5a940ca8c02c3b39f7ce /insns.dat
parent914fdf9ba0e4b4b21eda5b0b191c2cad3aaf19e0 (diff)
downloadnasm-1bec91e5672810423d5a9bff5dc531066148230b.tar.gz
nasm-1bec91e5672810423d5a9bff5dc531066148230b.tar.bz2
nasm-1bec91e5672810423d5a9bff5dc531066148230b.zip
(Hopefully) fix the handing of MMX instructions with prefixes
Mark MMX instructions with \323 (do not add REX.W) unless they involve the integer instruction file. Change SM -> SQ for MMX instructions. Something not complete attached, so my understanding is mmxreg,mmxrm needs SQ Something like xmmreg,reg32 needs SD xmmreg,xmmrm needs SO
Diffstat (limited to 'insns.dat')
-rw-r--r--insns.dat160
1 files changed, 80 insertions, 80 deletions
diff --git a/insns.dat b/insns.dat
index 01bf08d..4c76cdb 100644
--- a/insns.dat
+++ b/insns.dat
@@ -868,54 +868,54 @@ OUT reg_dx,reg_eax \321\1\xEF 386
OUTSB void \1\x6E 186
OUTSD void \321\1\x6F 386
OUTSW void \320\1\x6F 186
-PACKSSDW mmxreg,mmxrm \2\x0F\x6B\110 PENT,MMX,SM
-PACKSSWB mmxreg,mmxrm \2\x0F\x63\110 PENT,MMX,SM
-PACKUSWB mmxreg,mmxrm \2\x0F\x67\110 PENT,MMX,SM
-PADDB mmxreg,mmxrm \2\x0F\xFC\110 PENT,MMX,SM
-PADDD mmxreg,mmxrm \2\x0F\xFE\110 PENT,MMX,SM
-PADDSB mmxreg,mmxrm \2\x0F\xEC\110 PENT,MMX,SM
-PADDSIW mmxreg,mmxrm \2\x0F\x51\110 PENT,MMX,SM,CYRIX
-PADDSW mmxreg,mmxrm \2\x0F\xED\110 PENT,MMX,SM
-PADDUSB mmxreg,mmxrm \2\x0F\xDC\110 PENT,MMX,SM
-PADDUSW mmxreg,mmxrm \2\x0F\xDD\110 PENT,MMX,SM
-PADDW mmxreg,mmxrm \2\x0F\xFD\110 PENT,MMX,SM
-PAND mmxreg,mmxrm \2\x0F\xDB\110 PENT,MMX,SM
-PANDN mmxreg,mmxrm \2\x0F\xDF\110 PENT,MMX,SM
+PACKSSDW mmxreg,mmxrm \2\x0F\x6B\110 PENT,MMX,SQ
+PACKSSWB mmxreg,mmxrm \2\x0F\x63\110 PENT,MMX,SQ
+PACKUSWB mmxreg,mmxrm \2\x0F\x67\110 PENT,MMX,SQ
+PADDB mmxreg,mmxrm \2\x0F\xFC\110 PENT,MMX,SQ
+PADDD mmxreg,mmxrm \2\x0F\xFE\110 PENT,MMX,SQ
+PADDSB mmxreg,mmxrm \2\x0F\xEC\110 PENT,MMX,SQ
+PADDSIW mmxreg,mmxrm \2\x0F\x51\110 PENT,MMX,SQ,CYRIX
+PADDSW mmxreg,mmxrm \2\x0F\xED\110 PENT,MMX,SQ
+PADDUSB mmxreg,mmxrm \2\x0F\xDC\110 PENT,MMX,SQ
+PADDUSW mmxreg,mmxrm \2\x0F\xDD\110 PENT,MMX,SQ
+PADDW mmxreg,mmxrm \2\x0F\xFD\110 PENT,MMX,SQ
+PAND mmxreg,mmxrm \2\x0F\xDB\110 PENT,MMX,SQ
+PANDN mmxreg,mmxrm \2\x0F\xDF\110 PENT,MMX,SQ
PAUSE void \314\333\1\x90 8086
-PAVEB mmxreg,mmxrm \2\x0F\x50\110 PENT,MMX,SM,CYRIX
-PAVGUSB mmxreg,mmxrm \2\x0F\x0F\110\01\xBF PENT,3DNOW,SM
-PCMPEQB mmxreg,mmxrm \2\x0F\x74\110 PENT,MMX,SM
-PCMPEQD mmxreg,mmxrm \2\x0F\x76\110 PENT,MMX,SM
-PCMPEQW mmxreg,mmxrm \2\x0F\x75\110 PENT,MMX,SM
-PCMPGTB mmxreg,mmxrm \2\x0F\x64\110 PENT,MMX,SM
-PCMPGTD mmxreg,mmxrm \2\x0F\x66\110 PENT,MMX,SM
-PCMPGTW mmxreg,mmxrm \2\x0F\x65\110 PENT,MMX,SM
+PAVEB mmxreg,mmxrm \2\x0F\x50\110 PENT,MMX,SQ,CYRIX
+PAVGUSB mmxreg,mmxrm \2\x0F\x0F\110\01\xBF PENT,3DNOW,SQ
+PCMPEQB mmxreg,mmxrm \2\x0F\x74\110 PENT,MMX,SQ
+PCMPEQD mmxreg,mmxrm \2\x0F\x76\110 PENT,MMX,SQ
+PCMPEQW mmxreg,mmxrm \2\x0F\x75\110 PENT,MMX,SQ
+PCMPGTB mmxreg,mmxrm \2\x0F\x64\110 PENT,MMX,SQ
+PCMPGTD mmxreg,mmxrm \2\x0F\x66\110 PENT,MMX,SQ
+PCMPGTW mmxreg,mmxrm \2\x0F\x65\110 PENT,MMX,SQ
PDISTIB mmxreg,mem \2\x0F\x54\110 PENT,MMX,SM,CYRIX
-PF2ID mmxreg,mmxrm \2\x0F\x0F\110\01\x1D PENT,3DNOW,SM
-PFACC mmxreg,mmxrm \2\x0F\x0F\110\01\xAE PENT,3DNOW,SM
-PFADD mmxreg,mmxrm \2\x0F\x0F\110\01\x9E PENT,3DNOW,SM
-PFCMPEQ mmxreg,mmxrm \2\x0F\x0F\110\01\xB0 PENT,3DNOW,SM
-PFCMPGE mmxreg,mmxrm \2\x0F\x0F\110\01\x90 PENT,3DNOW,SM
-PFCMPGT mmxreg,mmxrm \2\x0F\x0F\110\01\xA0 PENT,3DNOW,SM
-PFMAX mmxreg,mmxrm \2\x0F\x0F\110\01\xA4 PENT,3DNOW,SM
-PFMIN mmxreg,mmxrm \2\x0F\x0F\110\01\x94 PENT,3DNOW,SM
-PFMUL mmxreg,mmxrm \2\x0F\x0F\110\01\xB4 PENT,3DNOW,SM
-PFRCP mmxreg,mmxrm \2\x0F\x0F\110\01\x96 PENT,3DNOW,SM
-PFRCPIT1 mmxreg,mmxrm \2\x0F\x0F\110\01\xA6 PENT,3DNOW,SM
-PFRCPIT2 mmxreg,mmxrm \2\x0F\x0F\110\01\xB6 PENT,3DNOW,SM
-PFRSQIT1 mmxreg,mmxrm \2\x0F\x0F\110\01\xA7 PENT,3DNOW,SM
-PFRSQRT mmxreg,mmxrm \2\x0F\x0F\110\01\x97 PENT,3DNOW,SM
-PFSUB mmxreg,mmxrm \2\x0F\x0F\110\01\x9A PENT,3DNOW,SM
-PFSUBR mmxreg,mmxrm \2\x0F\x0F\110\01\xAA PENT,3DNOW,SM
-PI2FD mmxreg,mmxrm \2\x0F\x0F\110\01\x0D PENT,3DNOW,SM
+PF2ID mmxreg,mmxrm \2\x0F\x0F\110\01\x1D PENT,3DNOW,SQ
+PFACC mmxreg,mmxrm \2\x0F\x0F\110\01\xAE PENT,3DNOW,SQ
+PFADD mmxreg,mmxrm \2\x0F\x0F\110\01\x9E PENT,3DNOW,SQ
+PFCMPEQ mmxreg,mmxrm \2\x0F\x0F\110\01\xB0 PENT,3DNOW,SQ
+PFCMPGE mmxreg,mmxrm \2\x0F\x0F\110\01\x90 PENT,3DNOW,SQ
+PFCMPGT mmxreg,mmxrm \2\x0F\x0F\110\01\xA0 PENT,3DNOW,SQ
+PFMAX mmxreg,mmxrm \2\x0F\x0F\110\01\xA4 PENT,3DNOW,SQ
+PFMIN mmxreg,mmxrm \2\x0F\x0F\110\01\x94 PENT,3DNOW,SQ
+PFMUL mmxreg,mmxrm \2\x0F\x0F\110\01\xB4 PENT,3DNOW,SQ
+PFRCP mmxreg,mmxrm \2\x0F\x0F\110\01\x96 PENT,3DNOW,SQ
+PFRCPIT1 mmxreg,mmxrm \2\x0F\x0F\110\01\xA6 PENT,3DNOW,SQ
+PFRCPIT2 mmxreg,mmxrm \2\x0F\x0F\110\01\xB6 PENT,3DNOW,SQ
+PFRSQIT1 mmxreg,mmxrm \2\x0F\x0F\110\01\xA7 PENT,3DNOW,SQ
+PFRSQRT mmxreg,mmxrm \2\x0F\x0F\110\01\x97 PENT,3DNOW,SQ
+PFSUB mmxreg,mmxrm \2\x0F\x0F\110\01\x9A PENT,3DNOW,SQ
+PFSUBR mmxreg,mmxrm \2\x0F\x0F\110\01\xAA PENT,3DNOW,SQ
+PI2FD mmxreg,mmxrm \2\x0F\x0F\110\01\x0D PENT,3DNOW,SQ
PMACHRIW mmxreg,mem \2\x0F\x5E\110 PENT,MMX,SM,CYRIX
-PMADDWD mmxreg,mmxrm \2\x0F\xF5\110 PENT,MMX,SM
-PMAGW mmxreg,mmxrm \2\x0F\x52\110 PENT,MMX,SM,CYRIX
-PMULHRIW mmxreg,mmxrm \2\x0F\x5D\110 PENT,MMX,SM,CYRIX
-PMULHRWA mmxreg,mmxrm \2\x0F\x0F\110\1\xB7 PENT,3DNOW,SM
-PMULHRWC mmxreg,mmxrm \2\x0F\x59\110 PENT,MMX,SM,CYRIX
-PMULHW mmxreg,mmxrm \2\x0F\xE5\110 PENT,MMX,SM
-PMULLW mmxreg,mmxrm \2\x0F\xD5\110 PENT,MMX,SM
+PMADDWD mmxreg,mmxrm \2\x0F\xF5\110 PENT,MMX,SQ
+PMAGW mmxreg,mmxrm \2\x0F\x52\110 PENT,MMX,SQ,CYRIX
+PMULHRIW mmxreg,mmxrm \2\x0F\x5D\110 PENT,MMX,SQ,CYRIX
+PMULHRWA mmxreg,mmxrm \2\x0F\x0F\110\1\xB7 PENT,3DNOW,SQ
+PMULHRWC mmxreg,mmxrm \2\x0F\x59\110 PENT,MMX,SQ,CYRIX
+PMULHW mmxreg,mmxrm \2\x0F\xE5\110 PENT,MMX,SQ
+PMULLW mmxreg,mmxrm \2\x0F\xD5\110 PENT,MMX,SQ
PMVGEZB mmxreg,mem \2\x0F\x5C\110 PENT,MMX,SM,CYRIX
PMVLZB mmxreg,mem \2\x0F\x5B\110 PENT,MMX,SM,CYRIX
PMVNZB mmxreg,mem \2\x0F\x5A\110 PENT,MMX,SM,CYRIX
@@ -936,43 +936,43 @@ POPF void \322\1\x9D 8086
POPFD void \321\1\x9D 386,NOLONG
POPFQ void \321\1\x9D X64
POPFW void \320\1\x9D 8086
-POR mmxreg,mmxrm \2\x0F\xEB\110 PENT,MMX,SM
+POR mmxreg,mmxrm \2\x0F\xEB\110 PENT,MMX,SQ
PREFETCH mem \2\x0F\x0D\200 PENT,3DNOW,SM
PREFETCHW mem \2\x0F\x0D\201 PENT,3DNOW,SM
PREFETCHNTA mem \2\x0F\x18\200 X64,AMD,SM
PREFETCHT0 mem \2\x0F\x18\200 X64,AMD,SM
PREFETCHT1 mem \2\x0F\x18\201 X64,AMD,SM
PREFETCHT2 mem \2\x0F\x18\202 X64,AMD,SM
-PSLLD mmxreg,mmxrm \2\x0F\xF2\110 PENT,MMX,SM
+PSLLD mmxreg,mmxrm \2\x0F\xF2\110 PENT,MMX,SQ
PSLLD mmxreg,imm \2\x0F\x72\206\25 PENT,MMX
-PSLLQ mmxreg,mmxrm \2\x0F\xF3\110 PENT,MMX,SM
+PSLLQ mmxreg,mmxrm \2\x0F\xF3\110 PENT,MMX,SQ
PSLLQ mmxreg,imm \2\x0F\x73\206\25 PENT,MMX
-PSLLW mmxreg,mmxrm \2\x0F\xF1\110 PENT,MMX,SM
+PSLLW mmxreg,mmxrm \2\x0F\xF1\110 PENT,MMX,SQ
PSLLW mmxreg,imm \2\x0F\x71\206\25 PENT,MMX
-PSRAD mmxreg,mmxrm \2\x0F\xE2\110 PENT,MMX,SM
+PSRAD mmxreg,mmxrm \2\x0F\xE2\110 PENT,MMX,SQ
PSRAD mmxreg,imm \2\x0F\x72\204\25 PENT,MMX
-PSRAW mmxreg,mmxrm \2\x0F\xE1\110 PENT,MMX,SM
+PSRAW mmxreg,mmxrm \2\x0F\xE1\110 PENT,MMX,SQ
PSRAW mmxreg,imm \2\x0F\x71\204\25 PENT,MMX
-PSRLD mmxreg,mmxrm \2\x0F\xD2\110 PENT,MMX,SM
+PSRLD mmxreg,mmxrm \2\x0F\xD2\110 PENT,MMX,SQ
PSRLD mmxreg,imm \2\x0F\x72\202\25 PENT,MMX
-PSRLQ mmxreg,mmxrm \2\x0F\xD3\110 PENT,MMX,SM
+PSRLQ mmxreg,mmxrm \2\x0F\xD3\110 PENT,MMX,SQ
PSRLQ mmxreg,imm \2\x0F\x73\202\25 PENT,MMX
-PSRLW mmxreg,mmxrm \2\x0F\xD1\110 PENT,MMX,SM
+PSRLW mmxreg,mmxrm \2\x0F\xD1\110 PENT,MMX,SQ
PSRLW mmxreg,imm \2\x0F\x71\202\25 PENT,MMX
-PSUBB mmxreg,mmxrm \2\x0F\xF8\110 PENT,MMX,SM
-PSUBD mmxreg,mmxrm \2\x0F\xFA\110 PENT,MMX,SM
-PSUBSB mmxreg,mmxrm \2\x0F\xE8\110 PENT,MMX,SM
-PSUBSIW mmxreg,mmxrm \2\x0F\x55\110 PENT,MMX,SM,CYRIX
-PSUBSW mmxreg,mmxrm \2\x0F\xE9\110 PENT,MMX,SM
-PSUBUSB mmxreg,mmxrm \2\x0F\xD8\110 PENT,MMX,SM
-PSUBUSW mmxreg,mmxrm \2\x0F\xD9\110 PENT,MMX,SM
-PSUBW mmxreg,mmxrm \2\x0F\xF9\110 PENT,MMX,SM
-PUNPCKHBW mmxreg,mmxrm \2\x0F\x68\110 PENT,MMX,SM
-PUNPCKHDQ mmxreg,mmxrm \2\x0F\x6A\110 PENT,MMX,SM
-PUNPCKHWD mmxreg,mmxrm \2\x0F\x69\110 PENT,MMX,SM
-PUNPCKLBW mmxreg,mmxrm \2\x0F\x60\110 PENT,MMX,SM
-PUNPCKLDQ mmxreg,mmxrm \2\x0F\x62\110 PENT,MMX,SM
-PUNPCKLWD mmxreg,mmxrm \2\x0F\x61\110 PENT,MMX,SM
+PSUBB mmxreg,mmxrm \2\x0F\xF8\110 PENT,MMX,SQ
+PSUBD mmxreg,mmxrm \2\x0F\xFA\110 PENT,MMX,SQ
+PSUBSB mmxreg,mmxrm \2\x0F\xE8\110 PENT,MMX,SQ
+PSUBSIW mmxreg,mmxrm \2\x0F\x55\110 PENT,MMX,SQ,CYRIX
+PSUBSW mmxreg,mmxrm \2\x0F\xE9\110 PENT,MMX,SQ
+PSUBUSB mmxreg,mmxrm \2\x0F\xD8\110 PENT,MMX,SQ
+PSUBUSW mmxreg,mmxrm \2\x0F\xD9\110 PENT,MMX,SQ
+PSUBW mmxreg,mmxrm \2\x0F\xF9\110 PENT,MMX,SQ
+PUNPCKHBW mmxreg,mmxrm \2\x0F\x68\110 PENT,MMX,SQ
+PUNPCKHDQ mmxreg,mmxrm \2\x0F\x6A\110 PENT,MMX,SQ
+PUNPCKHWD mmxreg,mmxrm \2\x0F\x69\110 PENT,MMX,SQ
+PUNPCKLBW mmxreg,mmxrm \2\x0F\x60\110 PENT,MMX,SQ
+PUNPCKLDQ mmxreg,mmxrm \2\x0F\x62\110 PENT,MMX,SQ
+PUNPCKLWD mmxreg,mmxrm \2\x0F\x61\110 PENT,MMX,SQ
PUSH reg16 \320\10\x50 8086
PUSH reg32 \321\10\x50 386,NOLONG
PUSH reg64 \323\10\x50 X64
@@ -995,7 +995,7 @@ PUSHF void \322\1\x9C 8086
PUSHFD void \321\1\x9C 386,NOLONG
PUSHFQ void \321\1\x9C X64
PUSHFW void \320\1\x9C 8086
-PXOR mmxreg,mmxrm \2\x0F\xEF\110 PENT,MMX,SM
+PXOR mmxreg,mmxrm \2\x0F\xEF\110 PENT,MMX,SQ
RCL rm8,unity \1\xD0\202 8086
RCL rm8,reg_cl \1\xD2\202 8086
RCL rm8,imm \1\xC0\202\25 186,SB
@@ -1485,21 +1485,21 @@ PINSRW mmxreg,reg16,imm \2\x0F\xC4\110\26 KATMAI,MMX,SB,AR2
PINSRW mmxreg,reg32,imm \2\x0F\xC4\110\26 KATMAI,MMX,SB,AR2,ND
PINSRW mmxreg,mem,imm \2\x0F\xC4\110\26 KATMAI,MMX,SB,AR2
PINSRW mmxreg,mem16,imm \2\x0F\xC4\110\26 KATMAI,MMX,SB,AR2,ND
-PMAXSW mmxreg,mmxrm \2\x0F\xEE\110 KATMAI,MMX,SM
-PMAXUB mmxreg,mmxrm \2\x0F\xDE\110 KATMAI,MMX,SM
-PMINSW mmxreg,mmxrm \2\x0F\xEA\110 KATMAI,MMX,SM
-PMINUB mmxreg,mmxrm \2\x0F\xDA\110 KATMAI,MMX,SM
+PMAXSW mmxreg,mmxrm \2\x0F\xEE\110 KATMAI,MMX,SQ
+PMAXUB mmxreg,mmxrm \2\x0F\xDE\110 KATMAI,MMX,SQ
+PMINSW mmxreg,mmxrm \2\x0F\xEA\110 KATMAI,MMX,SQ
+PMINUB mmxreg,mmxrm \2\x0F\xDA\110 KATMAI,MMX,SQ
PMOVMSKB reg32,mmxreg \2\x0F\xD7\110 KATMAI,MMX
-PMULHUW mmxreg,mmxrm \2\x0F\xE4\110 KATMAI,MMX,SM
-PSADBW mmxreg,mmxrm \2\x0F\xF6\110 KATMAI,MMX,SM
+PMULHUW mmxreg,mmxrm \2\x0F\xE4\110 KATMAI,MMX,SQ
+PSADBW mmxreg,mmxrm \2\x0F\xF6\110 KATMAI,MMX,SQ
PSHUFW mmxreg,mmxrm,imm \2\x0F\x70\110\22 KATMAI,MMX,SM2,SB,AR2
; AMD Enhanced 3DNow! (Athlon) instructions
-PF2IW mmxreg,mmxrm \2\x0F\x0F\110\01\x1C PENT,3DNOW,SM
-PFNACC mmxreg,mmxrm \2\x0F\x0F\110\01\x8A PENT,3DNOW,SM
-PFPNACC mmxreg,mmxrm \2\x0F\x0F\110\01\x8E PENT,3DNOW,SM
-PI2FW mmxreg,mmxrm \2\x0F\x0F\110\01\x0C PENT,3DNOW,SM
-PSWAPD mmxreg,mmxrm \2\x0F\x0F\110\01\xBB PENT,3DNOW,SM
+PF2IW mmxreg,mmxrm \2\x0F\x0F\110\01\x1C PENT,3DNOW,SQ
+PFNACC mmxreg,mmxrm \2\x0F\x0F\110\01\x8A PENT,3DNOW,SQ
+PFPNACC mmxreg,mmxrm \2\x0F\x0F\110\01\x8E PENT,3DNOW,SQ
+PI2FW mmxreg,mmxrm \2\x0F\x0F\110\01\x0C PENT,3DNOW,SQ
+PSWAPD mmxreg,mmxrm \2\x0F\x0F\110\01\xBB PENT,3DNOW,SQ
; Willamette SSE2 Cacheability Instructions
MASKMOVDQU xmmreg,xmmreg \366\2\x0F\xF7\110 WILLAMETTE,SSE2