From 1bec91e5672810423d5a9bff5dc531066148230b Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Tue, 25 Dec 2007 15:18:12 -0800 Subject: [PATCH] (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 --- insns.dat | 160 +++++++++++++++++++++++++++++++------------------------------- 1 file 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 -- 2.7.4