From 48af17738ce6c15c7110c6d67dc2b7191c46693b Mon Sep 17 00:00:00 2001 From: Keith Kanios Date: Fri, 17 Aug 2007 07:37:52 +0000 Subject: [PATCH] Fixed issues with REX prefix effective address generation. Fixed XMM instruction output. --- assemble.c | 52 +++--- insns.dat | 454 ++++++++++++++++++++++++++--------------------------- 2 files changed, 258 insertions(+), 248 deletions(-) diff --git a/assemble.c b/assemble.c index 03efccf..a733055 100644 --- a/assemble.c +++ b/assemble.c @@ -51,7 +51,7 @@ * the memory reference in operand x. * \310 - indicates fixed 16-bit address size, i.e. optional 0x67. * \311 - indicates fixed 32-bit address size, i.e. optional 0x67. - * \312 - (disassembler only) marker on LOOP, LOOPxx instructions. + * \312 - (disassembler only) marker on LOOP, LOOPxx instructions. * \313 - indicates fixed 64-bit address size, 0x67 invalid. * \320 - indicates fixed 16-bit operand size, i.e. optional 0x66. * \321 - indicates fixed 32-bit operand size, i.e. optional 0x66. @@ -62,14 +62,16 @@ * \324 - indicates 64-bit operand size requiring REX prefix. * \330 - a literal byte follows in the code stream, to be added * to the condition code value of the instruction. - * \331 - instruction not valid with REP prefix. Hint for + * \331 - instruction not valid with REP prefix. Hint for * disassembler only; for SSE instructions. - * \332 - disassemble a rep (0xF3 byte) prefix as repe not rep. - * \333 - REP prefix (0xF3 byte); for SSE instructions. Not encoded - * as a literal byte in order to aid the disassembler. - * \334 - LOCK prefix used instead of REX.R + * \332 - disassemble a rep (0xF3 byte) prefix as repe not rep. + * \333 - REP prefix (0xF3 byte); for SSE instructions. Not encoded + * as a literal byte in order to aid the disassembler. + * \334 - LOCK prefix used instead of REX.R * \340 - reserve bytes of uninitialized storage. * Operand 0 had better be a segmentless constant. + * \366 - operand-size override prefix (0x66); to ensure proper + REX prefix placement. * \370,\371,\372 - match only if operand 0 meets byte jump criteria. * 370 is used for Jcc, 371 is used for JMP. * \373 - assemble 0x03 if bits==16, 0x05 if bits==32; @@ -874,6 +876,9 @@ static int32_t calcsize(int32_t segment, int32_t offset, int bits, else length += ins->oprs[0].offset << (c - 0340); break; + case 0366: + length++; + break; case 0370: case 0371: case 0372: @@ -1356,14 +1361,14 @@ static void gencode(int32_t segment, int32_t offset, int bits, offset += 1; break; - case 0334: - if (ins->rex & REX_R) { - *bytes = 0xF0; - out(offset, segment, bytes, OUT_RAWDATA + 1, NO_SEG, NO_SEG); - offset += 1; - } - ins->rex &= ~(REX_L|REX_R); - break; + case 0334: + if (ins->rex & REX_R) { + *bytes = 0xF0; + out(offset, segment, bytes, OUT_RAWDATA + 1, NO_SEG, NO_SEG); + offset += 1; + } + ins->rex &= ~(REX_L|REX_R); + break; case 0340: case 0341: @@ -1379,6 +1384,11 @@ static void gencode(int32_t segment, int32_t offset, int bits, } break; + case 0366: + *bytes = 0x66; + out(offset, segment, bytes, OUT_RAWDATA + 1, NO_SEG, NO_SEG); + offset += 1; + break; case 0370: case 0371: case 0372: @@ -1753,27 +1763,27 @@ static ea *process_ea(operand * input, ea * output, int addrbits, /* make single reg base, unless hint */ bt = it, bx = ix, it = -1, ix = 0; } - if (((s == 2 && (it & 7) != (REG_NUM_ESP & 7) + if (((s == 2 && t != REG_NUM_ESP && !(input->eaflags & EAF_TIMESTWO)) || s == 3 || s == 5 || s == 9) && bt == -1) bt = it, bx = ix, s--; /* convert 3*EAX to EAX+2*EAX */ - if (it == -1 && (bt & 7) != (REG_NUM_ESP & 7) + if (it == -1 && (bt & 7) != REG_NUM_ESP && (input->eaflags & EAF_TIMESTWO)) it = bt, ix = bx, bt = -1, bx = 0, s = 1; /* convert [NOSPLIT EAX] to sib format with 0x0 displacement */ - if (s == 1 && (it & 7) == (REG_NUM_ESP & 7)) { + if (s == 1 && it == REG_NUM_ESP) { /* swap ESP into base if scale is 1 */ t = it, it = bt, bt = t; t = ix, ix = bx, bx = t; } - if ((it & 7) == (REG_NUM_ESP & 7) + if (it == REG_NUM_ESP || (s != 1 && s != 2 && s != 4 && s != 8 && it != -1)) return NULL; /* wrong, for various reasons */ output->rex |= rexflags(it, ix, REX_X); output->rex |= rexflags(bt, bx, REX_B); - if (it == -1 && (bt & 7) != (REG_NUM_ESP & 7)) { + if (it == -1 && (bt & 7) != REG_NUM_ESP) { /* no SIB needed */ int mod, rm; @@ -1782,7 +1792,7 @@ static ea *process_ea(operand * input, ea * output, int addrbits, mod = 0; } else { rm = (bt & 7); - if (rm != (REG_NUM_EBP & 7) && o == 0 && + if (rm != REG_NUM_EBP && o == 0 && seg == NO_SEG && !forw_ref && !(input->eaflags & (EAF_BYTEOFFS | EAF_WORDOFFS))) @@ -1830,7 +1840,7 @@ static ea *process_ea(operand * input, ea * output, int addrbits, mod = 0; } else { base = (bt & 7); - if (base != (REG_NUM_EBP & 7) && o == 0 && + if (base != REG_NUM_EBP && o == 0 && seg == NO_SEG && !forw_ref && !(input->eaflags & (EAF_BYTEOFFS | EAF_WORDOFFS))) diff --git a/insns.dat b/insns.dat index edc52a8..0153726 100644 --- a/insns.dat +++ b/insns.dat @@ -1572,241 +1572,241 @@ PSWAPD mmxreg,mem \301\2\x0F\x0F\110\01\xBB PENT,3DN PSWAPD mmxreg,mmxreg \2\x0F\x0F\110\01\xBB PENT,3DNOW ; Willamette SSE2 Cacheability Instructions -MASKMOVDQU xmmreg,xmmreg \3\x66\x0F\xF7\110 WILLAMETTE,SSE2 +MASKMOVDQU xmmreg,xmmreg \366\2\x0F\xF7\110 WILLAMETTE,SSE2 ; CLFLUSH needs its own feature flag implemented one day CLFLUSH mem \300\2\x0F\xAE\207 WILLAMETTE,SSE2 -MOVNTDQ mem,xmmreg \300\3\x66\x0F\xE7\101 WILLAMETTE,SSE2,SM +MOVNTDQ mem,xmmreg \300\366\2\x0F\xE7\101 WILLAMETTE,SSE2,SM MOVNTI mem,reg32 \300\2\x0F\xC3\101 WILLAMETTE,SSE2,SM -MOVNTPD mem,xmmreg \300\3\x66\x0F\x2B\101 WILLAMETTE,SSE2,SM +MOVNTPD mem,xmmreg \300\366\2\x0F\x2B\101 WILLAMETTE,SSE2,SM PAUSE void \333\1\x90 WILLAMETTE,SSE2 LFENCE void \3\x0F\xAE\xE8 WILLAMETTE,SSE2 MFENCE void \3\x0F\xAE\xF0 WILLAMETTE,SSE2 ; Willamette MMX instructions (SSE2 SIMD Integer Instructions) -MOVD xmmreg,reg32 \3\x66\x0F\x6E\110 WILLAMETTE,SSE2 -MOVD reg32,xmmreg \3\x66\x0F\x7E\101 WILLAMETTE,SSE2 -MOVD mem,xmmreg \300\3\x66\x0F\x7E\101 WILLAMETTE,SSE2 -MOVD xmmreg,mem \301\3\x66\x0F\x6E\110 WILLAMETTE,SSE2 -MOVDQA xmmreg,xmmreg \3\x66\x0F\x6F\110 WILLAMETTE,SSE2 -MOVDQA mem,xmmreg \300\3\x66\x0F\x7F\101 WILLAMETTE,SSE2,SM -MOVDQA xmmreg,mem \301\3\x66\x0F\x6F\110 WILLAMETTE,SSE2,SM -MOVDQA xmmreg,xmmreg \3\x66\x0F\x7F\110 WILLAMETTE,SSE2 +MOVD xmmreg,reg32 \366\2\x0F\x6E\110 WILLAMETTE,SSE2 +MOVD reg32,xmmreg \366\2\x0F\x7E\101 WILLAMETTE,SSE2 +MOVD mem,xmmreg \300\366\2\x0F\x7E\101 WILLAMETTE,SSE2 +MOVD xmmreg,mem \301\366\2\x0F\x6E\110 WILLAMETTE,SSE2 +MOVDQA xmmreg,xmmreg \366\2\x0F\x6F\110 WILLAMETTE,SSE2 +MOVDQA mem,xmmreg \300\366\2\x0F\x7F\101 WILLAMETTE,SSE2,SM +MOVDQA xmmreg,mem \301\366\2\x0F\x6F\110 WILLAMETTE,SSE2,SM +MOVDQA xmmreg,xmmreg \366\2\x0F\x7F\110 WILLAMETTE,SSE2 MOVDQU xmmreg,xmmreg \333\2\x0F\x6F\110 WILLAMETTE,SSE2 MOVDQU mem,xmmreg \333\300\2\x0F\x7F\101 WILLAMETTE,SSE2,SM MOVDQU xmmreg,mem \301\333\2\x0F\x6F\110 WILLAMETTE,SSE2,SM MOVDQU xmmreg,xmmreg \333\2\x0F\x7F\110 WILLAMETTE,SSE2 MOVDQ2Q mmxreg,xmmreg \3\xF2\x0F\xD6\110 WILLAMETTE,SSE2 MOVQ xmmreg,xmmreg \333\2\x0F\x7E\110 WILLAMETTE,SSE2 -MOVQ xmmreg,xmmreg \3\x66\x0F\xD6\110 WILLAMETTE,SSE2 -MOVQ mem,xmmreg \300\3\x66\x0F\xD6\101 WILLAMETTE,SSE2 +MOVQ xmmreg,xmmreg \366\2\x0F\xD6\110 WILLAMETTE,SSE2 +MOVQ mem,xmmreg \300\366\2\x0F\xD6\101 WILLAMETTE,SSE2 MOVQ xmmreg,mem \301\333\2\x0F\x7E\110 WILLAMETTE,SSE2 MOVQ2DQ xmmreg,mmxreg \333\2\x0F\xD6\110 WILLAMETTE,SSE2 -PACKSSWB xmmreg,xmmreg \3\x66\x0F\x63\110 WILLAMETTE,SSE2 -PACKSSWB xmmreg,mem \301\3\x66\x0F\x63\110 WILLAMETTE,SSE2,SM -PACKSSDW xmmreg,xmmreg \3\x66\x0F\x6B\110 WILLAMETTE,SSE2 -PACKSSDW xmmreg,mem \301\3\x66\x0F\x6B\110 WILLAMETTE,SSE2,SM -PACKUSWB xmmreg,xmmreg \3\x66\x0F\x67\110 WILLAMETTE,SSE2 -PACKUSWB xmmreg,mem \301\3\x66\x0F\x67\110 WILLAMETTE,SSE2,SM -PADDB xmmreg,xmmreg \3\x66\x0F\xFC\110 WILLAMETTE,SSE2 -PADDB xmmreg,mem \301\3\x66\x0F\xFC\110 WILLAMETTE,SSE2,SM -PADDW xmmreg,xmmreg \3\x66\x0F\xFD\110 WILLAMETTE,SSE2 -PADDW xmmreg,mem \301\3\x66\x0F\xFD\110 WILLAMETTE,SSE2,SM -PADDD xmmreg,xmmreg \3\x66\x0F\xFE\110 WILLAMETTE,SSE2 -PADDD xmmreg,mem \301\3\x66\x0F\xFE\110 WILLAMETTE,SSE2,SM +PACKSSWB xmmreg,xmmreg \366\2\x0F\x63\110 WILLAMETTE,SSE2 +PACKSSWB xmmreg,mem \301\366\2\x0F\x63\110 WILLAMETTE,SSE2,SM +PACKSSDW xmmreg,xmmreg \366\2\x0F\x6B\110 WILLAMETTE,SSE2 +PACKSSDW xmmreg,mem \301\366\2\x0F\x6B\110 WILLAMETTE,SSE2,SM +PACKUSWB xmmreg,xmmreg \366\2\x0F\x67\110 WILLAMETTE,SSE2 +PACKUSWB xmmreg,mem \301\366\2\x0F\x67\110 WILLAMETTE,SSE2,SM +PADDB xmmreg,xmmreg \366\2\x0F\xFC\110 WILLAMETTE,SSE2 +PADDB xmmreg,mem \301\366\2\x0F\xFC\110 WILLAMETTE,SSE2,SM +PADDW xmmreg,xmmreg \366\2\x0F\xFD\110 WILLAMETTE,SSE2 +PADDW xmmreg,mem \301\366\2\x0F\xFD\110 WILLAMETTE,SSE2,SM +PADDD xmmreg,xmmreg \366\2\x0F\xFE\110 WILLAMETTE,SSE2 +PADDD xmmreg,mem \301\366\2\x0F\xFE\110 WILLAMETTE,SSE2,SM PADDQ mmxreg,mmxreg \2\x0F\xD4\110 WILLAMETTE,SSE2 PADDQ mmxreg,mem \301\2\x0F\xD4\110 WILLAMETTE,SSE2,SM -PADDQ xmmreg,xmmreg \3\x66\x0F\xD4\110 WILLAMETTE,SSE2 -PADDQ xmmreg,mem \301\3\x66\x0F\xD4\110 WILLAMETTE,SSE2,SM -PADDSB xmmreg,mem \301\3\x66\x0F\xEC\110 WILLAMETTE,SSE2,SM -PADDSB xmmreg,xmmreg \3\x66\x0F\xEC\110 WILLAMETTE,SSE2 -PADDSW xmmreg,mem \301\3\x66\x0F\xED\110 WILLAMETTE,SSE2,SM -PADDSW xmmreg,xmmreg \3\x66\x0F\xED\110 WILLAMETTE,SSE2 -PADDUSB xmmreg,mem \301\3\x66\x0F\xDC\110 WILLAMETTE,SSE2,SM -PADDUSB xmmreg,xmmreg \3\x66\x0F\xDC\110 WILLAMETTE,SSE2 -PADDUSW xmmreg,mem \301\3\x66\x0F\xDD\110 WILLAMETTE,SSE2,SM -PADDUSW xmmreg,xmmreg \3\x66\x0F\xDD\110 WILLAMETTE,SSE2 -PAND xmmreg,xmmreg \3\x66\x0F\xDB\110 WILLAMETTE,SSE2 -PAND xmmreg,mem \301\3\x66\x0F\xDB\110 WILLAMETTE,SSE2,SM -PANDN xmmreg,xmmreg \3\x66\x0F\xDF\110 WILLAMETTE,SSE2 -PANDN xmmreg,mem \301\3\x66\x0F\xDF\110 WILLAMETTE,SSE2,SM -PAVGB xmmreg,xmmreg \3\x66\x0F\xE0\110 WILLAMETTE,SSE2 -PAVGB xmmreg,mem \301\3\x66\x0F\xE0\110 WILLAMETTE,SSE2,SM -PAVGW xmmreg,xmmreg \3\x66\x0F\xE3\110 WILLAMETTE,SSE2 -PAVGW xmmreg,mem \301\3\x66\x0F\xE3\110 WILLAMETTE,SSE2,SM -PCMPEQB xmmreg,xmmreg \3\x66\x0F\x74\110 WILLAMETTE,SSE2 -PCMPEQB xmmreg,mem \301\3\x66\x0F\x74\110 WILLAMETTE,SSE2,SM -PCMPEQW xmmreg,xmmreg \3\x66\x0F\x75\110 WILLAMETTE,SSE2 -PCMPEQW xmmreg,mem \301\3\x66\x0F\x75\110 WILLAMETTE,SSE2,SM -PCMPEQD xmmreg,xmmreg \3\x66\x0F\x76\110 WILLAMETTE,SSE2 -PCMPEQD xmmreg,mem \301\3\x66\x0F\x76\110 WILLAMETTE,SSE2,SM -PCMPGTB xmmreg,xmmreg \3\x66\x0F\x64\110 WILLAMETTE,SSE2 -PCMPGTB xmmreg,mem \301\3\x66\x0F\x64\110 WILLAMETTE,SSE2,SM -PCMPGTW xmmreg,xmmreg \3\x66\x0F\x65\110 WILLAMETTE,SSE2 -PCMPGTW xmmreg,mem \301\3\x66\x0F\x65\110 WILLAMETTE,SSE2,SM -PCMPGTD xmmreg,xmmreg \3\x66\x0F\x66\110 WILLAMETTE,SSE2 -PCMPGTD xmmreg,mem \301\3\x66\x0F\x66\110 WILLAMETTE,SSE2,SM -PEXTRW reg32,xmmreg,imm \3\x66\x0F\xC5\110\26 WILLAMETTE,SSE2,SB,AR2 -PINSRW xmmreg,reg16,imm \3\x66\x0F\xC4\110\26 WILLAMETTE,SSE2,SB,AR2 -PINSRW xmmreg,reg32,imm \3\x66\x0F\xC4\110\26 WILLAMETTE,SSE2,SB,AR2,ND -PINSRW xmmreg,mem,imm \301\3\x66\x0F\xC4\110\26 WILLAMETTE,SSE2,SB,AR2 -PINSRW xmmreg,mem16,imm \301\3\x66\x0F\xC4\110\26 WILLAMETTE,SSE2,SB,AR2,ND -PMADDWD xmmreg,mem \301\3\x66\x0F\xF5\110 WILLAMETTE,SSE2,SM -PMADDWD xmmreg,xmmreg \3\x66\x0F\xF5\110 WILLAMETTE,SSE2 -PMAXSW xmmreg,xmmreg \3\x66\x0F\xEE\110 WILLAMETTE,SSE2 -PMAXSW xmmreg,mem \301\3\x66\x0F\xEE\110 WILLAMETTE,SSE2,SM -PMAXUB xmmreg,xmmreg \3\x66\x0F\xDE\110 WILLAMETTE,SSE2 -PMAXUB xmmreg,mem \301\3\x66\x0F\xDE\110 WILLAMETTE,SSE2,SM -PMINSW xmmreg,xmmreg \3\x66\x0F\xEA\110 WILLAMETTE,SSE2 -PMINSW xmmreg,mem \301\3\x66\x0F\xEA\110 WILLAMETTE,SSE2,SM -PMINUB xmmreg,xmmreg \3\x66\x0F\xDA\110 WILLAMETTE,SSE2 -PMINUB xmmreg,mem \301\3\x66\x0F\xDA\110 WILLAMETTE,SSE2,SM -PMOVMSKB reg32,xmmreg \3\x66\x0F\xD7\110 WILLAMETTE,SSE2 -PMULHUW xmmreg,xmmreg \3\x66\x0F\xE4\110 WILLAMETTE,SSE2 -PMULHUW xmmreg,mem \301\3\x66\x0F\xE4\110 WILLAMETTE,SSE2,SM -PMULHW xmmreg,mem \301\3\x66\x0F\xE5\110 WILLAMETTE,SSE2,SM -PMULHW xmmreg,xmmreg \3\x66\x0F\xE5\110 WILLAMETTE,SSE2 -PMULLW xmmreg,mem \301\3\x66\x0F\xD5\110 WILLAMETTE,SSE2,SM -PMULLW xmmreg,xmmreg \3\x66\x0F\xD5\110 WILLAMETTE,SSE2 +PADDQ xmmreg,xmmreg \366\2\x0F\xD4\110 WILLAMETTE,SSE2 +PADDQ xmmreg,mem \301\366\2\x0F\xD4\110 WILLAMETTE,SSE2,SM +PADDSB xmmreg,mem \301\366\2\x0F\xEC\110 WILLAMETTE,SSE2,SM +PADDSB xmmreg,xmmreg \366\2\x0F\xEC\110 WILLAMETTE,SSE2 +PADDSW xmmreg,mem \301\366\2\x0F\xED\110 WILLAMETTE,SSE2,SM +PADDSW xmmreg,xmmreg \366\2\x0F\xED\110 WILLAMETTE,SSE2 +PADDUSB xmmreg,mem \301\366\2\x0F\xDC\110 WILLAMETTE,SSE2,SM +PADDUSB xmmreg,xmmreg \366\2\x0F\xDC\110 WILLAMETTE,SSE2 +PADDUSW xmmreg,mem \301\366\2\x0F\xDD\110 WILLAMETTE,SSE2,SM +PADDUSW xmmreg,xmmreg \366\2\x0F\xDD\110 WILLAMETTE,SSE2 +PAND xmmreg,xmmreg \366\2\x0F\xDB\110 WILLAMETTE,SSE2 +PAND xmmreg,mem \301\366\2\x0F\xDB\110 WILLAMETTE,SSE2,SM +PANDN xmmreg,xmmreg \366\2\x0F\xDF\110 WILLAMETTE,SSE2 +PANDN xmmreg,mem \301\366\2\x0F\xDF\110 WILLAMETTE,SSE2,SM +PAVGB xmmreg,xmmreg \366\2\x0F\xE0\110 WILLAMETTE,SSE2 +PAVGB xmmreg,mem \301\366\2\x0F\xE0\110 WILLAMETTE,SSE2,SM +PAVGW xmmreg,xmmreg \366\2\x0F\xE3\110 WILLAMETTE,SSE2 +PAVGW xmmreg,mem \301\366\2\x0F\xE3\110 WILLAMETTE,SSE2,SM +PCMPEQB xmmreg,xmmreg \366\2\x0F\x74\110 WILLAMETTE,SSE2 +PCMPEQB xmmreg,mem \301\366\2\x0F\x74\110 WILLAMETTE,SSE2,SM +PCMPEQW xmmreg,xmmreg \366\2\x0F\x75\110 WILLAMETTE,SSE2 +PCMPEQW xmmreg,mem \301\366\2\x0F\x75\110 WILLAMETTE,SSE2,SM +PCMPEQD xmmreg,xmmreg \366\2\x0F\x76\110 WILLAMETTE,SSE2 +PCMPEQD xmmreg,mem \301\366\2\x0F\x76\110 WILLAMETTE,SSE2,SM +PCMPGTB xmmreg,xmmreg \366\2\x0F\x64\110 WILLAMETTE,SSE2 +PCMPGTB xmmreg,mem \301\366\2\x0F\x64\110 WILLAMETTE,SSE2,SM +PCMPGTW xmmreg,xmmreg \366\2\x0F\x65\110 WILLAMETTE,SSE2 +PCMPGTW xmmreg,mem \301\366\2\x0F\x65\110 WILLAMETTE,SSE2,SM +PCMPGTD xmmreg,xmmreg \366\2\x0F\x66\110 WILLAMETTE,SSE2 +PCMPGTD xmmreg,mem \301\366\2\x0F\x66\110 WILLAMETTE,SSE2,SM +PEXTRW reg32,xmmreg,imm \366\2\x0F\xC5\110\26 WILLAMETTE,SSE2,SB,AR2 +PINSRW xmmreg,reg16,imm \366\2\x0F\xC4\110\26 WILLAMETTE,SSE2,SB,AR2 +PINSRW xmmreg,reg32,imm \366\2\x0F\xC4\110\26 WILLAMETTE,SSE2,SB,AR2,ND +PINSRW xmmreg,mem,imm \301\366\2\x0F\xC4\110\26 WILLAMETTE,SSE2,SB,AR2 +PINSRW xmmreg,mem16,imm \301\366\2\x0F\xC4\110\26 WILLAMETTE,SSE2,SB,AR2,ND +PMADDWD xmmreg,mem \301\366\2\x0F\xF5\110 WILLAMETTE,SSE2,SM +PMADDWD xmmreg,xmmreg \366\2\x0F\xF5\110 WILLAMETTE,SSE2 +PMAXSW xmmreg,xmmreg \366\2\x0F\xEE\110 WILLAMETTE,SSE2 +PMAXSW xmmreg,mem \301\366\2\x0F\xEE\110 WILLAMETTE,SSE2,SM +PMAXUB xmmreg,xmmreg \366\2\x0F\xDE\110 WILLAMETTE,SSE2 +PMAXUB xmmreg,mem \301\366\2\x0F\xDE\110 WILLAMETTE,SSE2,SM +PMINSW xmmreg,xmmreg \366\2\x0F\xEA\110 WILLAMETTE,SSE2 +PMINSW xmmreg,mem \301\366\2\x0F\xEA\110 WILLAMETTE,SSE2,SM +PMINUB xmmreg,xmmreg \366\2\x0F\xDA\110 WILLAMETTE,SSE2 +PMINUB xmmreg,mem \301\366\2\x0F\xDA\110 WILLAMETTE,SSE2,SM +PMOVMSKB reg32,xmmreg \366\2\x0F\xD7\110 WILLAMETTE,SSE2 +PMULHUW xmmreg,xmmreg \366\2\x0F\xE4\110 WILLAMETTE,SSE2 +PMULHUW xmmreg,mem \301\366\2\x0F\xE4\110 WILLAMETTE,SSE2,SM +PMULHW xmmreg,mem \301\366\2\x0F\xE5\110 WILLAMETTE,SSE2,SM +PMULHW xmmreg,xmmreg \366\2\x0F\xE5\110 WILLAMETTE,SSE2 +PMULLW xmmreg,mem \301\366\2\x0F\xD5\110 WILLAMETTE,SSE2,SM +PMULLW xmmreg,xmmreg \366\2\x0F\xD5\110 WILLAMETTE,SSE2 PMULUDQ mmxreg,mmxreg \2\x0F\xF4\110 WILLAMETTE,SSE2 PMULUDQ mmxreg,mem \301\2\x0F\xF4\110 WILLAMETTE,SSE2,SM -PMULUDQ xmmreg,xmmreg \3\x66\x0F\xF4\110 WILLAMETTE,SSE2 -PMULUDQ xmmreg,mem \301\3\x66\x0F\xF4\110 WILLAMETTE,SSE2,SM -POR xmmreg,mem \301\3\x66\x0F\xEB\110 WILLAMETTE,SSE2,SM -POR xmmreg,xmmreg \3\x66\x0F\xEB\110 WILLAMETTE,SSE2 -PSADBW xmmreg,xmmreg \3\x66\x0F\xF6\110 WILLAMETTE,SSE2 -PSADBW xmmreg,mem \301\3\x66\x0F\xF6\110 WILLAMETTE,SSE2,SM -PSHUFD xmmreg,xmmreg,imm \3\x66\x0F\x70\110\22 WILLAMETTE,SSE2,SB,AR2 -PSHUFD xmmreg,mem,imm \301\3\x66\x0F\x70\110\22 WILLAMETTE,SSE2,SM2,SB,AR2 +PMULUDQ xmmreg,xmmreg \366\2\x0F\xF4\110 WILLAMETTE,SSE2 +PMULUDQ xmmreg,mem \301\366\2\x0F\xF4\110 WILLAMETTE,SSE2,SM +POR xmmreg,mem \301\366\2\x0F\xEB\110 WILLAMETTE,SSE2,SM +POR xmmreg,xmmreg \366\2\x0F\xEB\110 WILLAMETTE,SSE2 +PSADBW xmmreg,xmmreg \366\2\x0F\xF6\110 WILLAMETTE,SSE2 +PSADBW xmmreg,mem \301\366\2\x0F\xF6\110 WILLAMETTE,SSE2,SM +PSHUFD xmmreg,xmmreg,imm \366\2\x0F\x70\110\22 WILLAMETTE,SSE2,SB,AR2 +PSHUFD xmmreg,mem,imm \301\366\2\x0F\x70\110\22 WILLAMETTE,SSE2,SM2,SB,AR2 PSHUFHW xmmreg,xmmreg,imm \333\2\x0F\x70\110\22 WILLAMETTE,SSE2,SB,AR2 PSHUFHW xmmreg,mem,imm \301\333\2\x0F\x70\110\22 WILLAMETTE,SSE2,SM2,SB,AR2 PSHUFLW xmmreg,xmmreg,imm \3\xF2\x0F\x70\110\22 WILLAMETTE,SSE2,SB,AR2 PSHUFLW xmmreg,mem,imm \301\3\xF2\x0F\x70\110\22 WILLAMETTE,SSE2,SM2,SB,AR2 -PSLLDQ xmmreg,imm \3\x66\x0F\x73\207\25 WILLAMETTE,SSE2,SB,AR1 -PSLLW xmmreg,mem \301\3\x66\x0F\xF1\110 WILLAMETTE,SSE2,SM -PSLLW xmmreg,xmmreg \3\x66\x0F\xF1\110 WILLAMETTE,SSE2 -PSLLW xmmreg,imm \3\x66\x0F\x71\206\25 WILLAMETTE,SSE2,SB,AR1 -PSLLD xmmreg,mem \301\3\x66\x0F\xF2\110 WILLAMETTE,SSE2,SM -PSLLD xmmreg,xmmreg \3\x66\x0F\xF2\110 WILLAMETTE,SSE2 -PSLLD xmmreg,imm \3\x66\x0F\x72\206\25 WILLAMETTE,SSE2,SB,AR1 -PSLLQ xmmreg,mem \301\3\x66\x0F\xF3\110 WILLAMETTE,SSE2,SM -PSLLQ xmmreg,xmmreg \3\x66\x0F\xF3\110 WILLAMETTE,SSE2 -PSLLQ xmmreg,imm \3\x66\x0F\x73\206\25 WILLAMETTE,SSE2,SB,AR1 -PSRAW xmmreg,mem \301\3\x66\x0F\xE1\110 WILLAMETTE,SSE2,SM -PSRAW xmmreg,xmmreg \3\x66\x0F\xE1\110 WILLAMETTE,SSE2 -PSRAW xmmreg,imm \3\x66\x0F\x71\204\25 WILLAMETTE,SSE2,SB,AR1 -PSRAD xmmreg,mem \301\3\x66\x0F\xE2\110 WILLAMETTE,SSE2,SM -PSRAD xmmreg,xmmreg \3\x66\x0F\xE2\110 WILLAMETTE,SSE2 -PSRAD xmmreg,imm \3\x66\x0F\x72\204\25 WILLAMETTE,SSE2,SB,AR1 -PSRLDQ xmmreg,imm \3\x66\x0F\x73\203\25 WILLAMETTE,SSE2,SB,AR1 -PSRLW xmmreg,mem \301\3\x66\x0F\xD1\110 WILLAMETTE,SSE2,SM -PSRLW xmmreg,xmmreg \3\x66\x0F\xD1\110 WILLAMETTE,SSE2 -PSRLW xmmreg,imm \3\x66\x0F\x71\202\25 WILLAMETTE,SSE2,SB,AR1 -PSRLD xmmreg,mem \301\3\x66\x0F\xD2\110 WILLAMETTE,SSE2,SM -PSRLD xmmreg,xmmreg \3\x66\x0F\xD2\110 WILLAMETTE,SSE2 -PSRLD xmmreg,imm \3\x66\x0F\x72\202\25 WILLAMETTE,SSE2,SB,AR1 -PSRLQ xmmreg,mem \301\3\x66\x0F\xD3\110 WILLAMETTE,SSE2,SM -PSRLQ xmmreg,xmmreg \3\x66\x0F\xD3\110 WILLAMETTE,SSE2 -PSRLQ xmmreg,imm \3\x66\x0F\x73\202\25 WILLAMETTE,SSE2,SB,AR1 -PSUBB xmmreg,mem \301\3\x66\x0F\xF8\110 WILLAMETTE,SSE2,SM -PSUBB xmmreg,xmmreg \3\x66\x0F\xF8\110 WILLAMETTE,SSE2 -PSUBW xmmreg,mem \301\3\x66\x0F\xF9\110 WILLAMETTE,SSE2,SM -PSUBW xmmreg,xmmreg \3\x66\x0F\xF9\110 WILLAMETTE,SSE2 -PSUBD xmmreg,mem \301\3\x66\x0F\xFA\110 WILLAMETTE,SSE2,SM -PSUBD xmmreg,xmmreg \3\x66\x0F\xFA\110 WILLAMETTE,SSE2 +PSLLDQ xmmreg,imm \366\2\x0F\x73\207\25 WILLAMETTE,SSE2,SB,AR1 +PSLLW xmmreg,mem \301\366\2\x0F\xF1\110 WILLAMETTE,SSE2,SM +PSLLW xmmreg,xmmreg \366\2\x0F\xF1\110 WILLAMETTE,SSE2 +PSLLW xmmreg,imm \366\2\x0F\x71\206\25 WILLAMETTE,SSE2,SB,AR1 +PSLLD xmmreg,mem \301\366\2\x0F\xF2\110 WILLAMETTE,SSE2,SM +PSLLD xmmreg,xmmreg \366\2\x0F\xF2\110 WILLAMETTE,SSE2 +PSLLD xmmreg,imm \366\2\x0F\x72\206\25 WILLAMETTE,SSE2,SB,AR1 +PSLLQ xmmreg,mem \301\366\2\x0F\xF3\110 WILLAMETTE,SSE2,SM +PSLLQ xmmreg,xmmreg \366\2\x0F\xF3\110 WILLAMETTE,SSE2 +PSLLQ xmmreg,imm \366\2\x0F\x73\206\25 WILLAMETTE,SSE2,SB,AR1 +PSRAW xmmreg,mem \301\366\2\x0F\xE1\110 WILLAMETTE,SSE2,SM +PSRAW xmmreg,xmmreg \366\2\x0F\xE1\110 WILLAMETTE,SSE2 +PSRAW xmmreg,imm \366\2\x0F\x71\204\25 WILLAMETTE,SSE2,SB,AR1 +PSRAD xmmreg,mem \301\366\2\x0F\xE2\110 WILLAMETTE,SSE2,SM +PSRAD xmmreg,xmmreg \366\2\x0F\xE2\110 WILLAMETTE,SSE2 +PSRAD xmmreg,imm \366\2\x0F\x72\204\25 WILLAMETTE,SSE2,SB,AR1 +PSRLDQ xmmreg,imm \366\2\x0F\x73\203\25 WILLAMETTE,SSE2,SB,AR1 +PSRLW xmmreg,mem \301\366\2\x0F\xD1\110 WILLAMETTE,SSE2,SM +PSRLW xmmreg,xmmreg \366\2\x0F\xD1\110 WILLAMETTE,SSE2 +PSRLW xmmreg,imm \366\2\x0F\x71\202\25 WILLAMETTE,SSE2,SB,AR1 +PSRLD xmmreg,mem \301\366\2\x0F\xD2\110 WILLAMETTE,SSE2,SM +PSRLD xmmreg,xmmreg \366\2\x0F\xD2\110 WILLAMETTE,SSE2 +PSRLD xmmreg,imm \366\2\x0F\x72\202\25 WILLAMETTE,SSE2,SB,AR1 +PSRLQ xmmreg,mem \301\366\2\x0F\xD3\110 WILLAMETTE,SSE2,SM +PSRLQ xmmreg,xmmreg \366\2\x0F\xD3\110 WILLAMETTE,SSE2 +PSRLQ xmmreg,imm \366\2\x0F\x73\202\25 WILLAMETTE,SSE2,SB,AR1 +PSUBB xmmreg,mem \301\366\2\x0F\xF8\110 WILLAMETTE,SSE2,SM +PSUBB xmmreg,xmmreg \366\2\x0F\xF8\110 WILLAMETTE,SSE2 +PSUBW xmmreg,mem \301\366\2\x0F\xF9\110 WILLAMETTE,SSE2,SM +PSUBW xmmreg,xmmreg \366\2\x0F\xF9\110 WILLAMETTE,SSE2 +PSUBD xmmreg,mem \301\366\2\x0F\xFA\110 WILLAMETTE,SSE2,SM +PSUBD xmmreg,xmmreg \366\2\x0F\xFA\110 WILLAMETTE,SSE2 PSUBQ mmxreg,mmxreg \2\x0F\xFB\110 WILLAMETTE,SSE2 PSUBQ mmxreg,mem \301\2\x0F\xFB\110 WILLAMETTE,SSE2,SM -PSUBQ xmmreg,xmmreg \3\x66\x0F\xFB\110 WILLAMETTE,SSE2 -PSUBQ xmmreg,mem \301\3\x66\x0F\xFB\110 WILLAMETTE,SSE2,SM -PSUBSB xmmreg,mem \301\3\x66\x0F\xE8\110 WILLAMETTE,SSE2,SM -PSUBSB xmmreg,xmmreg \3\x66\x0F\xE8\110 WILLAMETTE,SSE2 -PSUBSW xmmreg,mem \301\3\x66\x0F\xE9\110 WILLAMETTE,SSE2,SM -PSUBSW xmmreg,xmmreg \3\x66\x0F\xE9\110 WILLAMETTE,SSE2 -PSUBUSB xmmreg,mem \301\3\x66\x0F\xD8\110 WILLAMETTE,SSE2,SM -PSUBUSB xmmreg,xmmreg \3\x66\x0F\xD8\110 WILLAMETTE,SSE2 -PSUBUSW xmmreg,mem \301\3\x66\x0F\xD9\110 WILLAMETTE,SSE2,SM -PSUBUSW xmmreg,xmmreg \3\x66\x0F\xD9\110 WILLAMETTE,SSE2 -PUNPCKHBW xmmreg,mem \301\3\x66\x0F\x68\110 WILLAMETTE,SSE2,SM -PUNPCKHBW xmmreg,xmmreg \3\x66\x0F\x68\110 WILLAMETTE,SSE2 -PUNPCKHWD xmmreg,mem \301\3\x66\x0F\x69\110 WILLAMETTE,SSE2,SM -PUNPCKHWD xmmreg,xmmreg \3\x66\x0F\x69\110 WILLAMETTE,SSE2 -PUNPCKHDQ xmmreg,mem \301\3\x66\x0F\x6A\110 WILLAMETTE,SSE2,SM -PUNPCKHDQ xmmreg,xmmreg \3\x66\x0F\x6A\110 WILLAMETTE,SSE2 -PUNPCKHQDQ xmmreg,xmmreg \3\x66\x0F\x6D\110 WILLAMETTE,SSE2 -PUNPCKHQDQ xmmreg,mem \301\3\x66\x0F\x6D\110 WILLAMETTE,SSE2,SM -PUNPCKLBW xmmreg,mem \301\3\x66\x0F\x60\110 WILLAMETTE,SSE2,SM -PUNPCKLBW xmmreg,xmmreg \3\x66\x0F\x60\110 WILLAMETTE,SSE2 -PUNPCKLWD xmmreg,mem \301\3\x66\x0F\x61\110 WILLAMETTE,SSE2,SM -PUNPCKLWD xmmreg,xmmreg \3\x66\x0F\x61\110 WILLAMETTE,SSE2 -PUNPCKLDQ xmmreg,mem \301\3\x66\x0F\x62\110 WILLAMETTE,SSE2,SM -PUNPCKLDQ xmmreg,xmmreg \3\x66\x0F\x62\110 WILLAMETTE,SSE2 -PUNPCKLQDQ xmmreg,xmmreg \3\x66\x0F\x6C\110 WILLAMETTE,SSE2 -PUNPCKLQDQ xmmreg,mem \301\3\x66\x0F\x6C\110 WILLAMETTE,SSE2,SM -PXOR xmmreg,mem \301\3\x66\x0F\xEF\110 WILLAMETTE,SSE2,SM -PXOR xmmreg,xmmreg \3\x66\x0F\xEF\110 WILLAMETTE,SSE2 +PSUBQ xmmreg,xmmreg \366\2\x0F\xFB\110 WILLAMETTE,SSE2 +PSUBQ xmmreg,mem \301\366\2\x0F\xFB\110 WILLAMETTE,SSE2,SM +PSUBSB xmmreg,mem \301\366\2\x0F\xE8\110 WILLAMETTE,SSE2,SM +PSUBSB xmmreg,xmmreg \366\2\x0F\xE8\110 WILLAMETTE,SSE2 +PSUBSW xmmreg,mem \301\366\2\x0F\xE9\110 WILLAMETTE,SSE2,SM +PSUBSW xmmreg,xmmreg \366\2\x0F\xE9\110 WILLAMETTE,SSE2 +PSUBUSB xmmreg,mem \301\366\2\x0F\xD8\110 WILLAMETTE,SSE2,SM +PSUBUSB xmmreg,xmmreg \366\2\x0F\xD8\110 WILLAMETTE,SSE2 +PSUBUSW xmmreg,mem \301\366\2\x0F\xD9\110 WILLAMETTE,SSE2,SM +PSUBUSW xmmreg,xmmreg \366\2\x0F\xD9\110 WILLAMETTE,SSE2 +PUNPCKHBW xmmreg,mem \301\366\2\x0F\x68\110 WILLAMETTE,SSE2,SM +PUNPCKHBW xmmreg,xmmreg \366\2\x0F\x68\110 WILLAMETTE,SSE2 +PUNPCKHWD xmmreg,mem \301\366\2\x0F\x69\110 WILLAMETTE,SSE2,SM +PUNPCKHWD xmmreg,xmmreg \366\2\x0F\x69\110 WILLAMETTE,SSE2 +PUNPCKHDQ xmmreg,mem \301\366\2\x0F\x6A\110 WILLAMETTE,SSE2,SM +PUNPCKHDQ xmmreg,xmmreg \366\2\x0F\x6A\110 WILLAMETTE,SSE2 +PUNPCKHQDQ xmmreg,xmmreg \366\2\x0F\x6D\110 WILLAMETTE,SSE2 +PUNPCKHQDQ xmmreg,mem \301\366\2\x0F\x6D\110 WILLAMETTE,SSE2,SM +PUNPCKLBW xmmreg,mem \301\366\2\x0F\x60\110 WILLAMETTE,SSE2,SM +PUNPCKLBW xmmreg,xmmreg \366\2\x0F\x60\110 WILLAMETTE,SSE2 +PUNPCKLWD xmmreg,mem \301\366\2\x0F\x61\110 WILLAMETTE,SSE2,SM +PUNPCKLWD xmmreg,xmmreg \366\2\x0F\x61\110 WILLAMETTE,SSE2 +PUNPCKLDQ xmmreg,mem \301\366\2\x0F\x62\110 WILLAMETTE,SSE2,SM +PUNPCKLDQ xmmreg,xmmreg \366\2\x0F\x62\110 WILLAMETTE,SSE2 +PUNPCKLQDQ xmmreg,xmmreg \366\2\x0F\x6C\110 WILLAMETTE,SSE2 +PUNPCKLQDQ xmmreg,mem \301\366\2\x0F\x6C\110 WILLAMETTE,SSE2,SM +PXOR xmmreg,mem \301\366\2\x0F\xEF\110 WILLAMETTE,SSE2,SM +PXOR xmmreg,xmmreg \366\2\x0F\xEF\110 WILLAMETTE,SSE2 ; Willamette Streaming SIMD instructions (SSE2) -ADDPD xmmreg,xmmreg \331\3\x66\x0F\x58\110 WILLAMETTE,SSE2 -ADDPD xmmreg,mem \301\331\3\x66\x0F\x58\110 WILLAMETTE,SSE2,SM +ADDPD xmmreg,xmmreg \331\366\2\x0F\x58\110 WILLAMETTE,SSE2 +ADDPD xmmreg,mem \301\331\366\2\x0F\x58\110 WILLAMETTE,SSE2,SM ADDSD xmmreg,xmmreg \331\3\xF2\x0F\x58\110 WILLAMETTE,SSE2 ADDSD xmmreg,mem \301\331\3\xF2\x0F\x58\110 WILLAMETTE,SSE2 -ANDNPD xmmreg,xmmreg \331\3\x66\x0F\x55\110 WILLAMETTE,SSE2 -ANDNPD xmmreg,mem \301\331\3\x66\x0F\x55\110 WILLAMETTE,SSE2,SM -ANDPD xmmreg,xmmreg \331\3\x66\x0F\x54\110 WILLAMETTE,SSE2 -ANDPD xmmreg,mem \301\331\3\x66\x0F\x54\110 WILLAMETTE,SSE2,SM -CMPEQPD xmmreg,mem \301\331\3\x66\x0F\xC2\110\1\x00 WILLAMETTE,SSE2,SM -CMPEQPD xmmreg,xmmreg \331\3\x66\x0F\xC2\110\1\x00 WILLAMETTE,SSE2 +ANDNPD xmmreg,xmmreg \331\366\2\x0F\x55\110 WILLAMETTE,SSE2 +ANDNPD xmmreg,mem \301\331\366\2\x0F\x55\110 WILLAMETTE,SSE2,SM +ANDPD xmmreg,xmmreg \331\366\2\x0F\x54\110 WILLAMETTE,SSE2 +ANDPD xmmreg,mem \301\331\366\2\x0F\x54\110 WILLAMETTE,SSE2,SM +CMPEQPD xmmreg,mem \301\331\366\2\x0F\xC2\110\1\x00 WILLAMETTE,SSE2,SM +CMPEQPD xmmreg,xmmreg \331\366\2\x0F\xC2\110\1\x00 WILLAMETTE,SSE2 CMPEQSD xmmreg,mem \301\331\3\xF2\x0F\xC2\110\1\x00 WILLAMETTE,SSE2 CMPEQSD xmmreg,xmmreg \331\3\xF2\x0F\xC2\110\1\x00 WILLAMETTE,SSE2 -CMPLEPD xmmreg,mem \301\331\3\x66\x0F\xC2\110\1\x02 WILLAMETTE,SSE2,SM -CMPLEPD xmmreg,xmmreg \331\3\x66\x0F\xC2\110\1\x02 WILLAMETTE,SSE2 +CMPLEPD xmmreg,mem \301\331\366\2\x0F\xC2\110\1\x02 WILLAMETTE,SSE2,SM +CMPLEPD xmmreg,xmmreg \331\366\2\x0F\xC2\110\1\x02 WILLAMETTE,SSE2 CMPLESD xmmreg,mem \301\331\3\xF2\x0F\xC2\110\1\x02 WILLAMETTE,SSE2 CMPLESD xmmreg,xmmreg \331\3\xF2\x0F\xC2\110\1\x02 WILLAMETTE,SSE2 -CMPLTPD xmmreg,mem \301\331\3\x66\x0F\xC2\110\1\x01 WILLAMETTE,SSE2,SM -CMPLTPD xmmreg,xmmreg \331\3\x66\x0F\xC2\110\1\x01 WILLAMETTE,SSE2 +CMPLTPD xmmreg,mem \301\331\366\2\x0F\xC2\110\1\x01 WILLAMETTE,SSE2,SM +CMPLTPD xmmreg,xmmreg \331\366\2\x0F\xC2\110\1\x01 WILLAMETTE,SSE2 CMPLTSD xmmreg,mem \301\331\3\xF2\x0F\xC2\110\1\x01 WILLAMETTE,SSE2 CMPLTSD xmmreg,xmmreg \331\3\xF2\x0F\xC2\110\1\x01 WILLAMETTE,SSE2 -CMPNEQPD xmmreg,mem \301\331\3\x66\x0F\xC2\110\1\x04 WILLAMETTE,SSE2,SM -CMPNEQPD xmmreg,xmmreg \331\3\x66\x0F\xC2\110\1\x04 WILLAMETTE,SSE2 +CMPNEQPD xmmreg,mem \301\331\366\2\x0F\xC2\110\1\x04 WILLAMETTE,SSE2,SM +CMPNEQPD xmmreg,xmmreg \331\366\2\x0F\xC2\110\1\x04 WILLAMETTE,SSE2 CMPNEQSD xmmreg,mem \301\331\3\xF2\x0F\xC2\110\1\x04 WILLAMETTE,SSE2 CMPNEQSD xmmreg,xmmreg \331\3\xF2\x0F\xC2\110\1\x04 WILLAMETTE,SSE2 -CMPNLEPD xmmreg,mem \301\331\3\x66\x0F\xC2\110\1\x06 WILLAMETTE,SSE2,SM -CMPNLEPD xmmreg,xmmreg \331\3\x66\x0F\xC2\110\1\x06 WILLAMETTE,SSE2 +CMPNLEPD xmmreg,mem \301\331\366\2\x0F\xC2\110\1\x06 WILLAMETTE,SSE2,SM +CMPNLEPD xmmreg,xmmreg \331\366\2\x0F\xC2\110\1\x06 WILLAMETTE,SSE2 CMPNLESD xmmreg,mem \301\331\3\xF2\x0F\xC2\110\1\x06 WILLAMETTE,SSE2 CMPNLESD xmmreg,xmmreg \331\3\xF2\x0F\xC2\110\1\x06 WILLAMETTE,SSE2 -CMPNLTPD xmmreg,mem \301\331\3\x66\x0F\xC2\110\1\x05 WILLAMETTE,SSE2,SM -CMPNLTPD xmmreg,xmmreg \331\3\x66\x0F\xC2\110\1\x05 WILLAMETTE,SSE2 +CMPNLTPD xmmreg,mem \301\331\366\2\x0F\xC2\110\1\x05 WILLAMETTE,SSE2,SM +CMPNLTPD xmmreg,xmmreg \331\366\2\x0F\xC2\110\1\x05 WILLAMETTE,SSE2 CMPNLTSD xmmreg,mem \301\331\3\xF2\x0F\xC2\110\1\x05 WILLAMETTE,SSE2 CMPNLTSD xmmreg,xmmreg \331\3\xF2\x0F\xC2\110\1\x05 WILLAMETTE,SSE2 -CMPORDPD xmmreg,mem \301\331\3\x66\x0F\xC2\110\1\x07 WILLAMETTE,SSE2,SM -CMPORDPD xmmreg,xmmreg \331\3\x66\x0F\xC2\110\1\x07 WILLAMETTE,SSE2 +CMPORDPD xmmreg,mem \301\331\366\2\x0F\xC2\110\1\x07 WILLAMETTE,SSE2,SM +CMPORDPD xmmreg,xmmreg \331\366\2\x0F\xC2\110\1\x07 WILLAMETTE,SSE2 CMPORDSD xmmreg,mem \301\331\3\xF2\x0F\xC2\110\1\x07 WILLAMETTE,SSE2 CMPORDSD xmmreg,xmmreg \331\3\xF2\x0F\xC2\110\1\x07 WILLAMETTE,SSE2 -CMPUNORDPD xmmreg,mem \301\331\3\x66\x0F\xC2\110\1\x03 WILLAMETTE,SSE2,SM -CMPUNORDPD xmmreg,xmmreg \331\3\x66\x0F\xC2\110\1\x03 WILLAMETTE,SSE2 +CMPUNORDPD xmmreg,mem \301\331\366\2\x0F\xC2\110\1\x03 WILLAMETTE,SSE2,SM +CMPUNORDPD xmmreg,xmmreg \331\366\2\x0F\xC2\110\1\x03 WILLAMETTE,SSE2 CMPUNORDSD xmmreg,mem \301\331\3\xF2\x0F\xC2\110\1\x03 WILLAMETTE,SSE2 CMPUNORDSD xmmreg,xmmreg \331\3\xF2\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,xmmreg,imm \331\3\x66\x0F\xC2\110\26 WILLAMETTE,SSE2,SB,AR2 -CMPPD xmmreg,mem,imm \301\331\3\x66\x0F\xC2\110\26 WILLAMETTE,SSE2,SM2,SB,AR2 +CMPPD xmmreg,xmmreg,imm \331\366\2\x0F\xC2\110\26 WILLAMETTE,SSE2,SB,AR2 +CMPPD xmmreg,mem,imm \301\331\366\2\x0F\xC2\110\26 WILLAMETTE,SSE2,SM2,SB,AR2 CMPSD xmmreg,xmmreg,imm \331\3\xF2\x0F\xC2\110\26 WILLAMETTE,SSE2,SB,AR2 CMPSD xmmreg,mem,imm \301\331\3\xF2\x0F\xC2\110\26 WILLAMETTE,SSE2,SB,AR2 -COMISD xmmreg,xmmreg \331\3\x66\x0F\x2F\110 WILLAMETTE,SSE2 -COMISD xmmreg,mem \301\331\3\x66\x0F\x2F\110 WILLAMETTE,SSE2 +COMISD xmmreg,xmmreg \331\366\2\x0F\x2F\110 WILLAMETTE,SSE2 +COMISD xmmreg,mem \301\331\366\2\x0F\x2F\110 WILLAMETTE,SSE2 CVTDQ2PD xmmreg,xmmreg \333\2\x0F\xE6\110 WILLAMETTE,SSE2 CVTDQ2PD xmmreg,mem \301\333\2\x0F\xE6\110 WILLAMETTE,SSE2 CVTDQ2PS xmmreg,xmmreg \2\x0F\x5B\110 WILLAMETTE,SSE2 CVTDQ2PS xmmreg,mem \301\2\x0F\x5B\110 WILLAMETTE,SSE2,SM CVTPD2DQ xmmreg,xmmreg \3\xF2\x0F\xE6\110 WILLAMETTE,SSE2 CVTPD2DQ xmmreg,mem \301\3\xF2\x0F\xE6\110 WILLAMETTE,SSE2,SM -CVTPD2PI mmxreg,xmmreg \3\x66\x0F\x2D\110 WILLAMETTE,SSE2 -CVTPD2PI mmxreg,mem \301\3\x66\x0F\x2D\110 WILLAMETTE,SSE2 -CVTPD2PS xmmreg,xmmreg \3\x66\x0F\x5A\110 WILLAMETTE,SSE2 -CVTPD2PS xmmreg,mem \301\3\x66\x0F\x5A\110 WILLAMETTE,SSE2,SM -CVTPI2PD xmmreg,mmxreg \3\x66\x0F\x2A\110 WILLAMETTE,SSE2 -CVTPI2PD xmmreg,mem \301\3\x66\x0F\x2A\110 WILLAMETTE,SSE2 -CVTPS2DQ xmmreg,xmmreg \3\x66\x0F\x5B\110 WILLAMETTE,SSE2 -CVTPS2DQ xmmreg,mem \301\3\x66\x0F\x5B\110 WILLAMETTE,SSE2,SM +CVTPD2PI mmxreg,xmmreg \366\2\x0F\x2D\110 WILLAMETTE,SSE2 +CVTPD2PI mmxreg,mem \301\366\2\x0F\x2D\110 WILLAMETTE,SSE2 +CVTPD2PS xmmreg,xmmreg \366\2\x0F\x5A\110 WILLAMETTE,SSE2 +CVTPD2PS xmmreg,mem \301\366\2\x0F\x5A\110 WILLAMETTE,SSE2,SM +CVTPI2PD xmmreg,mmxreg \366\2\x0F\x2A\110 WILLAMETTE,SSE2 +CVTPI2PD xmmreg,mem \301\366\2\x0F\x2A\110 WILLAMETTE,SSE2 +CVTPS2DQ xmmreg,xmmreg \366\2\x0F\x5B\110 WILLAMETTE,SSE2 +CVTPS2DQ xmmreg,mem \301\366\2\x0F\x5B\110 WILLAMETTE,SSE2,SM CVTPS2PD xmmreg,xmmreg \2\x0F\x5A\110 WILLAMETTE,SSE2 CVTPS2PD xmmreg,mem \301\2\x0F\x5A\110 WILLAMETTE,SSE2 CVTSD2SI reg32,xmmreg \3\xF2\x0F\x2D\110 WILLAMETTE,SSE2 @@ -1817,79 +1817,79 @@ CVTSI2SD xmmreg,reg32 \3\xF2\x0F\x2A\110 WILLAMET CVTSI2SD xmmreg,mem \301\3\xF2\x0F\x2A\110 WILLAMETTE,SSE2 CVTSS2SD xmmreg,xmmreg \333\2\x0F\x5A\110 WILLAMETTE,SSE2 CVTSS2SD xmmreg,mem \301\333\2\x0F\x5A\110 WILLAMETTE,SSE2 -CVTTPD2PI mmxreg,xmmreg \3\x66\x0F\x2C\110 WILLAMETTE,SSE2 -CVTTPD2PI mmxreg,mem \301\3\x66\x0F\x2C\110 WILLAMETTE,SSE2 -CVTTPD2DQ xmmreg,xmmreg \3\x66\x0F\xE6\110 WILLAMETTE,SSE2 -CVTTPD2DQ xmmreg,mem \301\3\x66\x0F\xE6\110 WILLAMETTE,SSE2,SM +CVTTPD2PI mmxreg,xmmreg \366\2\x0F\x2C\110 WILLAMETTE,SSE2 +CVTTPD2PI mmxreg,mem \301\366\2\x0F\x2C\110 WILLAMETTE,SSE2 +CVTTPD2DQ xmmreg,xmmreg \366\2\x0F\xE6\110 WILLAMETTE,SSE2 +CVTTPD2DQ xmmreg,mem \301\366\2\x0F\xE6\110 WILLAMETTE,SSE2,SM CVTTPS2DQ xmmreg,xmmreg \333\2\x0F\x5B\110 WILLAMETTE,SSE2 CVTTPS2DQ xmmreg,mem \301\333\2\x0F\x5B\110 WILLAMETTE,SSE2,SM CVTTSD2SI reg32,xmmreg \3\xF2\x0F\x2C\110 WILLAMETTE,SSE2 CVTTSD2SI reg32,mem \301\3\xF2\x0F\x2C\110 WILLAMETTE,SSE2 -DIVPD xmmreg,xmmreg \3\x66\x0F\x5E\110 WILLAMETTE,SSE2 -DIVPD xmmreg,mem \301\3\x66\x0F\x5E\110 WILLAMETTE,SSE2,SM +DIVPD xmmreg,xmmreg \366\2\x0F\x5E\110 WILLAMETTE,SSE2 +DIVPD xmmreg,mem \301\366\2\x0F\x5E\110 WILLAMETTE,SSE2,SM DIVSD xmmreg,xmmreg \3\xF2\x0F\x5E\110 WILLAMETTE,SSE2 DIVSD xmmreg,mem \301\3\xF2\x0F\x5E\110 WILLAMETTE,SSE2 -MAXPD xmmreg,xmmreg \3\x66\x0F\x5F\110 WILLAMETTE,SSE2 -MAXPD xmmreg,mem \301\3\x66\x0F\x5F\110 WILLAMETTE,SSE2,SM +MAXPD xmmreg,xmmreg \366\2\x0F\x5F\110 WILLAMETTE,SSE2 +MAXPD xmmreg,mem \301\366\2\x0F\x5F\110 WILLAMETTE,SSE2,SM MAXSD xmmreg,xmmreg \3\xF2\x0F\x5F\110 WILLAMETTE,SSE2 MAXSD xmmreg,mem \301\3\xF2\x0F\x5F\110 WILLAMETTE,SSE2 -MINPD xmmreg,xmmreg \3\x66\x0F\x5D\110 WILLAMETTE,SSE2 -MINPD xmmreg,mem \301\3\x66\x0F\x5D\110 WILLAMETTE,SSE2,SM +MINPD xmmreg,xmmreg \366\2\x0F\x5D\110 WILLAMETTE,SSE2 +MINPD xmmreg,mem \301\366\2\x0F\x5D\110 WILLAMETTE,SSE2,SM MINSD xmmreg,xmmreg \3\xF2\x0F\x5D\110 WILLAMETTE,SSE2 MINSD xmmreg,mem \301\3\xF2\x0F\x5D\110 WILLAMETTE,SSE2 -MOVAPD xmmreg,xmmreg \3\x66\x0F\x28\110 WILLAMETTE,SSE2 -MOVAPD xmmreg,xmmreg \3\x66\x0F\x29\110 WILLAMETTE,SSE2 -MOVAPD mem,xmmreg \300\3\x66\x0F\x29\101 WILLAMETTE,SSE2,SM -MOVAPD xmmreg,mem \301\3\x66\x0F\x28\110 WILLAMETTE,SSE2,SM -MOVHPD mem,xmmreg \300\3\x66\x0F\x17\101 WILLAMETTE,SSE2 -MOVHPD xmmreg,mem \301\3\x66\x0F\x16\110 WILLAMETTE,SSE2 -MOVLPD mem,xmmreg \300\3\x66\x0F\x13\101 WILLAMETTE,SSE2 -MOVLPD xmmreg,mem \301\3\x66\x0F\x12\110 WILLAMETTE,SSE2 -MOVMSKPD reg32,xmmreg \3\x66\x0F\x50\110 WILLAMETTE,SSE2 +MOVAPD xmmreg,xmmreg \366\2\x0F\x28\110 WILLAMETTE,SSE2 +MOVAPD xmmreg,xmmreg \366\2\x0F\x29\110 WILLAMETTE,SSE2 +MOVAPD mem,xmmreg \300\366\2\x0F\x29\101 WILLAMETTE,SSE2,SM +MOVAPD xmmreg,mem \301\366\2\x0F\x28\110 WILLAMETTE,SSE2,SM +MOVHPD mem,xmmreg \300\366\2\x0F\x17\101 WILLAMETTE,SSE2 +MOVHPD xmmreg,mem \301\366\2\x0F\x16\110 WILLAMETTE,SSE2 +MOVLPD mem,xmmreg \300\366\2\x0F\x13\101 WILLAMETTE,SSE2 +MOVLPD xmmreg,mem \301\366\2\x0F\x12\110 WILLAMETTE,SSE2 +MOVMSKPD reg32,xmmreg \366\2\x0F\x50\110 WILLAMETTE,SSE2 MOVSD xmmreg,xmmreg \3\xF2\x0F\x10\110 WILLAMETTE,SSE2 MOVSD xmmreg,xmmreg \3\xF2\x0F\x11\110 WILLAMETTE,SSE2 MOVSD mem,xmmreg \300\3\xF2\x0F\x11\101 WILLAMETTE,SSE2 MOVSD xmmreg,mem \301\3\xF2\x0F\x10\110 WILLAMETTE,SSE2 -MOVUPD xmmreg,xmmreg \3\x66\x0F\x10\110 WILLAMETTE,SSE2 -MOVUPD xmmreg,xmmreg \3\x66\x0F\x11\110 WILLAMETTE,SSE2 -MOVUPD mem,xmmreg \300\3\x66\x0F\x11\101 WILLAMETTE,SSE2,SM -MOVUPD xmmreg,mem \301\3\x66\x0F\x10\110 WILLAMETTE,SSE2,SM -MULPD xmmreg,xmmreg \3\x66\x0F\x59\110 WILLAMETTE,SSE2 -MULPD xmmreg,mem \301\3\x66\x0F\x59\110 WILLAMETTE,SSE2,SM +MOVUPD xmmreg,xmmreg \366\2\x0F\x10\110 WILLAMETTE,SSE2 +MOVUPD xmmreg,xmmreg \366\2\x0F\x11\110 WILLAMETTE,SSE2 +MOVUPD mem,xmmreg \300\366\2\x0F\x11\101 WILLAMETTE,SSE2,SM +MOVUPD xmmreg,mem \301\366\2\x0F\x10\110 WILLAMETTE,SSE2,SM +MULPD xmmreg,xmmreg \366\2\x0F\x59\110 WILLAMETTE,SSE2 +MULPD xmmreg,mem \301\366\2\x0F\x59\110 WILLAMETTE,SSE2,SM MULSD xmmreg,xmmreg \3\xF2\x0F\x59\110 WILLAMETTE,SSE2 MULSD xmmreg,mem \301\3\xF2\x0F\x59\110 WILLAMETTE,SSE2 -ORPD xmmreg,mem \301\3\x66\x0F\x56\110 WILLAMETTE,SSE2,SM -ORPD xmmreg,xmmreg \3\x66\x0F\x56\110 WILLAMETTE,SSE2 -SHUFPD xmmreg,xmmreg,imm \3\x66\x0F\xC6\110\26 WILLAMETTE,SSE2,SB,AR2 -SHUFPD xmmreg,mem,imm \301\3\x66\x0F\xC6\110\26 WILLAMETTE,SSE2,SM,SB,AR2 -SQRTPD xmmreg,xmmreg \3\x66\x0F\x51\110 WILLAMETTE,SSE2 -SQRTPD xmmreg,mem \301\3\x66\x0F\x51\110 WILLAMETTE,SSE2,SM +ORPD xmmreg,mem \301\366\2\x0F\x56\110 WILLAMETTE,SSE2,SM +ORPD xmmreg,xmmreg \366\2\x0F\x56\110 WILLAMETTE,SSE2 +SHUFPD xmmreg,xmmreg,imm \366\2\x0F\xC6\110\26 WILLAMETTE,SSE2,SB,AR2 +SHUFPD xmmreg,mem,imm \301\366\2\x0F\xC6\110\26 WILLAMETTE,SSE2,SM,SB,AR2 +SQRTPD xmmreg,xmmreg \366\2\x0F\x51\110 WILLAMETTE,SSE2 +SQRTPD xmmreg,mem \301\366\2\x0F\x51\110 WILLAMETTE,SSE2,SM SQRTSD xmmreg,xmmreg \3\xF2\x0F\x51\110 WILLAMETTE,SSE2 SQRTSD xmmreg,mem \301\3\xF2\x0F\x51\110 WILLAMETTE,SSE2 -SUBPD xmmreg,xmmreg \3\x66\x0F\x5C\110 WILLAMETTE,SSE2 -SUBPD xmmreg,mem \301\3\x66\x0F\x5C\110 WILLAMETTE,SSE2,SM +SUBPD xmmreg,xmmreg \366\2\x0F\x5C\110 WILLAMETTE,SSE2 +SUBPD xmmreg,mem \301\366\2\x0F\x5C\110 WILLAMETTE,SSE2,SM SUBSD xmmreg,xmmreg \3\xF2\x0F\x5C\110 WILLAMETTE,SSE2 SUBSD xmmreg,mem \301\3\xF2\x0F\x5C\110 WILLAMETTE,SSE2 -UCOMISD xmmreg,xmmreg \3\x66\x0F\x2E\110 WILLAMETTE,SSE2 -UCOMISD xmmreg,mem \301\3\x66\x0F\x2E\110 WILLAMETTE,SSE2 -UNPCKHPD xmmreg,xmmreg \3\x66\x0F\x15\110 WILLAMETTE,SSE2 -UNPCKHPD xmmreg,mem \301\3\x66\x0F\x15\110 WILLAMETTE,SSE2,SM -UNPCKLPD xmmreg,xmmreg \3\x66\x0F\x14\110 WILLAMETTE,SSE2 -UNPCKLPD xmmreg,mem \301\3\x66\x0F\x14\110 WILLAMETTE,SSE2,SM -XORPD xmmreg,xmmreg \3\x66\x0F\x57\110 WILLAMETTE,SSE2 -XORPD xmmreg,mem \301\3\x66\x0F\x57\110 WILLAMETTE,SSE2,SM +UCOMISD xmmreg,xmmreg \366\2\x0F\x2E\110 WILLAMETTE,SSE2 +UCOMISD xmmreg,mem \301\366\2\x0F\x2E\110 WILLAMETTE,SSE2 +UNPCKHPD xmmreg,xmmreg \366\2\x0F\x15\110 WILLAMETTE,SSE2 +UNPCKHPD xmmreg,mem \301\366\2\x0F\x15\110 WILLAMETTE,SSE2,SM +UNPCKLPD xmmreg,xmmreg \366\2\x0F\x14\110 WILLAMETTE,SSE2 +UNPCKLPD xmmreg,mem \301\366\2\x0F\x14\110 WILLAMETTE,SSE2,SM +XORPD xmmreg,xmmreg \366\2\x0F\x57\110 WILLAMETTE,SSE2 +XORPD xmmreg,mem \301\366\2\x0F\x57\110 WILLAMETTE,SSE2,SM ; Prescott New Instructions (SSE3) -ADDSUBPD xmmreg,mem \301\3\x66\x0F\xD0\110 PRESCOTT,SSE3,SM -ADDSUBPD xmmreg,xmmreg \3\x66\x0F\xD0\110 PRESCOTT,SSE3 +ADDSUBPD xmmreg,mem \301\366\2\x0F\xD0\110 PRESCOTT,SSE3,SM +ADDSUBPD xmmreg,xmmreg \366\2\x0F\xD0\110 PRESCOTT,SSE3 ADDSUBPS xmmreg,mem \301\3\xF2\x0F\xD0\110 PRESCOTT,SSE3,SM ADDSUBPS xmmreg,xmmreg \3\xF2\x0F\xD0\110 PRESCOTT,SSE3 -HADDPD xmmreg,mem \301\3\x66\x0F\x7C\110 PRESCOTT,SSE3,SM -HADDPD xmmreg,xmmreg \3\x66\x0F\x7C\110 PRESCOTT,SSE3 +HADDPD xmmreg,mem \301\366\2\x0F\x7C\110 PRESCOTT,SSE3,SM +HADDPD xmmreg,xmmreg \366\2\x0F\x7C\110 PRESCOTT,SSE3 HADDPS xmmreg,mem \301\3\xF2\x0F\x7C\110 PRESCOTT,SSE3,SM HADDPS xmmreg,xmmreg \3\xF2\x0F\x7C\110 PRESCOTT,SSE3 -HSUBPD xmmreg,mem \301\3\x66\x0F\x7D\110 PRESCOTT,SSE3,SM -HSUBPD xmmreg,xmmreg \3\x66\x0F\x7D\110 PRESCOTT,SSE3 +HSUBPD xmmreg,mem \301\366\2\x0F\x7D\110 PRESCOTT,SSE3,SM +HSUBPD xmmreg,xmmreg \366\2\x0F\x7D\110 PRESCOTT,SSE3 HSUBPS xmmreg,mem \301\3\xF2\x0F\x7D\110 PRESCOTT,SSE3,SM HSUBPS xmmreg,xmmreg \3\xF2\x0F\x7D\110 PRESCOTT,SSE3 LDDQU xmmreg,mem \3\xF2\x0F\xF0\110 PRESCOTT,SSE3 @@ -1902,7 +1902,7 @@ MOVSLDUP xmmreg,xmmreg \3\xF3\x0F\x12\110 PRESCOTT,SSE3 ; VMX Instructions VMCALL void \3\x0F\x01\xC1 VMX -VMCLEAR mem \3\x66\x0F\xC7\206 VMX +VMCLEAR mem \366\2\x0F\xC7\206 VMX VMLAUNCH void \3\x0F\x01\xC2 VMX VMLOAD void \3\x0F\x01\xDA X64,VMX VMMCALL void \3\x0F\x01\xD9 X64,VMX -- 2.34.1