mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-11-27 08:10:07 +08:00
(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:
parent
914fdf9ba0
commit
1bec91e567
160
insns.dat
160
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
|
||||
|
Loading…
Reference in New Issue
Block a user