(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
This commit is contained in:
H. Peter Anvin 2007-12-25 15:18:12 -08:00
parent 914fdf9ba0
commit 1bec91e567

160
insns.dat
View File

@ -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