From: Peter Johnson Date: Wed, 30 May 2001 08:00:26 +0000 (-0000) Subject: Realign table columns to allow enough space for the opcode. X-Git-Tag: v0.1.0~466 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2489dedd3ef2ec83195ee3d0b0f49fc71b07e0f3;p=yasm Realign table columns to allow enough space for the opcode. Caveat: does make some lines >80 columns. svn path=/trunk/yasm/; revision=45 --- diff --git a/src/instrs.dat b/src/instrs.dat index c24bc3f1..97a36758 100644 --- a/src/instrs.dat +++ b/src/instrs.dat @@ -1,4 +1,4 @@ -; $Id: instrs.dat,v 1.5 2001/05/30 07:07:16 peter Exp $ +; $Id: instrs.dat,v 1.6 2001/05/30 08:00:26 peter Exp $ ; List of valid instruction/operand combinations ; ; Copyright (C) 2001 Peter Johnson @@ -58,248 +58,248 @@ ; Doublecheck AMD and Cyrix instructions. ; Doublecheck the segreg mov instructions. ; -; Inst Operands OpSize Opcode EffAddr Imm CPU -aaa nil nil 37 nil nil 8086 -aad nil nil D5,0A nil nil 8086 -aad imm8 nil D5 nil $1,8 8086 -aam nil nil D4,0A nil nil 8086 -aam imm8 nil D4 nil $1,8 8086 -aas nil nil 3F nil nil 8086 -adc REG_AL,imm8 nil 14 nil $2,8 8086 -adc REG_AX,imm16 16 15 nil $2,16 8086 -adc REG_EAX,imm32 32 15 nil $2,32 386 -adc reg8,imm nil 80 $1r,2 $2,8 8086 -adc mem8x,imm nil 80 $1,2 $2,8 8086 -adc reg8,imm8x nil 80 $1r,2 $2,8 8086 -adc mem,imm8x nil 80 $1,2 $2,8 8086 -adc reg16,imm 16 81 $1r,2 $2,16 8086 -adc mem16x,imm 16 81 $1,2 $2,16 8086 -adc reg16,imm16x 16 81 $1r,2 $2,16 8086 -adc mem,imm16x 16 81 $1,2 $2,16 8086 -adc reg32,imm 32 81 $1r,2 $2,32 386 -adc mem32x,imm 32 81 $1,2 $2,32 386 -adc reg32,imm32x 32 81 $1r,2 $2,32 386 -adc mem,imm32x 32 81 $1,2 $2,32 386 -adc reg16,imm8x 16 83 $1r,2 $2,8s 8086 -adc mem16x,imm8x 16 83 $1,2 $2,8s 8086 -adc reg32,imm8x 32 83 $1r,2 $2,8s 386 -adc mem32x,imm8x 32 83 $1,2 $2,8s 386 +; Inst Operands OpSize Opcode EffAddr Imm CPU +aaa nil nil 37 nil nil 8086 +aad nil nil D5,0A nil nil 8086 +aad imm8 nil D5 nil $1,8 8086 +aam nil nil D4,0A nil nil 8086 +aam imm8 nil D4 nil $1,8 8086 +aas nil nil 3F nil nil 8086 +adc REG_AL,imm8 nil 14 nil $2,8 8086 +adc REG_AX,imm16 16 15 nil $2,16 8086 +adc REG_EAX,imm32 32 15 nil $2,32 386 +adc reg8,imm nil 80 $1r,2 $2,8 8086 +adc mem8x,imm nil 80 $1,2 $2,8 8086 +adc reg8,imm8x nil 80 $1r,2 $2,8 8086 +adc mem,imm8x nil 80 $1,2 $2,8 8086 +adc reg16,imm 16 81 $1r,2 $2,16 8086 +adc mem16x,imm 16 81 $1,2 $2,16 8086 +adc reg16,imm16x 16 81 $1r,2 $2,16 8086 +adc mem,imm16x 16 81 $1,2 $2,16 8086 +adc reg32,imm 32 81 $1r,2 $2,32 386 +adc mem32x,imm 32 81 $1,2 $2,32 386 +adc reg32,imm32x 32 81 $1r,2 $2,32 386 +adc mem,imm32x 32 81 $1,2 $2,32 386 +adc reg16,imm8x 16 83 $1r,2 $2,8s 8086 +adc mem16x,imm8x 16 83 $1,2 $2,8s 8086 +adc reg32,imm8x 32 83 $1r,2 $2,8s 386 +adc mem32x,imm8x 32 83 $1,2 $2,8s 386 ; opcode arbitrarily picked for next 3 (could be 12/13 instead of 10/11). -adc reg8,reg8 nil 10 $1r,$2 nil 8086 -adc reg16,reg16 16 11 $1r,$2 nil 8086 -adc reg32,reg32 32 11 $1r,$2 nil 386 -adc mem,reg8 nil 10 $1,$2 nil 8086 -adc mem8x,reg8 nil 10 $1,$2 nil 8086 -adc mem,reg16 16 11 $1,$2 nil 8086 -adc mem16x,reg16 16 11 $1,$2 nil 8086 -adc mem,reg32 32 11 $1,$2 nil 386 -adc mem32x,reg32 32 11 $1,$2 nil 386 -adc reg8,mem8 nil 12 $2,$1 nil 8086 -adc reg16,mem16 16 13 $2,$1 nil 8086 -adc reg32,mem32 32 13 $2,$1 nil 386 -add REG_AL,imm8 nil 04 nil $2,8 8086 -add REG_AX,imm16 16 05 nil $2,16 8086 -add REG_EAX,imm32 32 05 nil $2,32 386 -add reg8,imm nil 80 $1r,0 $2,8 8086 -add mem8x,imm nil 80 $1,0 $2,8 8086 -add reg8,imm8x nil 80 $1r,0 $2,8 8086 -add mem,imm8x nil 80 $1,0 $2,8 8086 -add reg16,imm 16 81 $1r,0 $2,16 8086 -add mem16x,imm 16 81 $1,0 $2,16 8086 -add reg16,imm16x 16 81 $1r,0 $2,16 8086 -add mem,imm16x 16 81 $1,0 $2,16 8086 -add reg32,imm 32 81 $1r,0 $2,32 386 -add mem32x,imm 32 81 $1,0 $2,32 386 -add reg32,imm32x 32 81 $1r,0 $2,32 386 -add mem,imm32x 32 81 $1,0 $2,32 386 -add reg16,imm8x 16 83 $1r,0 $2,8s 8086 -add mem16x,imm8x 16 83 $1,0 $2,8s 8086 -add reg32,imm8x 32 83 $1r,0 $2,8s 386 -add mem32x,imm8x 32 83 $1,0 $2,8s 386 +adc reg8,reg8 nil 10 $1r,$2 nil 8086 +adc reg16,reg16 16 11 $1r,$2 nil 8086 +adc reg32,reg32 32 11 $1r,$2 nil 386 +adc mem,reg8 nil 10 $1,$2 nil 8086 +adc mem8x,reg8 nil 10 $1,$2 nil 8086 +adc mem,reg16 16 11 $1,$2 nil 8086 +adc mem16x,reg16 16 11 $1,$2 nil 8086 +adc mem,reg32 32 11 $1,$2 nil 386 +adc mem32x,reg32 32 11 $1,$2 nil 386 +adc reg8,mem8 nil 12 $2,$1 nil 8086 +adc reg16,mem16 16 13 $2,$1 nil 8086 +adc reg32,mem32 32 13 $2,$1 nil 386 +add REG_AL,imm8 nil 04 nil $2,8 8086 +add REG_AX,imm16 16 05 nil $2,16 8086 +add REG_EAX,imm32 32 05 nil $2,32 386 +add reg8,imm nil 80 $1r,0 $2,8 8086 +add mem8x,imm nil 80 $1,0 $2,8 8086 +add reg8,imm8x nil 80 $1r,0 $2,8 8086 +add mem,imm8x nil 80 $1,0 $2,8 8086 +add reg16,imm 16 81 $1r,0 $2,16 8086 +add mem16x,imm 16 81 $1,0 $2,16 8086 +add reg16,imm16x 16 81 $1r,0 $2,16 8086 +add mem,imm16x 16 81 $1,0 $2,16 8086 +add reg32,imm 32 81 $1r,0 $2,32 386 +add mem32x,imm 32 81 $1,0 $2,32 386 +add reg32,imm32x 32 81 $1r,0 $2,32 386 +add mem,imm32x 32 81 $1,0 $2,32 386 +add reg16,imm8x 16 83 $1r,0 $2,8s 8086 +add mem16x,imm8x 16 83 $1,0 $2,8s 8086 +add reg32,imm8x 32 83 $1r,0 $2,8s 386 +add mem32x,imm8x 32 83 $1,0 $2,8s 386 ; opcode arbitrarily picked for next 3 (could be 02/03 instead of 00/01). -add reg8,reg8 nil 00 $1r,$2 nil 8086 -add reg16,reg16 16 01 $1r,$2 nil 8086 -add reg32,reg32 32 01 $1r,$2 nil 386 -add mem,reg8 nil 00 $1,$2 nil 8086 -add mem8x,reg8 nil 00 $1,$2 nil 8086 -add mem,reg16 16 01 $1,$2 nil 8086 -add mem16x,reg16 16 01 $1,$2 nil 8086 -add mem,reg32 32 01 $1,$2 nil 386 -add mem32x,reg32 32 01 $1,$2 nil 386 -add reg8,mem8 nil 02 $2,$1 nil 8086 -add reg16,mem16 16 03 $2,$1 nil 8086 -add reg32,mem32 32 03 $2,$1 nil 386 +add reg8,reg8 nil 00 $1r,$2 nil 8086 +add reg16,reg16 16 01 $1r,$2 nil 8086 +add reg32,reg32 32 01 $1r,$2 nil 386 +add mem,reg8 nil 00 $1,$2 nil 8086 +add mem8x,reg8 nil 00 $1,$2 nil 8086 +add mem,reg16 16 01 $1,$2 nil 8086 +add mem16x,reg16 16 01 $1,$2 nil 8086 +add mem,reg32 32 01 $1,$2 nil 386 +add mem32x,reg32 32 01 $1,$2 nil 386 +add reg8,mem8 nil 02 $2,$1 nil 8086 +add reg16,mem16 16 03 $2,$1 nil 8086 +add reg32,mem32 32 03 $2,$1 nil 386 addpd XMMREG,rm128 nil 66,0F,58 $2,$1 nil P4,SSE2 -addps XMMREG,rm128 nil 0F,58 $2,$1 nil KATMAI,SSE +addps XMMREG,rm128 nil 0F,58 $2,$1 nil KATMAI,SSE addsd XMMREG,rm128 nil F2,0F,58 $2,$1 nil P4,SSE2 addss XMMREG,rm128 nil F3,0F,58 $2,$1 nil P4,SSE2 -and REG_AL,imm8 nil 24 nil $2,8 8086 -and REG_AX,imm16 16 25 nil $2,16 8086 -and REG_EAX,imm32 32 25 nil $2,32 386 -and reg8,imm nil 80 $1r,4 $2,8 8086 -and mem8x,imm nil 80 $1,4 $2,8 8086 -and reg8,imm8x nil 80 $1r,4 $2,8 8086 -and mem,imm8x nil 80 $1,4 $2,8 8086 -and reg16,imm 16 81 $1r,4 $2,16 8086 -and mem16x,imm 16 81 $1,4 $2,16 8086 -and reg16,imm16x 16 81 $1r,4 $2,16 8086 -and mem,imm16x 16 81 $1,4 $2,16 8086 -and reg32,imm 32 81 $1r,4 $2,32 386 -and mem32x,imm 32 81 $1,4 $2,32 386 -and reg32,imm32x 32 81 $1r,4 $2,32 386 -and mem,imm32x 32 81 $1,4 $2,32 386 -and reg16,imm8x 16 83 $1r,4 $2,8s 8086 -and mem16x,imm8x 16 83 $1,4 $2,8s 8086 -and reg32,imm8x 32 83 $1r,4 $2,8s 386 -and mem32x,imm8x 32 83 $1,4 $2,8s 386 +and REG_AL,imm8 nil 24 nil $2,8 8086 +and REG_AX,imm16 16 25 nil $2,16 8086 +and REG_EAX,imm32 32 25 nil $2,32 386 +and reg8,imm nil 80 $1r,4 $2,8 8086 +and mem8x,imm nil 80 $1,4 $2,8 8086 +and reg8,imm8x nil 80 $1r,4 $2,8 8086 +and mem,imm8x nil 80 $1,4 $2,8 8086 +and reg16,imm 16 81 $1r,4 $2,16 8086 +and mem16x,imm 16 81 $1,4 $2,16 8086 +and reg16,imm16x 16 81 $1r,4 $2,16 8086 +and mem,imm16x 16 81 $1,4 $2,16 8086 +and reg32,imm 32 81 $1r,4 $2,32 386 +and mem32x,imm 32 81 $1,4 $2,32 386 +and reg32,imm32x 32 81 $1r,4 $2,32 386 +and mem,imm32x 32 81 $1,4 $2,32 386 +and reg16,imm8x 16 83 $1r,4 $2,8s 8086 +and mem16x,imm8x 16 83 $1,4 $2,8s 8086 +and reg32,imm8x 32 83 $1r,4 $2,8s 386 +and mem32x,imm8x 32 83 $1,4 $2,8s 386 ; opcode arbitrarily picked for next 3 (could be 22/23 instead of 20/21). -and reg8,reg8 nil 20 $1r,$2 nil 8086 -and reg16,reg16 16 21 $1r,$2 nil 8086 -and reg32,reg32 32 21 $1r,$2 nil 386 -and mem,reg8 nil 20 $1,$2 nil 8086 -and mem8x,reg8 nil 20 $1,$2 nil 8086 -and mem,reg16 16 21 $1,$2 nil 8086 -and mem16x,reg16 16 21 $1,$2 nil 8086 -and mem,reg32 32 21 $1,$2 nil 386 -and mem32x,reg32 32 21 $1,$2 nil 386 -and reg8,mem8 nil 22 $2,$1 nil 8086 -and reg16,mem16 16 23 $2,$1 nil 8086 -and reg32,mem32 32 23 $2,$1 nil 386 +and reg8,reg8 nil 20 $1r,$2 nil 8086 +and reg16,reg16 16 21 $1r,$2 nil 8086 +and reg32,reg32 32 21 $1r,$2 nil 386 +and mem,reg8 nil 20 $1,$2 nil 8086 +and mem8x,reg8 nil 20 $1,$2 nil 8086 +and mem,reg16 16 21 $1,$2 nil 8086 +and mem16x,reg16 16 21 $1,$2 nil 8086 +and mem,reg32 32 21 $1,$2 nil 386 +and mem32x,reg32 32 21 $1,$2 nil 386 +and reg8,mem8 nil 22 $2,$1 nil 8086 +and reg16,mem16 16 23 $2,$1 nil 8086 +and reg32,mem32 32 23 $2,$1 nil 386 andpd XMMREG,rm128 nil 66,0F,54 $2,$1 nil P4,SSE2 -andps XMMREG,rm128 nil 0F,54 $2,$1 nil KATMAI,SSE +andps XMMREG,rm128 nil 0F,54 $2,$1 nil KATMAI,SSE andnpd XMMREG,rm128 nil 66,0F,55 $2,$1 nil P4,SSE2 -andnps XMMREG,rm128 nil 0F,55 $2,$1 nil KATMAI,SSE -arpl rm16,reg16 nil 63 $1,$2 nil 286,PROT -bound reg16,mem16 16 62 $2,$1 nil 186 -bound reg32,mem32 32 62 $2,$1 nil 386 -bsf reg16,rm16 16 0F,BC $2,$1 nil 386 -bsf reg32,rm32 32 0F,BC $2,$1 nil 386 -bsr reg16,rm16 16 0F,BD $2,$1 nil 386 -bsr reg32,rm32 32 0F,BD $2,$1 nil 386 +andnps XMMREG,rm128 nil 0F,55 $2,$1 nil KATMAI,SSE +arpl rm16,reg16 nil 63 $1,$2 nil 286,PROT +bound reg16,mem16 16 62 $2,$1 nil 186 +bound reg32,mem32 32 62 $2,$1 nil 386 +bsf reg16,rm16 16 0F,BC $2,$1 nil 386 +bsf reg32,rm32 32 0F,BC $2,$1 nil 386 +bsr reg16,rm16 16 0F,BD $2,$1 nil 386 +bsr reg32,rm32 32 0F,BD $2,$1 nil 386 bswap reg32 32 0F,C8+$1 nil nil 486 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -bt reg16,reg16 16 0F,A3 $1r,$2 nil 386 -bt mem,reg16 16 0F,A3 $1,$2 nil 386 -bt mem16x,reg16 16 0F,A3 $1,$2 nil 386 +bt reg16,reg16 16 0F,A3 $1r,$2 nil 386 +bt mem,reg16 16 0F,A3 $1,$2 nil 386 +bt mem16x,reg16 16 0F,A3 $1,$2 nil 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -bt reg32,reg32 32 0F,A3 $1r,$2 nil 386 -bt mem,reg32 32 0F,A3 $1,$2 nil 386 -bt mem32x,reg32 32 0F,A3 $1,$2 nil 386 -bt reg16,imm8 16 0F,BA $1r,4 $2,8 386 -bt mem16x,imm8 16 0F,BA $1,4 $2,8 386 -bt reg32,imm8 32 0F,BA $1r,4 $2,8 386 -bt mem32x,imm8 32 0F,BA $1,4 $2,8 386 +bt reg32,reg32 32 0F,A3 $1r,$2 nil 386 +bt mem,reg32 32 0F,A3 $1,$2 nil 386 +bt mem32x,reg32 32 0F,A3 $1,$2 nil 386 +bt reg16,imm8 16 0F,BA $1r,4 $2,8 386 +bt mem16x,imm8 16 0F,BA $1,4 $2,8 386 +bt reg32,imm8 32 0F,BA $1r,4 $2,8 386 +bt mem32x,imm8 32 0F,BA $1,4 $2,8 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -btc reg16,reg16 16 0F,BB $1r,$2 nil 386 -btc mem,reg16 16 0F,BB $1,$2 nil 386 -btc mem16x,reg16 16 0F,BB $1,$2 nil 386 +btc reg16,reg16 16 0F,BB $1r,$2 nil 386 +btc mem,reg16 16 0F,BB $1,$2 nil 386 +btc mem16x,reg16 16 0F,BB $1,$2 nil 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -btc reg32,reg32 32 0F,BB $1r,$2 nil 386 -btc mem,reg32 32 0F,BB $1,$2 nil 386 -btc mem32x,reg32 32 0F,BB $1,$2 nil 386 -btc reg16,imm8 16 0F,BA $1r,7 $2,8 386 -btc mem16x,imm8 16 0F,BA $1,7 $2,8 386 -btc reg32,imm8 32 0F,BA $1r,7 $2,8 386 -btc mem32x,imm8 32 0F,BA $1,7 $2,8 386 +btc reg32,reg32 32 0F,BB $1r,$2 nil 386 +btc mem,reg32 32 0F,BB $1,$2 nil 386 +btc mem32x,reg32 32 0F,BB $1,$2 nil 386 +btc reg16,imm8 16 0F,BA $1r,7 $2,8 386 +btc mem16x,imm8 16 0F,BA $1,7 $2,8 386 +btc reg32,imm8 32 0F,BA $1r,7 $2,8 386 +btc mem32x,imm8 32 0F,BA $1,7 $2,8 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -btr reg16,reg16 16 0F,B3 $1r,$2 nil 386 -btr mem,reg16 16 0F,B3 $1,$2 nil 386 -btr mem16x,reg16 16 0F,B3 $1,$2 nil 386 +btr reg16,reg16 16 0F,B3 $1r,$2 nil 386 +btr mem,reg16 16 0F,B3 $1,$2 nil 386 +btr mem16x,reg16 16 0F,B3 $1,$2 nil 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -btr reg32,reg32 32 0F,B3 $1r,$2 nil 386 -btr mem,reg32 32 0F,B3 $1,$2 nil 386 -btr mem32x,reg32 32 0F,B3 $1,$2 nil 386 -btr reg16,imm8 16 0F,BA $1r,6 $2,8 386 -btr mem16x,imm8 16 0F,BA $1,6 $2,8 386 -btr reg32,imm8 32 0F,BA $1r,6 $2,8 386 -btr mem32x,imm8 32 0F,BA $1,6 $2,8 386 +btr reg32,reg32 32 0F,B3 $1r,$2 nil 386 +btr mem,reg32 32 0F,B3 $1,$2 nil 386 +btr mem32x,reg32 32 0F,B3 $1,$2 nil 386 +btr reg16,imm8 16 0F,BA $1r,6 $2,8 386 +btr mem16x,imm8 16 0F,BA $1,6 $2,8 386 +btr reg32,imm8 32 0F,BA $1r,6 $2,8 386 +btr mem32x,imm8 32 0F,BA $1,6 $2,8 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -bts reg16,reg16 16 0F,AB $1r,$2 nil 386 -bts mem,reg16 16 0F,AB $1,$2 nil 386 -bts mem16x,reg16 16 0F,AB $1,$2 nil 386 +bts reg16,reg16 16 0F,AB $1r,$2 nil 386 +bts mem,reg16 16 0F,AB $1,$2 nil 386 +bts mem16x,reg16 16 0F,AB $1,$2 nil 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -bts reg32,reg32 32 0F,AB $1r,$2 nil 386 -bts mem,reg32 32 0F,AB $1,$2 nil 386 -bts mem32x,reg32 32 0F,AB $1,$2 nil 386 -bts reg16,imm8 16 0F,BA $1r,5 $2,8 386 -bts mem16x,imm8 16 0F,BA $1,5 $2,8 386 -bts reg32,imm8 32 0F,BA $1r,5 $2,8 386 -bts mem32x,imm8 32 0F,BA $1,5 $2,8 386 +bts reg32,reg32 32 0F,AB $1r,$2 nil 386 +bts mem,reg32 32 0F,AB $1,$2 nil 386 +bts mem32x,reg32 32 0F,AB $1,$2 nil 386 +bts reg16,imm8 16 0F,BA $1r,5 $2,8 386 +bts mem16x,imm8 16 0F,BA $1,5 $2,8 386 +bts reg32,imm8 32 0F,BA $1r,5 $2,8 386 +bts mem32x,imm8 32 0F,BA $1,5 $2,8 386 ; call -cbw nil 16 98 nil nil 8086 -cwde nil 32 98 nil nil 386 -clc nil nil F8 nil nil 8086 -cld nil nil FC nil nil 8086 -clflush mem8 nil 0F,AE $1,7 nil KATMAI -cli nil nil FA nil nil 8086 -clts nil nil 0F,06 nil nil 286,PRIV -cmc nil nil F5 nil nil 8086 +cbw nil 16 98 nil nil 8086 +cwde nil 32 98 nil nil 386 +clc nil nil F8 nil nil 8086 +cld nil nil FC nil nil 8086 +clflush mem8 nil 0F,AE $1,7 nil KATMAI +cli nil nil FA nil nil 8086 +clts nil nil 0F,06 nil nil 286,PRIV +cmc nil nil F5 nil nil 8086 ; cmov -cmp REG_AL,imm8 nil 3C nil $2,8 8086 -cmp REG_AX,imm16 16 3D nil $2,16 8086 -cmp REG_EAX,imm32 32 3D nil $2,32 386 -cmp reg8,imm nil 80 $1r,7 $2,8 8086 -cmp mem8x,imm nil 80 $1,7 $2,8 8086 -cmp reg8,imm8x nil 80 $1r,7 $2,8 8086 -cmp mem,imm8x nil 80 $1,7 $2,8 8086 -cmp reg16,imm 16 81 $1r,7 $2,16 8086 -cmp mem16x,imm 16 81 $1,7 $2,16 8086 -cmp reg16,imm16x 16 81 $1r,7 $2,16 8086 -cmp mem,imm16x 16 81 $1,7 $2,16 8086 -cmp reg32,imm 32 81 $1r,7 $2,32 386 -cmp mem32x,imm 32 81 $1,7 $2,32 386 -cmp reg32,imm32x 32 81 $1r,7 $2,32 386 -cmp mem,imm32x 32 81 $1,7 $2,32 386 -cmp reg16,imm8x 16 83 $1r,7 $2,8s 8086 -cmp mem16x,imm8x 16 83 $1,7 $2,8s 8086 -cmp reg32,imm8x 32 83 $1r,7 $2,8s 386 -cmp mem32x,imm8x 32 83 $1,7 $2,8s 386 +cmp REG_AL,imm8 nil 3C nil $2,8 8086 +cmp REG_AX,imm16 16 3D nil $2,16 8086 +cmp REG_EAX,imm32 32 3D nil $2,32 386 +cmp reg8,imm nil 80 $1r,7 $2,8 8086 +cmp mem8x,imm nil 80 $1,7 $2,8 8086 +cmp reg8,imm8x nil 80 $1r,7 $2,8 8086 +cmp mem,imm8x nil 80 $1,7 $2,8 8086 +cmp reg16,imm 16 81 $1r,7 $2,16 8086 +cmp mem16x,imm 16 81 $1,7 $2,16 8086 +cmp reg16,imm16x 16 81 $1r,7 $2,16 8086 +cmp mem,imm16x 16 81 $1,7 $2,16 8086 +cmp reg32,imm 32 81 $1r,7 $2,32 386 +cmp mem32x,imm 32 81 $1,7 $2,32 386 +cmp reg32,imm32x 32 81 $1r,7 $2,32 386 +cmp mem,imm32x 32 81 $1,7 $2,32 386 +cmp reg16,imm8x 16 83 $1r,7 $2,8s 8086 +cmp mem16x,imm8x 16 83 $1,7 $2,8s 8086 +cmp reg32,imm8x 32 83 $1r,7 $2,8s 386 +cmp mem32x,imm8x 32 83 $1,7 $2,8s 386 ; opcode arbitrarily picked for next 3 (could be 3A/3B instead of 38/39). -cmp reg8,reg8 nil 38 $1r,$2 nil 8086 -cmp reg16,reg16 16 39 $1r,$2 nil 8086 -cmp reg32,reg32 32 39 $1r,$2 nil 386 -cmp mem,reg8 nil 38 $1,$2 nil 8086 -cmp mem8x,reg8 nil 38 $1,$2 nil 8086 -cmp mem,reg16 16 39 $1,$2 nil 8086 -cmp mem16x,reg16 16 39 $1,$2 nil 8086 -cmp mem,reg32 32 39 $1,$2 nil 386 -cmp mem32x,reg32 32 39 $1,$2 nil 386 -cmp reg8,mem8 nil 3A $2,$1 nil 8086 -cmp reg16,mem16 16 3B $2,$1 nil 8086 -cmp reg32,mem32 32 3B $2,$1 nil 386 +cmp reg8,reg8 nil 38 $1r,$2 nil 8086 +cmp reg16,reg16 16 39 $1r,$2 nil 8086 +cmp reg32,reg32 32 39 $1r,$2 nil 386 +cmp mem,reg8 nil 38 $1,$2 nil 8086 +cmp mem8x,reg8 nil 38 $1,$2 nil 8086 +cmp mem,reg16 16 39 $1,$2 nil 8086 +cmp mem16x,reg16 16 39 $1,$2 nil 8086 +cmp mem,reg32 32 39 $1,$2 nil 386 +cmp mem32x,reg32 32 39 $1,$2 nil 386 +cmp reg8,mem8 nil 3A $2,$1 nil 8086 +cmp reg16,mem16 16 3B $2,$1 nil 8086 +cmp reg32,mem32 32 3B $2,$1 nil 386 cmppd XMMREG,rm128,imm8 nil 66,0F,C2 $2,$1 $3,8 P4,SSE2 -cmpps XMMREG,rm128,imm8 nil 0F,C2 $2,$1 $3,8 KATMAI,SSE -cmpsb nil nil A6 nil nil 8086 -cmpsw nil 16 A7 nil nil 8086 -cmpsd nil 32 A7 nil nil 386 +cmpps XMMREG,rm128,imm8 nil 0F,C2 $2,$1 $3,8 KATMAI,SSE +cmpsb nil nil A6 nil nil 8086 +cmpsw nil 16 A7 nil nil 8086 +cmpsd nil 32 A7 nil nil 386 cmpsd XMMREG,rm128,imm8 nil F2,0F,C2 $2,$1 $3,8 P4,SSE2 cmpss XMMREG,rm128,imm8 nil F3,0F,C2 $2,$1 $3,8 P4,SSE2 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -cmpxchg reg8,reg8 nil 0F,B0 $1r,$2 nil 486 -cmpxchg mem,reg8 nil 0F,B0 $1,$2 nil 486 -cmpxchg mem8x,reg8 nil 0F,B0 $1,$2 nil 486 +cmpxchg reg8,reg8 nil 0F,B0 $1r,$2 nil 486 +cmpxchg mem,reg8 nil 0F,B0 $1,$2 nil 486 +cmpxchg mem8x,reg8 nil 0F,B0 $1,$2 nil 486 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -cmpxchg reg16,reg16 16 0F,B1 $1r,$2 nil 486 -cmpxchg mem,reg16 16 0F,B1 $1,$2 nil 486 -cmpxchg mem16x,reg16 16 0F,B1 $1,$2 nil 486 +cmpxchg reg16,reg16 16 0F,B1 $1r,$2 nil 486 +cmpxchg mem,reg16 16 0F,B1 $1,$2 nil 486 +cmpxchg mem16x,reg16 16 0F,B1 $1,$2 nil 486 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -cmpxchg reg32,reg32 32 0F,B1 $1r,$2 nil 486 -cmpxchg mem,reg32 32 0F,B1 $1,$2 nil 486 -cmpxchg mem32x,reg32 32 0F,B1 $1,$2 nil 486 -cmpxchg8b mem64 nil 0F,C7 $1,1 nil P5 +cmpxchg reg32,reg32 32 0F,B1 $1r,$2 nil 486 +cmpxchg mem,reg32 32 0F,B1 $1,$2 nil 486 +cmpxchg mem32x,reg32 32 0F,B1 $1,$2 nil 486 +cmpxchg8b mem64 nil 0F,C7 $1,1 nil P5 comisd XMMREG,rm128 nil 66,0F,2F $2,$1 nil P4,SSE2 -comiss XMMREG,rm128 nil 0F,2F $2,$1 nil KATMAI,SSE -cpuid nil nil 0F,A2 nil nil P5 +comiss XMMREG,rm128 nil 0F,2F $2,$1 nil KATMAI,SSE +cpuid nil nil 0F,A2 nil nil P5 cvtdq2pd XMMREG,rm128 nil F3,0F,E6 $2,$1 nil P4,SSE2 -cvtdq2ps XMMREG,rm128 nil 0F,5B $2,$1 nil P4,SSE2 +cvtdq2ps XMMREG,rm128 nil 0F,5B $2,$1 nil P4,SSE2 cvtpd2dq XMMREG,rm128 nil F2,0F,E6 $2,$1 nil P4,SSE2 cvtpd2pi XMMREG,rm128 nil 66,0F,2D $2,$1 nil P4,SSE2 cvtpd2ps XMMREG,rm128 nil 66,0F,5A $2,$1 nil P4,SSE2 cvtpi2pd XMMREG,rm128 nil 66,0F,2A $2,$1 nil P4,SSE2 -cvtpi2ps XMMREG,rm128 nil 0F,2A $2,$1 nil P4,SSE2 +cvtpi2ps XMMREG,rm128 nil 0F,2A $2,$1 nil P4,SSE2 cvtps2dq XMMREG,rm128 nil 66,0F,5B $2,$1 nil P4,SSE2 -cvtps2pd XMMREG,rm128 nil 0F,5A $2,$1 nil P4,SSE2 -cvtps2pi XMMREG,rm128 nil 0F,2D $2,$1 nil P4,SSE2 +cvtps2pd XMMREG,rm128 nil 0F,5A $2,$1 nil P4,SSE2 +cvtps2pi XMMREG,rm128 nil 0F,2D $2,$1 nil P4,SSE2 cvtsd2si XMMREG,rm128 nil F2,0F,2D $2,$1 nil P4,SSE2 cvtsd2ss XMMREG,rm128 nil F2,0F,5A $2,$1 nil P4,SSE2 cvtsi2sd XMMREG,rm128 nil F2,0F,2A $2,$1 nil P4,SSE2 @@ -309,55 +309,55 @@ cvtss2si XMMREG,rm128 nil F3,0F,2D $2,$1 nil P4,SSE2 cvttpd2pi XMMREG,rm128 nil 66,0F,2C $2,$1 nil P4,SSE2 cvttpd2dq XMMREG,rm128 nil 66,0F,E6 $2,$1 nil P4,SSE2 cvttps2dq XMMREG,rm128 nil F3,0F,5B $2,$1 nil P4,SSE2 -cvttps2pi XMMREG,rm128 nil 0F,2C $2,$1 nil P4,SSE2 +cvttps2pi XMMREG,rm128 nil 0F,2C $2,$1 nil P4,SSE2 cvttsd2si XMMREG,rm128 nil F2,0F,2C $2,$1 nil P4,SSE2 cvttss2si XMMREG,rm128 nil F3,0F,2C $2,$1 nil P4,SSE2 -cwd nil 16 99 nil nil 8086 -cdq nil 32 99 nil nil 386 -daa nil nil 27 nil nil 8086 -das nil nil 2F nil nil 8086 -dec rm8x nil FE $1,1 nil 8086 -dec mem16x 16 FF $1,1 nil 8086 -dec mem32x 32 FF $1,1 nil 386 -dec reg16 16 48+$1 nil nil 8086 -dec reg32 32 48+$1 nil nil 386 -div rm8x nil F6 $1,6 nil 8086 -div rm16x 16 F7 $1,6 nil 8086 -div rm32x 32 F7 $1,6 nil 386 +cwd nil 16 99 nil nil 8086 +cdq nil 32 99 nil nil 386 +daa nil nil 27 nil nil 8086 +das nil nil 2F nil nil 8086 +dec rm8x nil FE $1,1 nil 8086 +dec mem16x 16 FF $1,1 nil 8086 +dec mem32x 32 FF $1,1 nil 386 +dec reg16 16 48+$1 nil nil 8086 +dec reg32 32 48+$1 nil nil 386 +div rm8x nil F6 $1,6 nil 8086 +div rm16x 16 F7 $1,6 nil 8086 +div rm32x 32 F7 $1,6 nil 386 divpd XMMREG,rm128 nil 66,0F,5E $2,$1 nil P4,SSE2 -divps XMMREG,rm128 nil 0F,5E $2,$1 nil KATMAI,SSE +divps XMMREG,rm128 nil 0F,5E $2,$1 nil KATMAI,SSE divsd XMMREG,rm128 nil F2,0F,5E $2,$1 nil P4,SSE2 divss XMMREG,rm128 nil F3,0F,5E $2,$1 nil P4,SSE2 -emms nil nil 0F,77 nil nil P5,MMX -enter imm16,imm8 nil C8 $1i,16 $2,8 186 -f2xm1 nil nil D9,F0 nil nil 8086,FPU -fabs nil nil D9,E1 nil nil 8086,FPU -fadd mem32x nil D8 $1,0 nil 8086,FPU -fadd mem64x nil DC $1,0 nil 8086,FPU +emms nil nil 0F,77 nil nil P5,MMX +enter imm16,imm8 nil C8 $1i,16 $2,8 186 +f2xm1 nil nil D9,F0 nil nil 8086,FPU +fabs nil nil D9,E1 nil nil 8086,FPU +fadd mem32x nil D8 $1,0 nil 8086,FPU +fadd mem64x nil DC $1,0 nil 8086,FPU fadd fpureg nil D8,C0+$1 nil nil 8086,FPU -fadd ST0,ST0 nil D8,C0 nil nil 8086,FPU +fadd ST0,ST0 nil D8,C0 nil nil 8086,FPU fadd ST0,FPUREG_NOTST0 nil D8,C0+$2 nil nil 8086,FPU fadd TO fpureg nil DC,C0+$1 nil nil 8086,FPU fadd FPUREG_NOTST0,ST0 nil DC,C0+$1 nil nil 8086,FPU faddp fpureg nil DE,C0+$1 nil nil 8086,FPU faddp fpureg,ST0 nil DE,C0+$1 nil nil 8086,FPU -fiadd mem32x nil DA $1,0 nil 8086,FPU -fiadd mem16x nil DE $1,0 nil 8086,FPU -fbld mem80 nil DF $1,4 nil 8086,FPU -fbstp mem80 nil DF $1,6 nil 8086,FPU -fchs nil nil D9,E0 nil nil 8086,FPU +fiadd mem32x nil DA $1,0 nil 8086,FPU +fiadd mem16x nil DE $1,0 nil 8086,FPU +fbld mem80 nil DF $1,4 nil 8086,FPU +fbstp mem80 nil DF $1,6 nil 8086,FPU +fchs nil nil D9,E0 nil nil 8086,FPU fclex nil nil 9B,DB,E2 nil nil 8086,FPU -fnclex nil nil DB,E2 nil nil 8086,FPU +fnclex nil nil DB,E2 nil nil 8086,FPU ; fcmov -fcom mem32x nil D8 $1,2 nil 8086,FPU -fcom mem64x nil DC $1,2 nil 8086,FPU +fcom mem32x nil D8 $1,2 nil 8086,FPU +fcom mem64x nil DC $1,2 nil 8086,FPU fcom fpureg nil D8,D0+$1 nil nil 8086,FPU fcom ST0,fpureg nil D8,D0+$2 nil nil 8086,FPU -fcomp mem32x nil D8 $1,3 nil 8086,FPU -fcomp mem64x nil DC $1,3 nil 8086,FPU +fcomp mem32x nil D8 $1,3 nil 8086,FPU +fcomp mem64x nil DC $1,3 nil 8086,FPU fcomp fpureg nil D8,D8+$1 nil nil 8086,FPU fcomp ST0,fpureg nil D8,D8+$2 nil nil 8086,FPU -fcompp nil nil DE,D9 nil nil 8086,FPU +fcompp nil nil DE,D9 nil nil 8086,FPU fcomi fpureg nil DB,F0+$1 nil nil 8086,FPU fcomi ST0,fpureg nil DB,F0+$2 nil nil 8086,FPU fcomip fpureg nil DF,F0+$1 nil nil 8086,FPU @@ -366,275 +366,275 @@ fucomi fpureg nil DB,E8+$1 nil nil 8086,FPU fucomi ST0,fpureg nil DB,E8+$2 nil nil 8086,FPU fucomip fpureg nil DF,E8+$1 nil nil 8086,FPU fucomip ST0,fpureg nil DF,E8+$2 nil nil 8086,FPU -fcos nil nil D9,FF nil nil 8086,FPU -fdecstp nil nil D9,F6 nil nil 8086,FPU -fdiv mem32x nil D8 $1,6 nil 8086,FPU -fdiv mem64x nil DC $1,6 nil 8086,FPU +fcos nil nil D9,FF nil nil 8086,FPU +fdecstp nil nil D9,F6 nil nil 8086,FPU +fdiv mem32x nil D8 $1,6 nil 8086,FPU +fdiv mem64x nil DC $1,6 nil 8086,FPU fdiv fpureg nil D8,F0+$1 nil nil 8086,FPU -fdiv ST0,ST0 nil D8,F0 nil nil 8086,FPU +fdiv ST0,ST0 nil D8,F0 nil nil 8086,FPU fdiv ST0,FPUREG_NOTST0 nil D8,F0+$2 nil nil 8086,FPU fdiv TO fpureg nil DC,F8+$1 nil nil 8086,FPU fdiv FPUREG_NOTST0,ST0 nil DC,F8+$1 nil nil 8086,FPU fdivp fpureg nil DE,F8+$1 nil nil 8086,FPU fdivp fpureg,ST0 nil DE,F8+$1 nil nil 8086,FPU -fidiv mem32x nil DA $1,6 nil 8086,FPU -fidiv mem16x nil DE $1,6 nil 8086,FPU -fdivr mem32x nil D8 $1,7 nil 8086,FPU -fdivr mem64x nil DC $1,7 nil 8086,FPU +fidiv mem32x nil DA $1,6 nil 8086,FPU +fidiv mem16x nil DE $1,6 nil 8086,FPU +fdivr mem32x nil D8 $1,7 nil 8086,FPU +fdivr mem64x nil DC $1,7 nil 8086,FPU fdivr fpureg nil D8,F8+$1 nil nil 8086,FPU -fdivr ST0,ST0 nil D8,F8 nil nil 8086,FPU +fdivr ST0,ST0 nil D8,F8 nil nil 8086,FPU fdivr ST0,FPUREG_NOTST0 nil D8,F8+$2 nil nil 8086,FPU fdivr TO fpureg nil DC,F0+$1 nil nil 8086,FPU fdivr FPUREG_NOTST0,ST0 nil DC,F0+$1 nil nil 8086,FPU fdivrp fpureg nil DE,F0+$1 nil nil 8086,FPU fdivrp fpureg,ST0 nil DE,F0+$1 nil nil 8086,FPU -fidivr mem32x nil DA $1,7 nil 8086,FPU -fidivr mem16x nil DE $1,7 nil 8086,FPU +fidivr mem32x nil DA $1,7 nil 8086,FPU +fidivr mem16x nil DE $1,7 nil 8086,FPU ffree fpureg nil DD,C0+$1 nil nil 8086,FPU -ficom mem16x nil DE $1,2 nil 8086,FPU -ficom mem32x nil DA $1,2 nil 8086,FPU -ficomp mem16x nil DE $1,3 nil 8086,FPU -ficomp mem32x nil DA $1,3 nil 8086,FPU -fild mem16x nil DF $1,0 nil 8086,FPU -fild mem32x nil DB $1,0 nil 8086,FPU -fild mem64x nil DF $1,5 nil 8086,FPU -fincstp nil nil D9,F7 nil nil 8086,FPU +ficom mem16x nil DE $1,2 nil 8086,FPU +ficom mem32x nil DA $1,2 nil 8086,FPU +ficomp mem16x nil DE $1,3 nil 8086,FPU +ficomp mem32x nil DA $1,3 nil 8086,FPU +fild mem16x nil DF $1,0 nil 8086,FPU +fild mem32x nil DB $1,0 nil 8086,FPU +fild mem64x nil DF $1,5 nil 8086,FPU +fincstp nil nil D9,F7 nil nil 8086,FPU finit nil nil 9B,DB,E3 nil nil 8086,FPU -fninit nil nil DB,E3 nil nil 8086,FPU -fist mem16x nil DF $1,2 nil 8086,FPU -fist mem32x nil DB $1,2 nil 8086,FPU -fistp mem16x nil DF $1,3 nil 8086,FPU -fistp mem32x nil DB $1,3 nil 8086,FPU -fistp mem64x nil DF $1,7 nil 8086,FPU -fld mem32x nil D9 $1,0 nil 8086,FPU -fld mem64x nil DD $1,0 nil 8086,FPU -fld mem80x nil DB $1,5 nil 8086,FPU +fninit nil nil DB,E3 nil nil 8086,FPU +fist mem16x nil DF $1,2 nil 8086,FPU +fist mem32x nil DB $1,2 nil 8086,FPU +fistp mem16x nil DF $1,3 nil 8086,FPU +fistp mem32x nil DB $1,3 nil 8086,FPU +fistp mem64x nil DF $1,7 nil 8086,FPU +fld mem32x nil D9 $1,0 nil 8086,FPU +fld mem64x nil DD $1,0 nil 8086,FPU +fld mem80x nil DB $1,5 nil 8086,FPU fld fpureg nil D9,C0+$1 nil nil 8086,FPU -fld1 nil nil D9,E8 nil nil 8086,FPU -fldl2t nil nil D9,E9 nil nil 8086,FPU -fldl2e nil nil D9,EA nil nil 8086,FPU -fldpi nil nil D9,EB nil nil 8086,FPU -fldlg2 nil nil D9,EC nil nil 8086,FPU -fldln2 nil nil D9,ED nil nil 8086,FPU -fldz nil nil D9,EE nil nil 8086,FPU -fldcw mem16 nil D9 $1,5 nil 8086,FPU -fldenv mem nil D9 $1,4 nil 8086,FPU -fmul mem32x nil D8 $1,1 nil 8086,FPU -fmul mem64x nil DC $1,1 nil 8086,FPU +fld1 nil nil D9,E8 nil nil 8086,FPU +fldl2t nil nil D9,E9 nil nil 8086,FPU +fldl2e nil nil D9,EA nil nil 8086,FPU +fldpi nil nil D9,EB nil nil 8086,FPU +fldlg2 nil nil D9,EC nil nil 8086,FPU +fldln2 nil nil D9,ED nil nil 8086,FPU +fldz nil nil D9,EE nil nil 8086,FPU +fldcw mem16 nil D9 $1,5 nil 8086,FPU +fldenv mem nil D9 $1,4 nil 8086,FPU +fmul mem32x nil D8 $1,1 nil 8086,FPU +fmul mem64x nil DC $1,1 nil 8086,FPU fmul fpureg nil D8,C8+$1 nil nil 8086,FPU -fmul ST0,ST0 nil D8,C8 nil nil 8086,FPU +fmul ST0,ST0 nil D8,C8 nil nil 8086,FPU fmul ST0,FPUREG_NOTST0 nil D8,C8+$2 nil nil 8086,FPU fmul TO fpureg nil DC,C8+$1 nil nil 8086,FPU fmul FPUREG_NOTST0,ST0 nil DC,C8+$1 nil nil 8086,FPU fmulp fpureg nil DE,C8+$1 nil nil 8086,FPU fmulp fpureg,ST0 nil DE,C8+$1 nil nil 8086,FPU -fimul mem32x nil DA $1,1 nil 8086,FPU -fimul mem16x nil DE $1,1 nil 8086,FPU -fnop nil nil D9,D0 nil nil 8086,FPU -fpatan nil nil D9,F3 nil nil 8086,FPU -fprem nil nil D9,F8 nil nil 8086,FPU -fprem1 nil nil D9,F5 nil nil 8086,FPU -fptan nil nil D9,F2 nil nil 8086,FPU -frndint nil nil D9,FC nil nil 8086,FPU -frstor mem nil DD $1,4 nil 8086,FPU -fsave mem nil 9B,DD $1,6 nil 8086,FPU -fnsave mem nil DD $1,6 nil 8086,FPU -fscale nil nil D9,FD nil nil 8086,FPU -fsin nil nil D9,FE nil nil 8086,FPU -fsincos nil nil D9,FB nil nil 8086,FPU -fsqrt nil nil D9,FA nil nil 8086,FPU -fst mem32x nil D9 $1,2 nil 8086,FPU -fst mem64x nil DD $1,2 nil 8086,FPU +fimul mem32x nil DA $1,1 nil 8086,FPU +fimul mem16x nil DE $1,1 nil 8086,FPU +fnop nil nil D9,D0 nil nil 8086,FPU +fpatan nil nil D9,F3 nil nil 8086,FPU +fprem nil nil D9,F8 nil nil 8086,FPU +fprem1 nil nil D9,F5 nil nil 8086,FPU +fptan nil nil D9,F2 nil nil 8086,FPU +frndint nil nil D9,FC nil nil 8086,FPU +frstor mem nil DD $1,4 nil 8086,FPU +fsave mem nil 9B,DD $1,6 nil 8086,FPU +fnsave mem nil DD $1,6 nil 8086,FPU +fscale nil nil D9,FD nil nil 8086,FPU +fsin nil nil D9,FE nil nil 8086,FPU +fsincos nil nil D9,FB nil nil 8086,FPU +fsqrt nil nil D9,FA nil nil 8086,FPU +fst mem32x nil D9 $1,2 nil 8086,FPU +fst mem64x nil DD $1,2 nil 8086,FPU fst fpureg nil DD,D0+$1 nil nil 8086,FPU -fstp mem32x nil D9 $1,3 nil 8086,FPU -fstp mem64x nil DD $1,3 nil 8086,FPU -fstp mem80x nil DB $1,7 nil 8086,FPU +fstp mem32x nil D9 $1,3 nil 8086,FPU +fstp mem64x nil DD $1,3 nil 8086,FPU +fstp mem80x nil DB $1,7 nil 8086,FPU fstp fpureg nil DD,D8+$1 nil nil 8086,FPU -fstcw mem16 nil 9B,D9 $1,7 nil 8086,FPU -fnstcw mem16 nil D9 $1,7 nil 8086,FPU -fstenv mem nil 9B,D9 $1,6 nil 8086,FPU -fnstenv mem nil D9 $1,6 nil 8086,FPU -fstsw mem16 nil 9B,DD $1,7 nil 8086,FPU +fstcw mem16 nil 9B,D9 $1,7 nil 8086,FPU +fnstcw mem16 nil D9 $1,7 nil 8086,FPU +fstenv mem nil 9B,D9 $1,6 nil 8086,FPU +fnstenv mem nil D9 $1,6 nil 8086,FPU +fstsw mem16 nil 9B,DD $1,7 nil 8086,FPU fstsw REG_AX nil 9B,DF,E0 nil nil 8086,FPU -fnstsw mem16 nil DD $1,7 nil 8086,FPU -fnstsw REG_AX nil DF,E0 nil nil 8086,FPU -fsub mem32x nil D8 $1,4 nil 8086,FPU -fsub mem64x nil DC $1,4 nil 8086,FPU +fnstsw mem16 nil DD $1,7 nil 8086,FPU +fnstsw REG_AX nil DF,E0 nil nil 8086,FPU +fsub mem32x nil D8 $1,4 nil 8086,FPU +fsub mem64x nil DC $1,4 nil 8086,FPU fsub fpureg nil D8,E0+$1 nil nil 8086,FPU -fsub ST0,ST0 nil D8,E0 nil nil 8086,FPU +fsub ST0,ST0 nil D8,E0 nil nil 8086,FPU fsub ST0,FPUREG_NOTST0 nil D8,E0+$2 nil nil 8086,FPU fsub TO fpureg nil DC,E8+$1 nil nil 8086,FPU fsub FPUREG_NOTST0,ST0 nil DC,E8+$1 nil nil 8086,FPU fsubp fpureg nil DE,E8+$1 nil nil 8086,FPU fsubp fpureg,ST0 nil DE,E8+$1 nil nil 8086,FPU -fisub mem32x nil DA $1,4 nil 8086,FPU -fisub mem16x nil DE $1,4 nil 8086,FPU -fsubr mem32x nil D8 $1,5 nil 8086,FPU -fsubr mem64x nil DC $1,5 nil 8086,FPU +fisub mem32x nil DA $1,4 nil 8086,FPU +fisub mem16x nil DE $1,4 nil 8086,FPU +fsubr mem32x nil D8 $1,5 nil 8086,FPU +fsubr mem64x nil DC $1,5 nil 8086,FPU fsubr fpureg nil D8,E8+$1 nil nil 8086,FPU -fsubr ST0,ST0 nil D8,E8 nil nil 8086,FPU +fsubr ST0,ST0 nil D8,E8 nil nil 8086,FPU fsubr ST0,FPUREG_NOTST0 nil D8,E8+$2 nil nil 8086,FPU fsubr TO fpureg nil DC,E0+$1 nil nil 8086,FPU fsubr FPUREG_NOTST0,ST0 nil DC,E0+$1 nil nil 8086,FPU fsubrp fpureg nil DE,E0+$1 nil nil 8086,FPU fsubrp fpureg,ST0 nil DE,E0+$1 nil nil 8086,FPU -fisubr mem32x nil DA $1,5 nil 8086,FPU -fisubr mem16x nil DE $1,5 nil 8086,FPU -ftst nil nil D9,E4 nil nil 8086,FPU +fisubr mem32x nil DA $1,5 nil 8086,FPU +fisubr mem16x nil DE $1,5 nil 8086,FPU +ftst nil nil D9,E4 nil nil 8086,FPU fucom fpureg nil DD,E0+$1 nil nil 8086,FPU fucom ST0,fpureg nil DD,E0+$2 nil nil 8086,FPU fucomp fpureg nil DD,E8+$1 nil nil 8086,FPU fucomp ST0,fpureg nil DD,E8+$2 nil nil 8086,FPU -fucompp nil nil DA,E9 nil nil 8086,FPU -fxam nil nil D9,E5 nil nil 8086,FPU +fucompp nil nil DA,E9 nil nil 8086,FPU +fxam nil nil D9,E5 nil nil 8086,FPU fxch fpureg nil D9,C8+$1 nil nil 8086,FPU -fxch ST0,ST0 nil D9,C8 nil nil 8086,FPU +fxch ST0,ST0 nil D9,C8 nil nil 8086,FPU fxch ST0,FPUREG_NOTST0 nil D9,C8+$2 nil nil 8086,FPU fxch FPUREG_NOTST0,ST0 nil D9,C8+$1 nil nil 8086,FPU -fxch nil nil D9,C9 nil nil 8086,FPU -fxrstor mem nil 0F,AE $1,1 nil P6,SSE,FPU -fxsave mem nil 0F,AE $1,0 nil P6,SSE,FPU -fxtract nil nil D9,F4 nil nil 8086,FPU -fyl2x nil nil D9,F1 nil nil 8086,FPU -fyl2xp1 nil nil D9,F9 nil nil 8086,FPU -hlt nil nil F4 nil nil 8086,PRIV -idiv rm8x nil F6 $1,7 nil 8086 -idiv rm16x 16 F7 $1,7 nil 8086 -idiv rm32x 32 F7 $1,7 nil 386 -imul rm8x nil F6 $1,5 nil 8086 -imul rm16x 16 F7 $1,5 nil 8086 -imul rm32x 32 F7 $1,5 nil 386 -imul reg16,rm16 16 0F,AF $2,$1 nil 386 -imul reg32,rm32 32 0F,AF $2,$1 nil 386 -imul reg16,rm16,imm8x 16 6B $2,$1 $3,8s 186 -imul reg32,rm32,imm8x 32 6B $2,$1 $3,8s 386 -imul reg16,imm8x 16 6B $1r,$1 $2,8s 186 -imul reg32,imm8x 32 6B $1r,$1 $2,8s 386 -imul reg16,rm16,imm16 16 69 $2,$1 $3,16s 186 -imul reg32,rm32,imm32 32 69 $2,$1 $3,32s 386 -imul reg16,imm16 16 69 $1r,$1 $2,16s 186 -imul reg32,imm32 32 69 $1r,$1 $2,32s 386 -in REG_AL,imm8 nil E4 nil $2,8 8086 -in REG_AX,imm8 16 E5 nil $2,8 8086 -in REG_EAX,imm8 32 E5 nil $2,8 386 -in REG_AL,REG_DX nil EC nil nil 8086 -in REG_AX,REG_DX 16 ED nil nil 8086 -in REG_EAX,REG_DX 32 ED nil nil 386 -inc rm8x nil FE $1,0 nil 8086 -inc mem16x 16 FF $1,0 nil 8086 -inc mem32x 32 FF $1,0 nil 386 -inc reg16 16 40+$1 nil nil 8086 -inc reg32 32 40+$1 nil nil 386 -insb nil nil 6C nil nil 8086 -insw nil 16 6D nil nil 8086 -insd nil 32 6D nil nil 386 -int3 nil nil CC nil nil 8086 -int03 nil nil CC nil nil 8086 -int imm8 nil CD nil $1,8 8086 -into nil nil CE nil nil 8086 -invd nil nil 0F,08 nil nil 486,PRIV -invlpg mem nil 0F,01 $1,7 nil 486,PRIV -iret nil nil CF nil nil 8086 -iretd nil 32 CF nil nil 386 -iretw nil 16 CF nil nil 8086 +fxch nil nil D9,C9 nil nil 8086,FPU +fxrstor mem nil 0F,AE $1,1 nil P6,SSE,FPU +fxsave mem nil 0F,AE $1,0 nil P6,SSE,FPU +fxtract nil nil D9,F4 nil nil 8086,FPU +fyl2x nil nil D9,F1 nil nil 8086,FPU +fyl2xp1 nil nil D9,F9 nil nil 8086,FPU +hlt nil nil F4 nil nil 8086,PRIV +idiv rm8x nil F6 $1,7 nil 8086 +idiv rm16x 16 F7 $1,7 nil 8086 +idiv rm32x 32 F7 $1,7 nil 386 +imul rm8x nil F6 $1,5 nil 8086 +imul rm16x 16 F7 $1,5 nil 8086 +imul rm32x 32 F7 $1,5 nil 386 +imul reg16,rm16 16 0F,AF $2,$1 nil 386 +imul reg32,rm32 32 0F,AF $2,$1 nil 386 +imul reg16,rm16,imm8x 16 6B $2,$1 $3,8s 186 +imul reg32,rm32,imm8x 32 6B $2,$1 $3,8s 386 +imul reg16,imm8x 16 6B $1r,$1 $2,8s 186 +imul reg32,imm8x 32 6B $1r,$1 $2,8s 386 +imul reg16,rm16,imm16 16 69 $2,$1 $3,16s 186 +imul reg32,rm32,imm32 32 69 $2,$1 $3,32s 386 +imul reg16,imm16 16 69 $1r,$1 $2,16s 186 +imul reg32,imm32 32 69 $1r,$1 $2,32s 386 +in REG_AL,imm8 nil E4 nil $2,8 8086 +in REG_AX,imm8 16 E5 nil $2,8 8086 +in REG_EAX,imm8 32 E5 nil $2,8 386 +in REG_AL,REG_DX nil EC nil nil 8086 +in REG_AX,REG_DX 16 ED nil nil 8086 +in REG_EAX,REG_DX 32 ED nil nil 386 +inc rm8x nil FE $1,0 nil 8086 +inc mem16x 16 FF $1,0 nil 8086 +inc mem32x 32 FF $1,0 nil 386 +inc reg16 16 40+$1 nil nil 8086 +inc reg32 32 40+$1 nil nil 386 +insb nil nil 6C nil nil 8086 +insw nil 16 6D nil nil 8086 +insd nil 32 6D nil nil 386 +int3 nil nil CC nil nil 8086 +int03 nil nil CC nil nil 8086 +int imm8 nil CD nil $1,8 8086 +into nil nil CE nil nil 8086 +invd nil nil 0F,08 nil nil 486,PRIV +invlpg mem nil 0F,01 $1,7 nil 486,PRIV +iret nil nil CF nil nil 8086 +iretd nil 32 CF nil nil 386 +iretw nil 16 CF nil nil 8086 ; jcc ; jmp -lahf nil nil 9F nil nil 8086 -lar reg16,rm16 16 0F,02 $2,$1 nil 286,PROT -lar reg32,rm32 32 0F,02 $2,$1 nil 386,PROT -ldmxcsr mem32 nil 0F,AE $1,2 nil KATMAI,SSE -lds reg16,mem 16 C5 $2,$1 nil 8086 -lds reg32,mem 32 C5 $2,$1 nil 386 -lss reg16,mem 16 0F,B2 $2,$1 nil 386 -lss reg32,mem 32 0F,B2 $2,$1 nil 386 -les reg16,mem 16 C4 $2,$1 nil 8086 -les reg32,mem 32 C4 $2,$1 nil 386 -lfs reg16,mem 16 0F,B4 $2,$1 nil 386 -lfs reg32,mem 32 0F,B4 $2,$1 nil 386 -lgs reg16,mem 16 0F,B5 $2,$1 nil 386 -lgs reg32,mem 32 0F,B5 $2,$1 nil 386 -lea reg16,mem16 16 8D $2,$1 nil 8086 -lea reg32,mem32 32 8D $2,$1 nil 386 -leave nil nil C9 nil nil 186 +lahf nil nil 9F nil nil 8086 +lar reg16,rm16 16 0F,02 $2,$1 nil 286,PROT +lar reg32,rm32 32 0F,02 $2,$1 nil 386,PROT +ldmxcsr mem32 nil 0F,AE $1,2 nil KATMAI,SSE +lds reg16,mem 16 C5 $2,$1 nil 8086 +lds reg32,mem 32 C5 $2,$1 nil 386 +lss reg16,mem 16 0F,B2 $2,$1 nil 386 +lss reg32,mem 32 0F,B2 $2,$1 nil 386 +les reg16,mem 16 C4 $2,$1 nil 8086 +les reg32,mem 32 C4 $2,$1 nil 386 +lfs reg16,mem 16 0F,B4 $2,$1 nil 386 +lfs reg32,mem 32 0F,B4 $2,$1 nil 386 +lgs reg16,mem 16 0F,B5 $2,$1 nil 386 +lgs reg32,mem 32 0F,B5 $2,$1 nil 386 +lea reg16,mem16 16 8D $2,$1 nil 8086 +lea reg32,mem32 32 8D $2,$1 nil 386 +leave nil nil C9 nil nil 186 ; lfence -lgdt mem nil 0F,01 $1,2 nil 286,PRIV -lidt mem nil 0F,01 $1,3 nil 286,PRIV -lldt rm16 nil 0F,00 $1,2 nil 286,PROT,PRIV -lmsw rm16 nil 0F,01 $1,6 nil 286,PRIV -lodsb nil nil AC nil nil 8086 -lodsw nil 16 AD nil nil 8086 -lodsd nil 32 AD nil nil 386 +lgdt mem nil 0F,01 $1,2 nil 286,PRIV +lidt mem nil 0F,01 $1,3 nil 286,PRIV +lldt rm16 nil 0F,00 $1,2 nil 286,PROT,PRIV +lmsw rm16 nil 0F,01 $1,6 nil 286,PRIV +lodsb nil nil AC nil nil 8086 +lodsw nil 16 AD nil nil 8086 +lodsd nil 32 AD nil nil 386 ; loop ; loopcc: ;:loope loopz -;loopz imm1632 nil E1 nil $1r,8s 8086 -;loopz imm1632,REG_CX 16 E1 nil $1r,8s 8086 -;loopz imm1632,REG_ECX 32 E1 nil $1r,8s 386 +;loopz imm1632 nil E1 nil $1r,8s 8086 +;loopz imm1632,REG_CX 16 E1 nil $1r,8s 8086 +;loopz imm1632,REG_ECX 32 E1 nil $1r,8s 386 ;:loopne loopnz -;loopnz imm1632 nil E1 nil $1r,8s 8086 -;loopnz imm1632,REG_CX 16 E1 nil $1r,8s 8086 -;loopnz imm1632,REG_ECX 32 E1 nil $1r,8s 386 -lsl reg16,rm16 16 0F,03 $2,$1 nil 286,PROT -lsl reg32,rm32 32 0F,03 $2,$1 nil 286,PROT -ltr rm16 nil 0F,00 $1,3 nil 286,PROT,PRIV +;loopnz imm1632 nil E1 nil $1r,8s 8086 +;loopnz imm1632,REG_CX 16 E1 nil $1r,8s 8086 +;loopnz imm1632,REG_ECX 32 E1 nil $1r,8s 386 +lsl reg16,rm16 16 0F,03 $2,$1 nil 286,PROT +lsl reg32,rm32 32 0F,03 $2,$1 nil 286,PROT +ltr rm16 nil 0F,00 $1,3 nil 286,PROT,PRIV maskmovdqu XMMREG,XMMREG nil 66,0F,F7 $2r,$1 nil P4,SSE2 -maskmovq MMXREG,MMXREG nil 0F,F7 $2r,$1 nil KATMAI,MMX +maskmovq MMXREG,MMXREG nil 0F,F7 $2r,$1 nil KATMAI,MMX maxpd XMMREG,rm128 nil 66,0F,5F $2,$1 nil P4,SSE2 -maxps XMMREG,rm128 nil 0F,5F $2,$1 nil KATMAI,SSE +maxps XMMREG,rm128 nil 0F,5F $2,$1 nil KATMAI,SSE maxsd XMMREG,rm128 nil F2,0F,5F $2,$1 nil P4,SSE2 maxss XMMREG,rm128 nil F3,0F,5F $2,$1 nil P4,SSE2 ; opcode arbitrarily picked for next 3 (could be 8A/8B instead of 88/89). -mov reg8,reg8 nil 88 $1r,$2 nil 8086 -mov reg16,reg16 16 89 $1r,$2 nil 8086 -mov reg32,reg32 32 89 $1r,$2 nil 386 -mov mem,reg8 nil 88 $1,$2 nil 8086 -mov mem8x,reg8 nil 88 $1,$2 nil 8086 -mov mem,reg16 16 89 $1,$2 nil 8086 -mov mem16x,reg16 16 89 $1,$2 nil 8086 -mov mem,reg32 32 89 $1,$2 nil 386 -mov mem32x,reg32 32 89 $1,$2 nil 386 -mov reg8,mem8 nil 8A $2,$1 nil 8086 -mov reg16,mem16 16 8B $2,$1 nil 8086 -mov reg32,mem32 32 8B $2,$1 nil 386 -mov mem,segreg nil 8C $1,$2 nil 8086 -mov reg16,segreg 16 8C $1r,$2 nil 8086 -mov mem16x,segreg 16 8C $1,$2 nil 8086 -mov reg32,segreg 32 8C $1r,$2 nil 386 -mov mem32x,segreg 32 8C $1,$2 nil 386 -mov segreg,mem nil 8E $2,$1 nil 8086 -mov segreg,rm16x nil 8E $2,$1 nil 8086 -mov segreg,rm32x nil 8E $2,$1 nil 386 +mov reg8,reg8 nil 88 $1r,$2 nil 8086 +mov reg16,reg16 16 89 $1r,$2 nil 8086 +mov reg32,reg32 32 89 $1r,$2 nil 386 +mov mem,reg8 nil 88 $1,$2 nil 8086 +mov mem8x,reg8 nil 88 $1,$2 nil 8086 +mov mem,reg16 16 89 $1,$2 nil 8086 +mov mem16x,reg16 16 89 $1,$2 nil 8086 +mov mem,reg32 32 89 $1,$2 nil 386 +mov mem32x,reg32 32 89 $1,$2 nil 386 +mov reg8,mem8 nil 8A $2,$1 nil 8086 +mov reg16,mem16 16 8B $2,$1 nil 8086 +mov reg32,mem32 32 8B $2,$1 nil 386 +mov mem,segreg nil 8C $1,$2 nil 8086 +mov reg16,segreg 16 8C $1r,$2 nil 8086 +mov mem16x,segreg 16 8C $1,$2 nil 8086 +mov reg32,segreg 32 8C $1r,$2 nil 386 +mov mem32x,segreg 32 8C $1,$2 nil 386 +mov segreg,mem nil 8E $2,$1 nil 8086 +mov segreg,rm16x nil 8E $2,$1 nil 8086 +mov segreg,rm32x nil 8E $2,$1 nil 386 ;mov REG_AL,memoff8 ;mov REG_AX,memoff16 ;mov REG_EAX,memoff32 ;mov memoff8,REG_AL ;mov memoff16,REG_AX ;mov memoff32,REG_EAX -mov reg8,imm8 nil B0+$1 nil $2,8 8086 -mov reg16,imm16 16 B8+$1 nil $2,16 8086 -mov reg32,imm32 32 B8+$1 nil $2,32 386 -mov mem8x,imm8 nil C6 $1,0 $2,8 8086 -mov mem,imm8x nil C6 $1,0 $2,8 8086 -mov mem16x,imm16 16 C7 $1,0 $2,16 8086 -mov mem,imm16x 16 C7 $1,0 $2,16 8086 -mov mem32x,imm32 32 C7 $1,0 $2,32 8086 -mov mem,imm32x 32 C7 $1,0 $2,32 8086 -mov CRREG_NOTCR4,reg32 nil 0F,22 $2r,$1 nil 386,PRIV -mov CR4,reg32 nil 0F,22 $2r,$1 nil P5,PRIV -mov reg32,CRREG_NOTCR4 nil 0F,20 $1r,$2 nil 386,PRIV -mov reg32,CR4 nil 0F,20 $1r,$2 nil P5,PRIV -mov reg32,DRREG nil 0F,21 $1r,$2 nil 386,PRIV -mov DRREG,reg32 nil 0F,23 $2r,$1 nil 386,PRIV +mov reg8,imm8 nil B0+$1 nil $2,8 8086 +mov reg16,imm16 16 B8+$1 nil $2,16 8086 +mov reg32,imm32 32 B8+$1 nil $2,32 386 +mov mem8x,imm8 nil C6 $1,0 $2,8 8086 +mov mem,imm8x nil C6 $1,0 $2,8 8086 +mov mem16x,imm16 16 C7 $1,0 $2,16 8086 +mov mem,imm16x 16 C7 $1,0 $2,16 8086 +mov mem32x,imm32 32 C7 $1,0 $2,32 8086 +mov mem,imm32x 32 C7 $1,0 $2,32 8086 +mov CRREG_NOTCR4,reg32 nil 0F,22 $2r,$1 nil 386,PRIV +mov CR4,reg32 nil 0F,22 $2r,$1 nil P5,PRIV +mov reg32,CRREG_NOTCR4 nil 0F,20 $1r,$2 nil 386,PRIV +mov reg32,CR4 nil 0F,20 $1r,$2 nil P5,PRIV +mov reg32,DRREG nil 0F,21 $1r,$2 nil 386,PRIV +mov DRREG,reg32 nil 0F,23 $2r,$1 nil 386,PRIV ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 movapd XMMREG,XMMREG nil 66,0F,28 $2r,$1 nil P4,SSE2 movapd XMMREG,mem128 nil 66,0F,28 $2,$1 nil P4,SSE2 movapd mem128,XMMREG nil 66,0F,29 $1,$2 nil P4,SSE2 ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 -movaps XMMREG,XMMREG nil 0F,28 $2r,$1 nil KATMAI,SSE -movaps XMMREG,mem128 nil 0F,28 $2,$1 nil KATMAI,SSE -movaps mem128,XMMREG nil 0F,29 $1,$2 nil KATMAI,SSE -movd MMXREG,rm32 nil 0F,6E $2,$1 nil P5,MMX -movd rm32,MMXREG nil 0F,7E $1,$2 nil P5,MMX +movaps XMMREG,XMMREG nil 0F,28 $2r,$1 nil KATMAI,SSE +movaps XMMREG,mem128 nil 0F,28 $2,$1 nil KATMAI,SSE +movaps mem128,XMMREG nil 0F,29 $1,$2 nil KATMAI,SSE +movd MMXREG,rm32 nil 0F,6E $2,$1 nil P5,MMX +movd rm32,MMXREG nil 0F,7E $1,$2 nil P5,MMX movd XMMREG,rm32 nil 66,0F,6E $2,$1 nil P4,SSE2 movd rm32,XMMREG nil 66,0F,7E $1,$2 nil P4,SSE2 ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 @@ -647,36 +647,36 @@ movdqu XMMREG,mem128 nil F3,0F,6F $2,$1 nil P4,SSE2 movdqu mem128,XMMREG nil F3,0F,7F $1,$2 nil P4,SSE2 ; TODO: not sure if this encoding (movdq2q) is correct movdq2q MMXREG,XMMREG nil F2,0F,D6 $1r,$2 nil P4,SSE2 -movhlps XMMREG,XMMREG nil 0F,12 $2r,$1 nil KATMAI,SSE +movhlps XMMREG,XMMREG nil 0F,12 $2r,$1 nil KATMAI,SSE movhpd XMMREG,mem64 nil 66,0F,16 $2,$1 nil P4,SSE2 movhpd mem64,XMMREG nil 66,0F,17 $1,$2 nil P4,SSE2 -movhps XMMREG,mem64 nil 0F,16 $2,$1 nil KATMAI,SSE -movhps mem64,XMMREG nil 0F,17 $1,$2 nil KATMAI,SSE -movlhps XMMREG,XMMREG nil 0F,16 $2r,$1 nil KATMAI,SSE +movhps XMMREG,mem64 nil 0F,16 $2,$1 nil KATMAI,SSE +movhps mem64,XMMREG nil 0F,17 $1,$2 nil KATMAI,SSE +movlhps XMMREG,XMMREG nil 0F,16 $2r,$1 nil KATMAI,SSE movlpd XMMREG,mem64 nil 66,0F,12 $2,$1 nil P4,SSE2 movlpd mem64,XMMREG nil 66,0F,13 $1,$2 nil P4,SSE2 -movlps XMMREG,mem64 nil 0F,12 $2,$1 nil KATMAI,SSE -movlps mem64,XMMREG nil 0F,13 $1,$2 nil KATMAI,SSE +movlps XMMREG,mem64 nil 0F,12 $2,$1 nil KATMAI,SSE +movlps mem64,XMMREG nil 0F,13 $1,$2 nil KATMAI,SSE movmskpd reg32,XMMREG nil 66,0F,50 $1r,$2 nil P4,SSE2 -movmskps reg32,XMMREG nil 0F,50 $1r,$2 nil KATMAI,SSE +movmskps reg32,XMMREG nil 0F,50 $1r,$2 nil KATMAI,SSE movntdq mem128,XMMREG nil 66,0F,E7 $1,$2 nil P4,SSE2 -movnti mem32,reg32 nil 0F,C3 $1,$2 nil P4 +movnti mem32,reg32 nil 0F,C3 $1,$2 nil P4 movntpd mem128,XMMREG nil 66,0F,2B $1,$2 nil P4,SSE2 -movntps mem128,XMMREG nil 0F,2B $1,$2 nil KATMAI,SSE -movntq mem64,MMXREG nil 0F,E7 $1,$2 nil KATMAI,MMX +movntps mem128,XMMREG nil 0F,2B $1,$2 nil KATMAI,SSE +movntq mem64,MMXREG nil 0F,E7 $1,$2 nil KATMAI,MMX ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 -movq MMXREG,MMXREG nil 0F,6F $2r,$1 nil P5,MMX -movq MMXREG,mem64 nil 0F,6F $2,$1 nil P5,MMX -movq mem64,MMXREG nil 0F,7F $1,$2 nil P5,MMX +movq MMXREG,MMXREG nil 0F,6F $2r,$1 nil P5,MMX +movq MMXREG,mem64 nil 0F,6F $2,$1 nil P5,MMX +movq mem64,MMXREG nil 0F,7F $1,$2 nil P5,MMX ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 movq XMMREG,XMMREG nil F3,0F,7E $2r,$1 nil P4,SSE2 movq XMMREG,mem64 nil F3,0F,7E $2,$1 nil P4,SSE2 movq mem64,XMMREG nil 66,0F,D6 $1,$2 nil P4,SSE2 ; TODO: not sure if this encoding (movq2dq) is correct movq2dq XMMREG,MMXREG nil F3,0F,D6 $1r,$2 nil P4,SSE2 -movsb nil nil A4 nil nil 8086 -movsw nil 16 A5 nil nil 8086 -movsd nil 32 A5 nil nil 386 +movsb nil nil A4 nil nil 8086 +movsw nil 16 A5 nil nil 8086 +movsd nil 32 A5 nil nil 386 ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 movsd XMMREG,XMMREG nil F2,0F,10 $2r,$1 nil P4,SSE2 movsd XMMREG,mem64 nil F2,0F,10 $2,$1 nil P4,SSE2 @@ -685,687 +685,687 @@ movsd mem64,XMMREG nil F2,0F,11 $1,$2 nil P4,SSE2 movss XMMREG,XMMREG nil F3,0F,10 $2r,$1 nil P4,SSE2 movss XMMREG,mem64 nil F3,0F,10 $2,$1 nil P4,SSE2 movss mem64,XMMREG nil F3,0F,11 $1,$2 nil P4,SSE2 -movsx reg16,rm8 16 0F,BE $2,$1 nil 386 -movsx reg32,rm8x 32 0F,BE $2,$1 nil 386 -movsx reg32,rm16x nil 0F,BF $2,$1 nil 386 +movsx reg16,rm8 16 0F,BE $2,$1 nil 386 +movsx reg32,rm8x 32 0F,BE $2,$1 nil 386 +movsx reg32,rm16x nil 0F,BF $2,$1 nil 386 ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 movupd XMMREG,XMMREG nil 66,0F,10 $2r,$1 nil P4,SSE2 movupd XMMREG,mem64 nil 66,0F,10 $2,$1 nil P4,SSE2 movupd mem64,XMMREG nil 66,0F,11 $1,$2 nil P4,SSE2 ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 -movups XMMREG,XMMREG nil 0F,10 $2r,$1 nil P4,SSE2 -movups XMMREG,mem64 nil 0F,10 $2,$1 nil P4,SSE2 -movups mem64,XMMREG nil 0F,11 $1,$2 nil P4,SSE2 -movzx reg16,rm8 16 0F,B6 $2,$1 nil 386 -movzx reg32,rm8x 32 0F,B6 $2,$1 nil 386 -movzx reg32,rm16x nil 0F,B7 $2,$1 nil 386 -mul rm8x nil F6 $1,4 nil 8086 -mul rm16x 16 F7 $1,4 nil 8086 -mul rm32x 32 F7 $1,4 nil 386 +movups XMMREG,XMMREG nil 0F,10 $2r,$1 nil P4,SSE2 +movups XMMREG,mem64 nil 0F,10 $2,$1 nil P4,SSE2 +movups mem64,XMMREG nil 0F,11 $1,$2 nil P4,SSE2 +movzx reg16,rm8 16 0F,B6 $2,$1 nil 386 +movzx reg32,rm8x 32 0F,B6 $2,$1 nil 386 +movzx reg32,rm16x nil 0F,B7 $2,$1 nil 386 +mul rm8x nil F6 $1,4 nil 8086 +mul rm16x 16 F7 $1,4 nil 8086 +mul rm32x 32 F7 $1,4 nil 386 mulpd XMMREG,rm128 nil 66,0F,59 $2,$1 nil P4,SSE2 -mulps XMMREG,rm128 nil 0F,59 $2,$1 nil KATMAI,SSE +mulps XMMREG,rm128 nil 0F,59 $2,$1 nil KATMAI,SSE mulsd XMMREG,rm128 nil F2,0F,59 $2,$1 nil P4,SSE2 mulss XMMREG,rm128 nil F3,0F,59 $2,$1 nil P4,SSE2 -neg rm8x nil F6 $1,3 nil 8086 -neg rm16x 16 F7 $1,3 nil 8086 -neg rm32x 32 F7 $1,3 nil 386 -nop nil nil 90 nil nil 8086 -not rm8x nil F6 $1,2 nil 8086 -not rm16x 16 F7 $1,2 nil 8086 -not rm32x 32 F7 $1,2 nil 386 -or REG_AL,imm8 nil 0C nil $2,8 8086 -or REG_AX,imm16 16 0D nil $2,16 8086 -or REG_EAX,imm32 32 0D nil $2,32 386 -or reg8,imm nil 80 $1r,1 $2,8 8086 -or mem8x,imm nil 80 $1,1 $2,8 8086 -or reg8,imm8x nil 80 $1r,1 $2,8 8086 -or mem,imm8x nil 80 $1,1 $2,8 8086 -or reg16,imm 16 81 $1r,1 $2,16 8086 -or mem16x,imm 16 81 $1,1 $2,16 8086 -or reg16,imm16x 16 81 $1r,1 $2,16 8086 -or mem,imm16x 16 81 $1,1 $2,16 8086 -or reg32,imm 32 81 $1r,1 $2,32 386 -or mem32x,imm 32 81 $1,1 $2,32 386 -or reg32,imm32x 32 81 $1r,1 $2,32 386 -or mem,imm32x 32 81 $1,1 $2,32 386 -or reg16,imm8x 16 83 $1r,1 $2,8s 8086 -or mem16x,imm8x 16 83 $1,1 $2,8s 8086 -or reg32,imm8x 32 83 $1r,1 $2,8s 386 -or mem32x,imm8x 32 83 $1,1 $2,8s 386 +neg rm8x nil F6 $1,3 nil 8086 +neg rm16x 16 F7 $1,3 nil 8086 +neg rm32x 32 F7 $1,3 nil 386 +nop nil nil 90 nil nil 8086 +not rm8x nil F6 $1,2 nil 8086 +not rm16x 16 F7 $1,2 nil 8086 +not rm32x 32 F7 $1,2 nil 386 +or REG_AL,imm8 nil 0C nil $2,8 8086 +or REG_AX,imm16 16 0D nil $2,16 8086 +or REG_EAX,imm32 32 0D nil $2,32 386 +or reg8,imm nil 80 $1r,1 $2,8 8086 +or mem8x,imm nil 80 $1,1 $2,8 8086 +or reg8,imm8x nil 80 $1r,1 $2,8 8086 +or mem,imm8x nil 80 $1,1 $2,8 8086 +or reg16,imm 16 81 $1r,1 $2,16 8086 +or mem16x,imm 16 81 $1,1 $2,16 8086 +or reg16,imm16x 16 81 $1r,1 $2,16 8086 +or mem,imm16x 16 81 $1,1 $2,16 8086 +or reg32,imm 32 81 $1r,1 $2,32 386 +or mem32x,imm 32 81 $1,1 $2,32 386 +or reg32,imm32x 32 81 $1r,1 $2,32 386 +or mem,imm32x 32 81 $1,1 $2,32 386 +or reg16,imm8x 16 83 $1r,1 $2,8s 8086 +or mem16x,imm8x 16 83 $1,1 $2,8s 8086 +or reg32,imm8x 32 83 $1r,1 $2,8s 386 +or mem32x,imm8x 32 83 $1,1 $2,8s 386 ; opcode arbitrarily picked for next 3 (could be 0A/0B instead of 08/09). -or reg8,reg8 nil 08 $1r,$2 nil 8086 -or reg16,reg16 16 09 $1r,$2 nil 8086 -or reg32,reg32 32 09 $1r,$2 nil 386 -or mem,reg8 nil 08 $1,$2 nil 8086 -or mem8x,reg8 nil 08 $1,$2 nil 8086 -or mem,reg16 16 09 $1,$2 nil 8086 -or mem16x,reg16 16 09 $1,$2 nil 8086 -or mem,reg32 32 09 $1,$2 nil 386 -or mem32x,reg32 32 09 $1,$2 nil 386 -or reg8,mem8 nil 0A $2,$1 nil 8086 -or reg16,mem16 16 0B $2,$1 nil 8086 -or reg32,mem32 32 0B $2,$1 nil 386 +or reg8,reg8 nil 08 $1r,$2 nil 8086 +or reg16,reg16 16 09 $1r,$2 nil 8086 +or reg32,reg32 32 09 $1r,$2 nil 386 +or mem,reg8 nil 08 $1,$2 nil 8086 +or mem8x,reg8 nil 08 $1,$2 nil 8086 +or mem,reg16 16 09 $1,$2 nil 8086 +or mem16x,reg16 16 09 $1,$2 nil 8086 +or mem,reg32 32 09 $1,$2 nil 386 +or mem32x,reg32 32 09 $1,$2 nil 386 +or reg8,mem8 nil 0A $2,$1 nil 8086 +or reg16,mem16 16 0B $2,$1 nil 8086 +or reg32,mem32 32 0B $2,$1 nil 386 orpd XMMREG,rm128 nil 66,0F,56 $2,$1 nil P4,SSE2 -orps XMMREG,rm128 nil 0F,56 $2,$1 nil KATMAI,SSE -out imm8,REG_AL nil E6 nil $1,8 8086 -out imm8,REG_AX 16 E7 nil $1,8 8086 -out imm8,REG_EAX 32 E7 nil $1,8 386 -out REG_DX,REG_AL nil EE nil nil 8086 -out REG_DX,REG_AX 16 EF nil nil 8086 -out REG_DX,REG_EAX 32 EF nil nil 386 -outsb nil nil 6E nil nil 8086 -outsw nil 16 6F nil nil 8086 -outsd nil 32 6F nil nil 386 -packsswb MMXREG,rm64 nil 0F,63 $2,$1 nil P5,MMX +orps XMMREG,rm128 nil 0F,56 $2,$1 nil KATMAI,SSE +out imm8,REG_AL nil E6 nil $1,8 8086 +out imm8,REG_AX 16 E7 nil $1,8 8086 +out imm8,REG_EAX 32 E7 nil $1,8 386 +out REG_DX,REG_AL nil EE nil nil 8086 +out REG_DX,REG_AX 16 EF nil nil 8086 +out REG_DX,REG_EAX 32 EF nil nil 386 +outsb nil nil 6E nil nil 8086 +outsw nil 16 6F nil nil 8086 +outsd nil 32 6F nil nil 386 +packsswb MMXREG,rm64 nil 0F,63 $2,$1 nil P5,MMX packsswb XMMREG,rm128 nil 66,0F,63 $2,$1 nil P4,SSE2 -packssdw MMXREG,rm64 nil 0F,6B $2,$1 nil P5,MMX +packssdw MMXREG,rm64 nil 0F,6B $2,$1 nil P5,MMX packssdw XMMREG,rm128 nil 66,0F,6B $2,$1 nil P4,SSE2 -packuswb MMXREG,rm64 nil 0F,67 $2,$1 nil P5,MMX +packuswb MMXREG,rm64 nil 0F,67 $2,$1 nil P5,MMX packuswb XMMREG,rm128 nil 66,0F,67 $2,$1 nil P4,SSE2 -paddb MMXREG,rm64 nil 0F,FC $2,$1 nil P5,MMX +paddb MMXREG,rm64 nil 0F,FC $2,$1 nil P5,MMX paddb XMMREG,rm128 nil 66,0F,FC $2,$1 nil P4,SSE2 -paddw MMXREG,rm64 nil 0F,FD $2,$1 nil P5,MMX +paddw MMXREG,rm64 nil 0F,FD $2,$1 nil P5,MMX paddw XMMREG,rm128 nil 66,0F,FD $2,$1 nil P4,SSE2 -paddd MMXREG,rm64 nil 0F,FE $2,$1 nil P5,MMX +paddd MMXREG,rm64 nil 0F,FE $2,$1 nil P5,MMX paddd XMMREG,rm128 nil 66,0F,FE $2,$1 nil P4,SSE2 -paddq MMXREG,rm64 nil 0F,D4 $2,$1 nil P5,MMX +paddq MMXREG,rm64 nil 0F,D4 $2,$1 nil P5,MMX paddq XMMREG,rm128 nil 66,0F,D4 $2,$1 nil P4,SSE2 -paddsb MMXREG,rm64 nil 0F,EC $2,$1 nil P5,MMX +paddsb MMXREG,rm64 nil 0F,EC $2,$1 nil P5,MMX paddsb XMMREG,rm128 nil 66,0F,EC $2,$1 nil P4,SSE2 -paddsw MMXREG,rm64 nil 0F,ED $2,$1 nil P5,MMX +paddsw MMXREG,rm64 nil 0F,ED $2,$1 nil P5,MMX paddsw XMMREG,rm128 nil 66,0F,ED $2,$1 nil P4,SSE2 -paddusb MMXREG,rm64 nil 0F,DC $2,$1 nil P5,MMX +paddusb MMXREG,rm64 nil 0F,DC $2,$1 nil P5,MMX paddusb XMMREG,rm128 nil 66,0F,DC $2,$1 nil P4,SSE2 -paddusw MMXREG,rm64 nil 0F,DD $2,$1 nil P5,MMX +paddusw MMXREG,rm64 nil 0F,DD $2,$1 nil P5,MMX paddusw XMMREG,rm128 nil 66,0F,DD $2,$1 nil P4,SSE2 -pand MMXREG,rm64 nil 0F,DB $2,$1 nil P5,MMX +pand MMXREG,rm64 nil 0F,DB $2,$1 nil P5,MMX pand XMMREG,rm128 nil 66,0F,DB $2,$1 nil P4,SSE2 -pandn MMXREG,rm64 nil 0F,DF $2,$1 nil P5,MMX +pandn MMXREG,rm64 nil 0F,DF $2,$1 nil P5,MMX pandn XMMREG,rm128 nil 66,0F,DF $2,$1 nil P4,SSE2 -pause nil nil F3,90 nil nil P4 -pavgb MMXREG,rm64 nil 0F,E0 $2,$1 nil KATMAI,MMX +pause nil nil F3,90 nil nil P4 +pavgb MMXREG,rm64 nil 0F,E0 $2,$1 nil KATMAI,MMX pavgb XMMREG,rm128 nil 66,0F,E0 $2,$1 nil P4,SSE2 -pavgw MMXREG,rm64 nil 0F,E3 $2,$1 nil KATMAI,MMX +pavgw MMXREG,rm64 nil 0F,E3 $2,$1 nil KATMAI,MMX pavgw XMMREG,rm128 nil 66,0F,E3 $2,$1 nil P4,SSE2 -pcmpeqb MMXREG,rm64 nil 0F,74 $2,$1 nil P5,MMX +pcmpeqb MMXREG,rm64 nil 0F,74 $2,$1 nil P5,MMX pcmpeqb XMMREG,rm128 nil 66,0F,74 $2,$1 nil P4,SSE2 -pcmpeqw MMXREG,rm64 nil 0F,75 $2,$1 nil P5,MMX +pcmpeqw MMXREG,rm64 nil 0F,75 $2,$1 nil P5,MMX pcmpeqw XMMREG,rm128 nil 66,0F,75 $2,$1 nil P4,SSE2 -pcmpeqd MMXREG,rm64 nil 0F,76 $2,$1 nil P5,MMX +pcmpeqd MMXREG,rm64 nil 0F,76 $2,$1 nil P5,MMX pcmpeqd XMMREG,rm128 nil 66,0F,76 $2,$1 nil P4,SSE2 -pcmpgtb MMXREG,rm64 nil 0F,64 $2,$1 nil P5,MMX +pcmpgtb MMXREG,rm64 nil 0F,64 $2,$1 nil P5,MMX pcmpgtb XMMREG,rm128 nil 66,0F,64 $2,$1 nil P4,SSE2 -pcmpgtw MMXREG,rm64 nil 0F,65 $2,$1 nil P5,MMX +pcmpgtw MMXREG,rm64 nil 0F,65 $2,$1 nil P5,MMX pcmpgtw XMMREG,rm128 nil 66,0F,65 $2,$1 nil P4,SSE2 -pcmpgtd MMXREG,rm64 nil 0F,66 $2,$1 nil P5,MMX +pcmpgtd MMXREG,rm64 nil 0F,66 $2,$1 nil P5,MMX pcmpgtd XMMREG,rm128 nil 66,0F,66 $2,$1 nil P4,SSE2 -pextrw reg32,MMXREG,imm8 nil 0F,C5 $1r,$2 $3,8 KATMAI,MMX +pextrw reg32,MMXREG,imm8 nil 0F,C5 $1r,$2 $3,8 KATMAI,MMX pextrw reg32,XMMREG,imm8 nil 66,0F,C5 $1r,$2 $3,8 P4,SSE2 -pinsrw MMXREG,reg32,imm8 nil 0F,C4 $2r,$1 $3,8 KATMAI,MMX -pinsrw MMXREG,rm16,imm8 nil 0F,C4 $2,$1 $3,8 KATMAI,MMX +pinsrw MMXREG,reg32,imm8 nil 0F,C4 $2r,$1 $3,8 KATMAI,MMX +pinsrw MMXREG,rm16,imm8 nil 0F,C4 $2,$1 $3,8 KATMAI,MMX pinsrw XMMREG,reg32,imm8 nil 66,0F,C4 $2r,$1 $3,8 P4,SSE2 pinsrw XMMREG,rm16,imm8 nil 66,0F,C4 $2,$1 $3,8 P4,SSE2 -pmaddwd MMXREG,rm64 nil 0F,F5 $2,$1 nil P5,MMX +pmaddwd MMXREG,rm64 nil 0F,F5 $2,$1 nil P5,MMX pmaddwd XMMREG,rm128 nil 66,0F,F5 $2,$1 nil P4,SSE2 -pmaxsw MMXREG,rm64 nil 0F,EE $2,$1 nil KATMAI,MMX +pmaxsw MMXREG,rm64 nil 0F,EE $2,$1 nil KATMAI,MMX pmaxsw XMMREG,rm128 nil 66,0F,EE $2,$1 nil P4,SSE2 -pmaxub MMXREG,rm64 nil 0F,DE $2,$1 nil KATMAI,MMX +pmaxub MMXREG,rm64 nil 0F,DE $2,$1 nil KATMAI,MMX pmaxub XMMREG,rm128 nil 66,0F,DE $2,$1 nil P4,SSE2 -pminsw MMXREG,rm64 nil 0F,EA $2,$1 nil KATMAI,MMX +pminsw MMXREG,rm64 nil 0F,EA $2,$1 nil KATMAI,MMX pminsw XMMREG,rm128 nil 66,0F,EA $2,$1 nil P4,SSE2 -pminub MMXREG,rm64 nil 0F,DA $2,$1 nil KATMAI,MMX +pminub MMXREG,rm64 nil 0F,DA $2,$1 nil KATMAI,MMX pminub XMMREG,rm128 nil 66,0F,DA $2,$1 nil P4,SSE2 -pmovmskb reg32,MMXREG nil 0F,D7 $1r,$2 nil KATMAI,MMX +pmovmskb reg32,MMXREG nil 0F,D7 $1r,$2 nil KATMAI,MMX pmovmskb reg32,XMMREG nil 66,0F,D7 $1r,$2 nil P4,SSE2 -pmulhuw MMXREG,rm64 nil 0F,E4 $2,$1 nil KATMAI,MMX +pmulhuw MMXREG,rm64 nil 0F,E4 $2,$1 nil KATMAI,MMX pmulhuw XMMREG,rm128 nil 66,0F,E4 $2,$1 nil P4,SSE2 -pmulhw MMXREG,rm64 nil 0F,E5 $2,$1 nil P5,MMX +pmulhw MMXREG,rm64 nil 0F,E5 $2,$1 nil P5,MMX pmulhw XMMREG,rm128 nil 66,0F,E5 $2,$1 nil P4,SSE2 -pmullw MMXREG,rm64 nil 0F,D5 $2,$1 nil P5,MMX +pmullw MMXREG,rm64 nil 0F,D5 $2,$1 nil P5,MMX pmullw XMMREG,rm128 nil 66,0F,D5 $2,$1 nil P4,SSE2 -pmuludq MMXREG,rm64 nil 0F,F4 $2,$1 nil P4,MMX +pmuludq MMXREG,rm64 nil 0F,F4 $2,$1 nil P4,MMX pmuludq XMMREG,rm128 nil 66,0F,F4 $2,$1 nil P4,SSE2 -pop mem16x 16 8F $1,0 nil 8086 -pop mem32x 32 8F $1,0 nil 386 -pop reg16 16 58+$1 nil nil 8086 -pop reg32 32 58+$1 nil nil 386 -pop REG_DS nil 1F nil nil 8086 -pop REG_ES nil 07 nil nil 8086 -pop REG_SS nil 17 nil nil 8086 -pop REG_FS nil 0F,A1 nil nil 386 -pop REG_GS nil 0F,A9 nil nil 386 -popa nil nil 61 nil nil 8086 -popad nil 32 61 nil nil 386 -popaw nil 16 61 nil nil 8086 -popf nil nil 9D nil nil 8086 -popfd nil 32 9D nil nil 386 -popfw nil 16 9D nil nil 8086 -por MMXREG,rm64 nil 0F,EB $2,$1 nil P5,MMX +pop mem16x 16 8F $1,0 nil 8086 +pop mem32x 32 8F $1,0 nil 386 +pop reg16 16 58+$1 nil nil 8086 +pop reg32 32 58+$1 nil nil 386 +pop REG_DS nil 1F nil nil 8086 +pop REG_ES nil 07 nil nil 8086 +pop REG_SS nil 17 nil nil 8086 +pop REG_FS nil 0F,A1 nil nil 386 +pop REG_GS nil 0F,A9 nil nil 386 +popa nil nil 61 nil nil 8086 +popad nil 32 61 nil nil 386 +popaw nil 16 61 nil nil 8086 +popf nil nil 9D nil nil 8086 +popfd nil 32 9D nil nil 386 +popfw nil 16 9D nil nil 8086 +por MMXREG,rm64 nil 0F,EB $2,$1 nil P5,MMX por XMMREG,rm128 nil 66,0F,EB $2,$1 nil KATMAI,SSE -prefetcht0 mem nil 0F,18 $1,1 nil KATMAI -prefetcht1 mem nil 0F,18 $1,2 nil KATMAI -prefetcht2 mem nil 0F,18 $1,3 nil KATMAI -prefetchnta mem nil 0F,18 $1,0 nil KATMAI -psadbw MMXREG,rm64 nil 0F,F6 $2,$1 nil KATMAI,MMX +prefetcht0 mem nil 0F,18 $1,1 nil KATMAI +prefetcht1 mem nil 0F,18 $1,2 nil KATMAI +prefetcht2 mem nil 0F,18 $1,3 nil KATMAI +prefetchnta mem nil 0F,18 $1,0 nil KATMAI +psadbw MMXREG,rm64 nil 0F,F6 $2,$1 nil KATMAI,MMX psadbw XMMREG,rm128 nil 66,0F,F6 $2,$1 nil KATMAI,SSE pshufd XMMREG,rm128,imm8 nil 66,0F,70 $2,$1 $3,8 P4,SSE2 pshufhw XMMREG,rm128,imm8 nil F3,0F,70 $2,$1 $3,8 P4,SSE2 pshuflw XMMREG,rm128,imm8 nil F2,0F,70 $2,$1 $3,8 P4,SSE2 -pshufw MMXREG,rm64,imm8 nil 0F,70 $2,$1 $3,8 KATMAI,MMX +pshufw MMXREG,rm64,imm8 nil 0F,70 $2,$1 $3,8 KATMAI,MMX pslldq XMMREG,imm8 nil 66,0F,73 $1r,7 $2,8 P4,SSE2 -psllw MMXREG,rm64 nil 0F,F1 $2,$1 nil P5,MMX +psllw MMXREG,rm64 nil 0F,F1 $2,$1 nil P5,MMX psllw XMMREG,rm128 nil 66,0F,F1 $2,$1 nil P4,SSE2 -psllw MMXREG,imm8 nil 0F,71 $1r,6 $2,8 P5,MMX +psllw MMXREG,imm8 nil 0F,71 $1r,6 $2,8 P5,MMX psllw XMMREG,imm8 nil 66,0F,71 $1r,6 $2,8 P4,SSE2 -pslld MMXREG,rm64 nil 0F,F2 $2,$1 nil P5,MMX +pslld MMXREG,rm64 nil 0F,F2 $2,$1 nil P5,MMX pslld XMMREG,rm128 nil 66,0F,F2 $2,$1 nil P4,SSE2 -pslld MMXREG,imm8 nil 0F,72 $1r,6 $2,8 P5,MMX +pslld MMXREG,imm8 nil 0F,72 $1r,6 $2,8 P5,MMX pslld XMMREG,imm8 nil 66,0F,72 $1r,6 $2,8 P4,SSE2 -psllq MMXREG,rm64 nil 0F,F3 $2,$1 nil P5,MMX +psllq MMXREG,rm64 nil 0F,F3 $2,$1 nil P5,MMX psllq XMMREG,rm128 nil 66,0F,F3 $2,$1 nil P4,SSE2 -psllq MMXREG,imm8 nil 0F,73 $1r,6 $2,8 P5,MMX +psllq MMXREG,imm8 nil 0F,73 $1r,6 $2,8 P5,MMX psllq XMMREG,imm8 nil 66,0F,73 $1r,6 $2,8 P4,SSE2 -psraw MMXREG,rm64 nil 0F,E1 $2,$1 nil P5,MMX +psraw MMXREG,rm64 nil 0F,E1 $2,$1 nil P5,MMX psraw XMMREG,rm128 nil 66,0F,E1 $2,$1 nil P4,SSE2 -psraw MMXREG,imm8 nil 0F,71 $1r,4 $2,8 P5,MMX +psraw MMXREG,imm8 nil 0F,71 $1r,4 $2,8 P5,MMX psraw XMMREG,imm8 nil 66,0F,71 $1r,4 $2,8 P4,SSE2 -psrad MMXREG,rm64 nil 0F,E2 $2,$1 nil P5,MMX +psrad MMXREG,rm64 nil 0F,E2 $2,$1 nil P5,MMX psrad XMMREG,rm128 nil 66,0F,E2 $2,$1 nil P4,SSE2 -psrad MMXREG,imm8 nil 0F,72 $1r,4 $2,8 P5,MMX +psrad MMXREG,imm8 nil 0F,72 $1r,4 $2,8 P5,MMX psrad XMMREG,imm8 nil 66,0F,72 $1r,4 $2,8 P4,SSE2 psrldq XMMREG,imm8 nil 66,0F,73 $1r,3 $2,8 P4,SSE2 -psrlw MMXREG,rm64 nil 0F,D1 $2,$1 nil P5,MMX +psrlw MMXREG,rm64 nil 0F,D1 $2,$1 nil P5,MMX psrlw XMMREG,rm128 nil 66,0F,D1 $2,$1 nil P4,SSE2 -psrlw MMXREG,imm8 nil 0F,71 $1r,2 $2,8 P5,MMX +psrlw MMXREG,imm8 nil 0F,71 $1r,2 $2,8 P5,MMX psrlw XMMREG,imm8 nil 66,0F,71 $1r,2 $2,8 P4,SSE2 -psrld MMXREG,rm64 nil 0F,D2 $2,$1 nil P5,MMX +psrld MMXREG,rm64 nil 0F,D2 $2,$1 nil P5,MMX psrld XMMREG,rm128 nil 66,0F,D2 $2,$1 nil P4,SSE2 -psrld MMXREG,imm8 nil 0F,72 $1r,2 $2,8 P5,MMX +psrld MMXREG,imm8 nil 0F,72 $1r,2 $2,8 P5,MMX psrld XMMREG,imm8 nil 66,0F,72 $1r,2 $2,8 P4,SSE2 -psrlq MMXREG,rm64 nil 0F,D3 $2,$1 nil P5,MMX +psrlq MMXREG,rm64 nil 0F,D3 $2,$1 nil P5,MMX psrlq XMMREG,rm128 nil 66,0F,D3 $2,$1 nil P4,SSE2 -psrlq MMXREG,imm8 nil 0F,73 $1r,2 $2,8 P5,MMX +psrlq MMXREG,imm8 nil 0F,73 $1r,2 $2,8 P5,MMX psrlq XMMREG,imm8 nil 66,0F,73 $1r,2 $2,8 P4,SSE2 -psubb MMXREG,imm8 nil 0F,F8 $1r,2 $2,8 P5,MMX +psubb MMXREG,imm8 nil 0F,F8 $1r,2 $2,8 P5,MMX psubb XMMREG,imm8 nil 66,0F,F8 $1r,2 $2,8 P4,SSE2 -psubw MMXREG,imm8 nil 0F,F9 $1r,2 $2,8 P5,MMX +psubw MMXREG,imm8 nil 0F,F9 $1r,2 $2,8 P5,MMX psubw XMMREG,imm8 nil 66,0F,F9 $1r,2 $2,8 P4,SSE2 -psubd MMXREG,rm64 nil 0F,FA $2,$1 nil P5,MMX +psubd MMXREG,rm64 nil 0F,FA $2,$1 nil P5,MMX psubd XMMREG,rm128 nil 66,0F,FA $2,$1 nil P4,SSE2 -psubq MMXREG,rm64 nil 0F,FB $2,$1 nil P4,MMX +psubq MMXREG,rm64 nil 0F,FB $2,$1 nil P4,MMX psubq XMMREG,rm128 nil 66,0F,FB $2,$1 nil P4,SSE2 -psubsb MMXREG,rm64 nil 0F,E8 $2,$1 nil P5,MMX +psubsb MMXREG,rm64 nil 0F,E8 $2,$1 nil P5,MMX psubsb XMMREG,rm128 nil 66,0F,E8 $2,$1 nil P4,SSE2 -psubsw MMXREG,rm64 nil 0F,E9 $2,$1 nil P5,MMX +psubsw MMXREG,rm64 nil 0F,E9 $2,$1 nil P5,MMX psubsw XMMREG,rm128 nil 66,0F,E9 $2,$1 nil P4,SSE2 -psubusb MMXREG,rm64 nil 0F,D8 $2,$1 nil P5,MMX +psubusb MMXREG,rm64 nil 0F,D8 $2,$1 nil P5,MMX psubusb XMMREG,rm128 nil 66,0F,D8 $2,$1 nil P4,SSE2 -psubusw MMXREG,rm64 nil 0F,D9 $2,$1 nil P5,MMX +psubusw MMXREG,rm64 nil 0F,D9 $2,$1 nil P5,MMX psubusw XMMREG,rm128 nil 66,0F,D9 $2,$1 nil P4,SSE2 -punpckhbw MMXREG,rm64 nil 0F,68 $2,$1 nil P5,MMX +punpckhbw MMXREG,rm64 nil 0F,68 $2,$1 nil P5,MMX punpckhbw XMMREG,rm128 nil 66,0F,68 $2,$1 nil P4,SSE2 -punpckhwd MMXREG,rm64 nil 0F,69 $2,$1 nil P5,MMX +punpckhwd MMXREG,rm64 nil 0F,69 $2,$1 nil P5,MMX punpckhwd XMMREG,rm128 nil 66,0F,69 $2,$1 nil P4,SSE2 -punpckhdq MMXREG,rm64 nil 0F,6A $2,$1 nil P5,MMX +punpckhdq MMXREG,rm64 nil 0F,6A $2,$1 nil P5,MMX punpckhdq XMMREG,rm128 nil 66,0F,6A $2,$1 nil P4,SSE2 punpckhqdq XMMREG,rm128 nil 66,0F,6D $2,$1 nil P4,SSE2 -punpcklbw MMXREG,rm64 nil 0F,60 $2,$1 nil P5,MMX +punpcklbw MMXREG,rm64 nil 0F,60 $2,$1 nil P5,MMX punpcklbw XMMREG,rm128 nil 66,0F,60 $2,$1 nil P4,SSE2 -punpcklwd MMXREG,rm64 nil 0F,61 $2,$1 nil P5,MMX +punpcklwd MMXREG,rm64 nil 0F,61 $2,$1 nil P5,MMX punpcklwd XMMREG,rm128 nil 66,0F,61 $2,$1 nil P4,SSE2 -punpckldq MMXREG,rm64 nil 0F,62 $2,$1 nil P5,MMX +punpckldq MMXREG,rm64 nil 0F,62 $2,$1 nil P5,MMX punpckldq XMMREG,rm128 nil 66,0F,62 $2,$1 nil P4,SSE2 punpcklqdq XMMREG,rm128 nil 66,0F,6C $2,$1 nil P4,SSE2 -push mem16x 16 FF $1,6 nil 8086 -push mem32x 32 FF $1,6 nil 386 -push reg16 16 50+$1 nil nil 8086 -push reg32 32 50+$1 nil nil 386 -push imm8x nil 6A nil $1,8 8086 -push imm16x 16 68 nil $1,16 8086 -push imm32x 32 68 nil $1,32 386 -push REG_CS nil 0E nil nil 8086 -push REG_SS nil 16 nil nil 8086 -push REG_DS nil 1E nil nil 8086 -push REG_ES nil 06 nil nil 8086 -push REG_FS nil 0F,A0 nil nil 386 -push REG_GS nil 0F,A8 nil nil 386 -pusha nil nil 60 nil nil 8086 -pushad nil 32 60 nil nil 386 -pushaw nil 16 60 nil nil 8086 -pushf nil nil 9C nil nil 8086 -pushfd nil 32 9C nil nil 386 -pushfw nil 16 9C nil nil 8086 -pxor MMXREG,rm64 nil 0F,EF $2,$1 nil P5,MMX +push mem16x 16 FF $1,6 nil 8086 +push mem32x 32 FF $1,6 nil 386 +push reg16 16 50+$1 nil nil 8086 +push reg32 32 50+$1 nil nil 386 +push imm8x nil 6A nil $1,8 8086 +push imm16x 16 68 nil $1,16 8086 +push imm32x 32 68 nil $1,32 386 +push REG_CS nil 0E nil nil 8086 +push REG_SS nil 16 nil nil 8086 +push REG_DS nil 1E nil nil 8086 +push REG_ES nil 06 nil nil 8086 +push REG_FS nil 0F,A0 nil nil 386 +push REG_GS nil 0F,A8 nil nil 386 +pusha nil nil 60 nil nil 8086 +pushad nil 32 60 nil nil 386 +pushaw nil 16 60 nil nil 8086 +pushf nil nil 9C nil nil 8086 +pushfd nil 32 9C nil nil 386 +pushfw nil 16 9C nil nil 8086 +pxor MMXREG,rm64 nil 0F,EF $2,$1 nil P5,MMX pxor XMMREG,rm128 nil 66,0F,EF $2,$1 nil P4,SSE2 -rcl rm8x,ONE nil D0 $1,2 nil 8086 -rcl rm8x,REG_CL nil D2 $1,2 nil 8086 -rcl rm8x,imm8 nil C0 $1,2 $2,8 186 -rcl rm16x,ONE 16 D1 $1,2 nil 8086 -rcl rm16x,REG_CL 16 D3 $1,2 nil 8086 -rcl rm16x,imm8 16 C1 $1,2 $2,8 186 -rcl rm32x,ONE 32 D1 $1,2 nil 386 -rcl rm32x,REG_CL 32 D3 $1,2 nil 386 -rcl rm32x,imm8 32 C1 $1,2 $2,8 386 -rcr rm8x,ONE nil D0 $1,3 nil 8086 -rcr rm8x,REG_CL nil D2 $1,3 nil 8086 -rcr rm8x,imm8 nil C0 $1,3 $2,8 186 -rcr rm16x,ONE 16 D1 $1,3 nil 8086 -rcr rm16x,REG_CL 16 D3 $1,3 nil 8086 -rcr rm16x,imm8 16 C1 $1,3 $2,8 186 -rcr rm32x,ONE 32 D1 $1,3 nil 386 -rcr rm32x,REG_CL 32 D3 $1,3 nil 386 -rcr rm32x,imm8 32 C1 $1,3 $2,8 386 -rol rm8x,ONE nil D0 $1,0 nil 8086 -rol rm8x,REG_CL nil D2 $1,0 nil 8086 -rol rm8x,imm8 nil C0 $1,0 $2,8 186 -rol rm16x,ONE 16 D1 $1,0 nil 8086 -rol rm16x,REG_CL 16 D3 $1,0 nil 8086 -rol rm16x,imm8 16 C1 $1,0 $2,8 186 -rol rm32x,ONE 32 D1 $1,0 nil 386 -rol rm32x,REG_CL 32 D3 $1,0 nil 386 -rol rm32x,imm8 32 C1 $1,0 $2,8 386 -ror rm8x,ONE nil D0 $1,1 nil 8086 -ror rm8x,REG_CL nil D2 $1,1 nil 8086 -ror rm8x,imm8 nil C0 $1,1 $2,8 186 -ror rm16x,ONE 16 D1 $1,1 nil 8086 -ror rm16x,REG_CL 16 D3 $1,1 nil 8086 -ror rm16x,imm8 16 C1 $1,1 $2,8 186 -ror rm32x,ONE 32 D1 $1,1 nil 386 -ror rm32x,REG_CL 32 D3 $1,1 nil 386 -ror rm32x,imm8 32 C1 $1,1 $2,8 386 -rcpps XMMREG,rm128 nil 0F,F3 $2,$1 nil KATMAI,SSE +rcl rm8x,ONE nil D0 $1,2 nil 8086 +rcl rm8x,REG_CL nil D2 $1,2 nil 8086 +rcl rm8x,imm8 nil C0 $1,2 $2,8 186 +rcl rm16x,ONE 16 D1 $1,2 nil 8086 +rcl rm16x,REG_CL 16 D3 $1,2 nil 8086 +rcl rm16x,imm8 16 C1 $1,2 $2,8 186 +rcl rm32x,ONE 32 D1 $1,2 nil 386 +rcl rm32x,REG_CL 32 D3 $1,2 nil 386 +rcl rm32x,imm8 32 C1 $1,2 $2,8 386 +rcr rm8x,ONE nil D0 $1,3 nil 8086 +rcr rm8x,REG_CL nil D2 $1,3 nil 8086 +rcr rm8x,imm8 nil C0 $1,3 $2,8 186 +rcr rm16x,ONE 16 D1 $1,3 nil 8086 +rcr rm16x,REG_CL 16 D3 $1,3 nil 8086 +rcr rm16x,imm8 16 C1 $1,3 $2,8 186 +rcr rm32x,ONE 32 D1 $1,3 nil 386 +rcr rm32x,REG_CL 32 D3 $1,3 nil 386 +rcr rm32x,imm8 32 C1 $1,3 $2,8 386 +rol rm8x,ONE nil D0 $1,0 nil 8086 +rol rm8x,REG_CL nil D2 $1,0 nil 8086 +rol rm8x,imm8 nil C0 $1,0 $2,8 186 +rol rm16x,ONE 16 D1 $1,0 nil 8086 +rol rm16x,REG_CL 16 D3 $1,0 nil 8086 +rol rm16x,imm8 16 C1 $1,0 $2,8 186 +rol rm32x,ONE 32 D1 $1,0 nil 386 +rol rm32x,REG_CL 32 D3 $1,0 nil 386 +rol rm32x,imm8 32 C1 $1,0 $2,8 386 +ror rm8x,ONE nil D0 $1,1 nil 8086 +ror rm8x,REG_CL nil D2 $1,1 nil 8086 +ror rm8x,imm8 nil C0 $1,1 $2,8 186 +ror rm16x,ONE 16 D1 $1,1 nil 8086 +ror rm16x,REG_CL 16 D3 $1,1 nil 8086 +ror rm16x,imm8 16 C1 $1,1 $2,8 186 +ror rm32x,ONE 32 D1 $1,1 nil 386 +ror rm32x,REG_CL 32 D3 $1,1 nil 386 +ror rm32x,imm8 32 C1 $1,1 $2,8 386 +rcpps XMMREG,rm128 nil 0F,F3 $2,$1 nil KATMAI,SSE ; rcpss -rdmsr nil nil 0F,32 nil nil P5,PRIV -rdpmc nil nil 0F,33 nil nil P6 -rdtsc nil nil 0F,31 nil nil P5 +rdmsr nil nil 0F,32 nil nil P5,PRIV +rdpmc nil nil 0F,33 nil nil P6 +rdtsc nil nil 0F,31 nil nil P5 :ret retn -retn nil nil C3 nil nil 8086 -retf nil nil CB nil nil 8086 -retn imm16 nil C2 nil $1,16 8086 -retf imm16 nil CA nil $1,16 8086 -rsm nil nil 0F,AA nil nil P5,SMM -rsqrtps XMMREG,rm128 nil 0F,52 $2,$1 nil KATMAI,SSE +retn nil nil C3 nil nil 8086 +retf nil nil CB nil nil 8086 +retn imm16 nil C2 nil $1,16 8086 +retf imm16 nil CA nil $1,16 8086 +rsm nil nil 0F,AA nil nil P5,SMM +rsqrtps XMMREG,rm128 nil 0F,52 $2,$1 nil KATMAI,SSE rsqrtss XMMREG,rm128 nil F3,0F,52 $2,$1 nil KATMAI,SSE -sahf nil nil 9E nil nil 8086 -sal rm8x,ONE nil D0 $1,4 nil 8086 -sal rm8x,REG_CL nil D2 $1,4 nil 8086 -sal rm8x,imm8 nil C0 $1,4 $2,8 186 -sal rm16x,ONE 16 D1 $1,4 nil 8086 -sal rm16x,REG_CL 16 D3 $1,4 nil 8086 -sal rm16x,imm8 16 C1 $1,4 $2,8 186 -sal rm32x,ONE 32 D1 $1,4 nil 386 -sal rm32x,REG_CL 32 D3 $1,4 nil 386 -sal rm32x,imm8 32 C1 $1,4 $2,8 386 -sar rm8x,ONE nil D0 $1,7 nil 8086 -sar rm8x,REG_CL nil D2 $1,7 nil 8086 -sar rm8x,imm8 nil C0 $1,7 $2,8 186 -sar rm16x,ONE 16 D1 $1,7 nil 8086 -sar rm16x,REG_CL 16 D3 $1,7 nil 8086 -sar rm16x,imm8 16 C1 $1,7 $2,8 186 -sar rm32x,ONE 32 D1 $1,7 nil 386 -sar rm32x,REG_CL 32 D3 $1,7 nil 386 -sar rm32x,imm8 32 C1 $1,7 $2,8 386 -shl rm8x,ONE nil D0 $1,4 nil 8086 -shl rm8x,REG_CL nil D2 $1,4 nil 8086 -shl rm8x,imm8 nil C0 $1,4 $2,8 186 -shl rm16x,ONE 16 D1 $1,4 nil 8086 -shl rm16x,REG_CL 16 D3 $1,4 nil 8086 -shl rm16x,imm8 16 C1 $1,4 $2,8 186 -shl rm32x,ONE 32 D1 $1,4 nil 386 -shl rm32x,REG_CL 32 D3 $1,4 nil 386 -shl rm32x,imm8 32 C1 $1,4 $2,8 386 -shr rm8x,ONE nil D0 $1,5 nil 8086 -shr rm8x,REG_CL nil D2 $1,5 nil 8086 -shr rm8x,imm8 nil C0 $1,5 $2,8 186 -shr rm16x,ONE 16 D1 $1,5 nil 8086 -shr rm16x,REG_CL 16 D3 $1,5 nil 8086 -shr rm16x,imm8 16 C1 $1,5 $2,8 186 -shr rm32x,ONE 32 D1 $1,5 nil 386 -shr rm32x,REG_CL 32 D3 $1,5 nil 386 -shr rm32x,imm8 32 C1 $1,5 $2,8 386 -sbb REG_AL,imm8 nil 1C nil $2,8 8086 -sbb REG_AX,imm16 16 1D nil $2,16 8086 -sbb REG_EAX,imm32 32 1D nil $2,32 386 -sbb reg8,imm nil 80 $1r,3 $2,8 8086 -sbb mem8x,imm nil 80 $1,3 $2,8 8086 -sbb reg8,imm8x nil 80 $1r,3 $2,8 8086 -sbb mem,imm8x nil 80 $1,3 $2,8 8086 -sbb reg16,imm 16 81 $1r,3 $2,16 8086 -sbb mem16x,imm 16 81 $1,3 $2,16 8086 -sbb reg16,imm16x 16 81 $1r,3 $2,16 8086 -sbb mem,imm16x 16 81 $1,3 $2,16 8086 -sbb reg32,imm 32 81 $1r,3 $2,32 386 -sbb mem32x,imm 32 81 $1,3 $2,32 386 -sbb reg32,imm32x 32 81 $1r,3 $2,32 386 -sbb mem,imm32x 32 81 $1,3 $2,32 386 -sbb reg16,imm8x 16 83 $1r,3 $2,8s 8086 -sbb mem16x,imm8x 16 83 $1,3 $2,8s 8086 -sbb reg32,imm8x 32 83 $1r,3 $2,8s 386 -sbb mem32x,imm8x 32 83 $1,3 $2,8s 386 +sahf nil nil 9E nil nil 8086 +sal rm8x,ONE nil D0 $1,4 nil 8086 +sal rm8x,REG_CL nil D2 $1,4 nil 8086 +sal rm8x,imm8 nil C0 $1,4 $2,8 186 +sal rm16x,ONE 16 D1 $1,4 nil 8086 +sal rm16x,REG_CL 16 D3 $1,4 nil 8086 +sal rm16x,imm8 16 C1 $1,4 $2,8 186 +sal rm32x,ONE 32 D1 $1,4 nil 386 +sal rm32x,REG_CL 32 D3 $1,4 nil 386 +sal rm32x,imm8 32 C1 $1,4 $2,8 386 +sar rm8x,ONE nil D0 $1,7 nil 8086 +sar rm8x,REG_CL nil D2 $1,7 nil 8086 +sar rm8x,imm8 nil C0 $1,7 $2,8 186 +sar rm16x,ONE 16 D1 $1,7 nil 8086 +sar rm16x,REG_CL 16 D3 $1,7 nil 8086 +sar rm16x,imm8 16 C1 $1,7 $2,8 186 +sar rm32x,ONE 32 D1 $1,7 nil 386 +sar rm32x,REG_CL 32 D3 $1,7 nil 386 +sar rm32x,imm8 32 C1 $1,7 $2,8 386 +shl rm8x,ONE nil D0 $1,4 nil 8086 +shl rm8x,REG_CL nil D2 $1,4 nil 8086 +shl rm8x,imm8 nil C0 $1,4 $2,8 186 +shl rm16x,ONE 16 D1 $1,4 nil 8086 +shl rm16x,REG_CL 16 D3 $1,4 nil 8086 +shl rm16x,imm8 16 C1 $1,4 $2,8 186 +shl rm32x,ONE 32 D1 $1,4 nil 386 +shl rm32x,REG_CL 32 D3 $1,4 nil 386 +shl rm32x,imm8 32 C1 $1,4 $2,8 386 +shr rm8x,ONE nil D0 $1,5 nil 8086 +shr rm8x,REG_CL nil D2 $1,5 nil 8086 +shr rm8x,imm8 nil C0 $1,5 $2,8 186 +shr rm16x,ONE 16 D1 $1,5 nil 8086 +shr rm16x,REG_CL 16 D3 $1,5 nil 8086 +shr rm16x,imm8 16 C1 $1,5 $2,8 186 +shr rm32x,ONE 32 D1 $1,5 nil 386 +shr rm32x,REG_CL 32 D3 $1,5 nil 386 +shr rm32x,imm8 32 C1 $1,5 $2,8 386 +sbb REG_AL,imm8 nil 1C nil $2,8 8086 +sbb REG_AX,imm16 16 1D nil $2,16 8086 +sbb REG_EAX,imm32 32 1D nil $2,32 386 +sbb reg8,imm nil 80 $1r,3 $2,8 8086 +sbb mem8x,imm nil 80 $1,3 $2,8 8086 +sbb reg8,imm8x nil 80 $1r,3 $2,8 8086 +sbb mem,imm8x nil 80 $1,3 $2,8 8086 +sbb reg16,imm 16 81 $1r,3 $2,16 8086 +sbb mem16x,imm 16 81 $1,3 $2,16 8086 +sbb reg16,imm16x 16 81 $1r,3 $2,16 8086 +sbb mem,imm16x 16 81 $1,3 $2,16 8086 +sbb reg32,imm 32 81 $1r,3 $2,32 386 +sbb mem32x,imm 32 81 $1,3 $2,32 386 +sbb reg32,imm32x 32 81 $1r,3 $2,32 386 +sbb mem,imm32x 32 81 $1,3 $2,32 386 +sbb reg16,imm8x 16 83 $1r,3 $2,8s 8086 +sbb mem16x,imm8x 16 83 $1,3 $2,8s 8086 +sbb reg32,imm8x 32 83 $1r,3 $2,8s 386 +sbb mem32x,imm8x 32 83 $1,3 $2,8s 386 ; opcode arbitrarily picked for next 3 (could be 1A/1B instead of 18/19). -sbb reg8,reg8 nil 18 $1r,$2 nil 8086 -sbb reg16,reg16 16 19 $1r,$2 nil 8086 -sbb reg32,reg32 32 19 $1r,$2 nil 386 -sbb mem,reg8 nil 18 $1,$2 nil 8086 -sbb mem8x,reg8 nil 18 $1,$2 nil 8086 -sbb mem,reg16 16 19 $1,$2 nil 8086 -sbb mem16x,reg16 16 19 $1,$2 nil 8086 -sbb mem,reg32 32 19 $1,$2 nil 386 -sbb mem32x,reg32 32 19 $1,$2 nil 386 -sbb reg8,mem8 nil 1A $2,$1 nil 8086 -sbb reg16,mem16 16 1B $2,$1 nil 8086 -sbb reg32,mem32 32 1B $2,$1 nil 386 -scasb nil nil AE nil nil 8086 -scasw nil 16 AF nil nil 8086 -scasd nil 32 AF nil nil 386 +sbb reg8,reg8 nil 18 $1r,$2 nil 8086 +sbb reg16,reg16 16 19 $1r,$2 nil 8086 +sbb reg32,reg32 32 19 $1r,$2 nil 386 +sbb mem,reg8 nil 18 $1,$2 nil 8086 +sbb mem8x,reg8 nil 18 $1,$2 nil 8086 +sbb mem,reg16 16 19 $1,$2 nil 8086 +sbb mem16x,reg16 16 19 $1,$2 nil 8086 +sbb mem,reg32 32 19 $1,$2 nil 386 +sbb mem32x,reg32 32 19 $1,$2 nil 386 +sbb reg8,mem8 nil 1A $2,$1 nil 8086 +sbb reg16,mem16 16 1B $2,$1 nil 8086 +sbb reg32,mem32 32 1B $2,$1 nil 386 +scasb nil nil AE nil nil 8086 +scasw nil 16 AF nil nil 8086 +scasd nil 32 AF nil nil 386 ; setcc -;sfence nil nil 0F,AE ,7? -sgdt mem nil 0F,01 $1,0 nil 286 -sidt mem nil 0F,01 $1,1 nil 286 +;sfence nil nil 0F,AE ,7? +sgdt mem nil 0F,01 $1,0 nil 286 +sidt mem nil 0F,01 $1,1 nil 286 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -shld reg16,reg16,imm8 16 0F,A4 $1r,$2 $3,8 386 -shld mem,reg16,imm8 16 0F,A4 $1,$2 $3,8 386 -shld mem16x,reg16,imm8 16 0F,A4 $1,$2 $3,8 386 +shld reg16,reg16,imm8 16 0F,A4 $1r,$2 $3,8 386 +shld mem,reg16,imm8 16 0F,A4 $1,$2 $3,8 386 +shld mem16x,reg16,imm8 16 0F,A4 $1,$2 $3,8 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -shld reg16,reg16,REG_CL 16 0F,A5 $1r,$2 nil 386 -shld mem,reg16,REG_CL 16 0F,A5 $1,$2 nil 386 -shld mem16x,reg16,REG_CL 16 0F,A5 $1,$2 nil 386 +shld reg16,reg16,REG_CL 16 0F,A5 $1r,$2 nil 386 +shld mem,reg16,REG_CL 16 0F,A5 $1,$2 nil 386 +shld mem16x,reg16,REG_CL 16 0F,A5 $1,$2 nil 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -shld reg32,reg32,imm8 32 0F,A4 $1r,$2 $3,8 386 -shld mem,reg32,imm8 32 0F,A4 $1,$2 $3,8 386 -shld mem32x,reg32,imm8 32 0F,A4 $1,$2 $3,8 386 +shld reg32,reg32,imm8 32 0F,A4 $1r,$2 $3,8 386 +shld mem,reg32,imm8 32 0F,A4 $1,$2 $3,8 386 +shld mem32x,reg32,imm8 32 0F,A4 $1,$2 $3,8 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -shld reg32,reg32,REG_CL 32 0F,A5 $1r,$2 nil 386 -shld mem,reg32,REG_CL 32 0F,A5 $1,$2 nil 386 -shld mem32x,reg32,REG_CL 32 0F,A5 $1,$2 nil 386 +shld reg32,reg32,REG_CL 32 0F,A5 $1r,$2 nil 386 +shld mem,reg32,REG_CL 32 0F,A5 $1,$2 nil 386 +shld mem32x,reg32,REG_CL 32 0F,A5 $1,$2 nil 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -shrd reg16,reg16,imm8 16 0F,AC $1r,$2 $3,8 386 -shrd mem,reg16,imm8 16 0F,AC $1,$2 $3,8 386 -shrd mem16x,reg16,imm8 16 0F,AC $1,$2 $3,8 386 +shrd reg16,reg16,imm8 16 0F,AC $1r,$2 $3,8 386 +shrd mem,reg16,imm8 16 0F,AC $1,$2 $3,8 386 +shrd mem16x,reg16,imm8 16 0F,AC $1,$2 $3,8 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -shrd reg16,reg16,REG_CL 16 0F,AD $1r,$2 nil 386 -shrd mem,reg16,REG_CL 16 0F,AD $1,$2 nil 386 -shrd mem16x,reg16,REG_CL 16 0F,AD $1,$2 nil 386 +shrd reg16,reg16,REG_CL 16 0F,AD $1r,$2 nil 386 +shrd mem,reg16,REG_CL 16 0F,AD $1,$2 nil 386 +shrd mem16x,reg16,REG_CL 16 0F,AD $1,$2 nil 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -shrd reg32,reg32,imm8 32 0F,AC $1r,$2 $3,8 386 -shrd mem,reg32,imm8 32 0F,AC $1,$2 $3,8 386 -shrd mem32x,reg32,imm8 32 0F,AC $1,$2 $3,8 386 +shrd reg32,reg32,imm8 32 0F,AC $1r,$2 $3,8 386 +shrd mem,reg32,imm8 32 0F,AC $1,$2 $3,8 386 +shrd mem32x,reg32,imm8 32 0F,AC $1,$2 $3,8 386 ; arbitrary encoding, picked $1r,$2 instead of $2r, $1 -shrd reg32,reg32,REG_CL 32 0F,AD $1r,$2 nil 386 -shrd mem,reg32,REG_CL 32 0F,AD $1,$2 nil 386 -shrd mem32x,reg32,REG_CL 32 0F,AD $1,$2 nil 386 +shrd reg32,reg32,REG_CL 32 0F,AD $1r,$2 nil 386 +shrd mem,reg32,REG_CL 32 0F,AD $1,$2 nil 386 +shrd mem32x,reg32,REG_CL 32 0F,AD $1,$2 nil 386 shufpd XMMREG,rm128,imm8 nil 66,0F,C6 $2,$1 $3,8 P4,SSE2 -shufps XMMREG,rm128,imm8 nil 0F,C6 $2,$1 $3,8 KATMAI,SSE -sldt mem1632 nil 0F,00 $1,0 nil 286 -sldt reg16 16 0F,00 $1r,0 nil 286 -sldt reg32 32 0F,00 $1r,0 nil 386 -smsw mem1632 nil 0F,01 $1,4 nil 286 -smsw reg16 16 0F,01 $1r,4 nil 286 -smsw reg32 32 0F,01 $1r,4 nil 386 +shufps XMMREG,rm128,imm8 nil 0F,C6 $2,$1 $3,8 KATMAI,SSE +sldt mem1632 nil 0F,00 $1,0 nil 286 +sldt reg16 16 0F,00 $1r,0 nil 286 +sldt reg32 32 0F,00 $1r,0 nil 386 +smsw mem1632 nil 0F,01 $1,4 nil 286 +smsw reg16 16 0F,01 $1r,4 nil 286 +smsw reg32 32 0F,01 $1r,4 nil 386 sqrtpd XMMREG,rm128 nil 66,0F,51 $2,$1 nil P4,SSE2 -sqrtps XMMREG,rm128 nil 0F,51 $2,$1 nil KATMAI,SSE +sqrtps XMMREG,rm128 nil 0F,51 $2,$1 nil KATMAI,SSE sqrtsd XMMREG,rm128 nil F2,0F,51 $2,$1 nil P4,SSE2 sqrtss XMMREG,rm128 nil F3,0F,51 $2,$1 nil P4,SSE2 -stc nil nil F9 nil nil 8086 -std nil nil FD nil nil 8086 -sti nil nil FB nil nil 8086 -stmxcsr mem32 nil 0F,AE $1,3 nil KATMAI,SSE -stosb nil nil AA nil nil 8086 -stosw nil 16 AB nil nil 8086 -stosd nil 32 AB nil nil 386 -str rm16 nil 0F,00 $1,1 nil 286,PROT -sub REG_AL,imm8 nil 2C nil $2,8 8086 -sub REG_AX,imm16 16 2D nil $2,16 8086 -sub REG_EAX,imm32 32 2D nil $2,32 386 -sub reg8,imm nil 80 $1r,5 $2,8 8086 -sub mem8x,imm nil 80 $1,5 $2,8 8086 -sub reg8,imm8x nil 80 $1r,5 $2,8 8086 -sub mem,imm8x nil 80 $1,5 $2,8 8086 -sub reg16,imm 16 81 $1r,5 $2,16 8086 -sub mem16x,imm 16 81 $1,5 $2,16 8086 -sub reg16,imm16x 16 81 $1r,5 $2,16 8086 -sub mem,imm16x 16 81 $1,5 $2,16 8086 -sub reg32,imm 32 81 $1r,5 $2,32 386 -sub mem32x,imm 32 81 $1,5 $2,32 386 -sub reg32,imm32x 32 81 $1r,5 $2,32 386 -sub mem,imm32x 32 81 $1,5 $2,32 386 -sub reg16,imm8x 16 83 $1r,5 $2,8s 8086 -sub mem16x,imm8x 16 83 $1,5 $2,8s 8086 -sub reg32,imm8x 32 83 $1r,5 $2,8s 386 -sub mem32x,imm8x 32 83 $1,5 $2,8s 386 +stc nil nil F9 nil nil 8086 +std nil nil FD nil nil 8086 +sti nil nil FB nil nil 8086 +stmxcsr mem32 nil 0F,AE $1,3 nil KATMAI,SSE +stosb nil nil AA nil nil 8086 +stosw nil 16 AB nil nil 8086 +stosd nil 32 AB nil nil 386 +str rm16 nil 0F,00 $1,1 nil 286,PROT +sub REG_AL,imm8 nil 2C nil $2,8 8086 +sub REG_AX,imm16 16 2D nil $2,16 8086 +sub REG_EAX,imm32 32 2D nil $2,32 386 +sub reg8,imm nil 80 $1r,5 $2,8 8086 +sub mem8x,imm nil 80 $1,5 $2,8 8086 +sub reg8,imm8x nil 80 $1r,5 $2,8 8086 +sub mem,imm8x nil 80 $1,5 $2,8 8086 +sub reg16,imm 16 81 $1r,5 $2,16 8086 +sub mem16x,imm 16 81 $1,5 $2,16 8086 +sub reg16,imm16x 16 81 $1r,5 $2,16 8086 +sub mem,imm16x 16 81 $1,5 $2,16 8086 +sub reg32,imm 32 81 $1r,5 $2,32 386 +sub mem32x,imm 32 81 $1,5 $2,32 386 +sub reg32,imm32x 32 81 $1r,5 $2,32 386 +sub mem,imm32x 32 81 $1,5 $2,32 386 +sub reg16,imm8x 16 83 $1r,5 $2,8s 8086 +sub mem16x,imm8x 16 83 $1,5 $2,8s 8086 +sub reg32,imm8x 32 83 $1r,5 $2,8s 386 +sub mem32x,imm8x 32 83 $1,5 $2,8s 386 ; opcode arbitrarily picked for next 3 (could be 2A/2B instead of 28/29). -sub reg8,reg8 nil 28 $1r,$2 nil 8086 -sub reg16,reg16 16 29 $1r,$2 nil 8086 -sub reg32,reg32 32 29 $1r,$2 nil 386 -sub mem,reg8 nil 28 $1,$2 nil 8086 -sub mem8x,reg8 nil 28 $1,$2 nil 8086 -sub mem,reg16 16 29 $1,$2 nil 8086 -sub mem16x,reg16 16 29 $1,$2 nil 8086 -sub mem,reg32 32 29 $1,$2 nil 386 -sub mem32x,reg32 32 29 $1,$2 nil 386 -sub reg8,mem8 nil 2A $2,$1 nil 8086 -sub reg16,mem16 16 2B $2,$1 nil 8086 -sub reg32,mem32 32 2B $2,$1 nil 386 +sub reg8,reg8 nil 28 $1r,$2 nil 8086 +sub reg16,reg16 16 29 $1r,$2 nil 8086 +sub reg32,reg32 32 29 $1r,$2 nil 386 +sub mem,reg8 nil 28 $1,$2 nil 8086 +sub mem8x,reg8 nil 28 $1,$2 nil 8086 +sub mem,reg16 16 29 $1,$2 nil 8086 +sub mem16x,reg16 16 29 $1,$2 nil 8086 +sub mem,reg32 32 29 $1,$2 nil 386 +sub mem32x,reg32 32 29 $1,$2 nil 386 +sub reg8,mem8 nil 2A $2,$1 nil 8086 +sub reg16,mem16 16 2B $2,$1 nil 8086 +sub reg32,mem32 32 2B $2,$1 nil 386 subpd XMMREG,rm128 nil 66,0F,5C $2,$1 nil P4,SSE2 -subps XMMREG,rm128 nil 0F,5C $2,$1 nil KATMAI,SSE +subps XMMREG,rm128 nil 0F,5C $2,$1 nil KATMAI,SSE subsd XMMREG,rm128 nil F2,0F,5C $2,$1 nil P4,SSE2 subss XMMREG,rm128 nil F3,0F,5C $2,$1 nil P4,SSE2 -sysenter nil nil 0F,34 nil nil P6 -sysexit nil nil 0F,35 nil nil P6,PRIV -test REG_AL,imm8 nil A8 nil $2,8 8086 -test REG_AX,imm16 16 A9 nil $2,16 8086 -test REG_EAX,imm32 32 A9 nil $2,32 386 -test reg8,imm nil F6 $1r,0 $2,8 8086 -test mem8x,imm nil F6 $1,0 $2,8 8086 -test reg8,imm8x nil F6 $1r,0 $2,8 8086 -test mem,imm8x nil F6 $1,0 $2,8 8086 -test reg16,imm 16 F7 $1r,0 $2,16 8086 -test mem16x,imm 16 F7 $1,0 $2,16 8086 -test reg16,imm16x 16 F7 $1r,0 $2,16 8086 -test mem,imm16x 16 F7 $1,0 $2,16 8086 -test reg32,imm 32 F7 $1r,0 $2,32 386 -test mem32x,imm 32 F7 $1,0 $2,32 386 -test reg32,imm32x 32 F7 $1r,0 $2,32 386 -test mem,imm32x 32 F7 $1,0 $2,32 386 +sysenter nil nil 0F,34 nil nil P6 +sysexit nil nil 0F,35 nil nil P6,PRIV +test REG_AL,imm8 nil A8 nil $2,8 8086 +test REG_AX,imm16 16 A9 nil $2,16 8086 +test REG_EAX,imm32 32 A9 nil $2,32 386 +test reg8,imm nil F6 $1r,0 $2,8 8086 +test mem8x,imm nil F6 $1,0 $2,8 8086 +test reg8,imm8x nil F6 $1r,0 $2,8 8086 +test mem,imm8x nil F6 $1,0 $2,8 8086 +test reg16,imm 16 F7 $1r,0 $2,16 8086 +test mem16x,imm 16 F7 $1,0 $2,16 8086 +test reg16,imm16x 16 F7 $1r,0 $2,16 8086 +test mem,imm16x 16 F7 $1,0 $2,16 8086 +test reg32,imm 32 F7 $1r,0 $2,32 386 +test mem32x,imm 32 F7 $1,0 $2,32 386 +test reg32,imm32x 32 F7 $1r,0 $2,32 386 +test mem,imm32x 32 F7 $1,0 $2,32 386 ; opcode arbitrarily picked for next 3 (could be 32/33 instead of 30/31). -test reg8,reg8 nil 84 $1r,$2 nil 8086 -test reg16,reg16 16 85 $1r,$2 nil 8086 -test reg32,reg32 32 85 $1r,$2 nil 386 -test mem,reg8 nil 84 $1,$2 nil 8086 -test mem8x,reg8 nil 84 $1,$2 nil 8086 -test mem,reg16 16 85 $1,$2 nil 8086 -test mem16x,reg16 16 85 $1,$2 nil 8086 -test mem,reg32 32 85 $1,$2 nil 386 -test mem32x,reg32 32 85 $1,$2 nil 386 -test reg8,mem8 nil 84 $2,$1 nil 8086 -test reg16,mem16 16 85 $2,$1 nil 8086 -test reg32,mem32 32 85 $2,$1 nil 386 +test reg8,reg8 nil 84 $1r,$2 nil 8086 +test reg16,reg16 16 85 $1r,$2 nil 8086 +test reg32,reg32 32 85 $1r,$2 nil 386 +test mem,reg8 nil 84 $1,$2 nil 8086 +test mem8x,reg8 nil 84 $1,$2 nil 8086 +test mem,reg16 16 85 $1,$2 nil 8086 +test mem16x,reg16 16 85 $1,$2 nil 8086 +test mem,reg32 32 85 $1,$2 nil 386 +test mem32x,reg32 32 85 $1,$2 nil 386 +test reg8,mem8 nil 84 $2,$1 nil 8086 +test reg16,mem16 16 85 $2,$1 nil 8086 +test reg32,mem32 32 85 $2,$1 nil 386 ucomisd XMMREG,rm128 nil 66,0F,2E $2,$1 nil P4,SSE2 -ucomiss XMMREG,rm128 nil 0F,2E $2,$1 nil KATMAI,SSE -ud2 nil nil 0F,0B nil nil 286 +ucomiss XMMREG,rm128 nil 0F,2E $2,$1 nil KATMAI,SSE +ud2 nil nil 0F,0B nil nil 286 unpckhpd XMMREG,rm128 nil 66,0F,15 $2,$1 nil P4,SSE2 -unpckhps XMMREG,rm128 nil 0F,15 $2,$1 nil KATMAI,SSE +unpckhps XMMREG,rm128 nil 0F,15 $2,$1 nil KATMAI,SSE unpcklpd XMMREG,rm128 nil 66,0F,14 $2,$1 nil P4,SSE2 -unpcklps XMMREG,rm128 nil 0F,14 $2,$1 nil KATMAI,SSE -verr rm16 nil 0F,00 $1,4 nil 286,PROT -verw rm16 nil 0F,00 $1,5 nil 286,PROT -wait nil nil 9B nil nil 8086 +unpcklps XMMREG,rm128 nil 0F,14 $2,$1 nil KATMAI,SSE +verr rm16 nil 0F,00 $1,4 nil 286,PROT +verw rm16 nil 0F,00 $1,5 nil 286,PROT +wait nil nil 9B nil nil 8086 :fwait wait -wbinvd nil nil 0F,09 nil nil 486,PRIV -wrmsr nil nil 0F,30 nil nil P5,PRIV +wbinvd nil nil 0F,09 nil nil 486,PRIV +wrmsr nil nil 0F,30 nil nil P5,PRIV ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -xadd reg8,reg8 nil 0F,C0 $1r,$2 nil 486 -xadd mem,reg8 nil 0F,C0 $1,$2 nil 486 -xadd mem8x,reg8 nil 0F,C0 $1,$2 nil 486 -xadd reg8,mem8 nil 0F,C0 $2,$1 nil 486 +xadd reg8,reg8 nil 0F,C0 $1r,$2 nil 486 +xadd mem,reg8 nil 0F,C0 $1,$2 nil 486 +xadd mem8x,reg8 nil 0F,C0 $1,$2 nil 486 +xadd reg8,mem8 nil 0F,C0 $2,$1 nil 486 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -xadd reg16,reg16 16 0F,C1 $1r,$2 nil 486 -xadd mem,reg16 16 0F,C1 $1,$2 nil 486 -xadd mem16x,reg16 16 0F,C1 $1,$2 nil 486 -xadd reg16,mem16 16 0F,C1 $2,$1 nil 486 +xadd reg16,reg16 16 0F,C1 $1r,$2 nil 486 +xadd mem,reg16 16 0F,C1 $1,$2 nil 486 +xadd mem16x,reg16 16 0F,C1 $1,$2 nil 486 +xadd reg16,mem16 16 0F,C1 $2,$1 nil 486 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -xadd reg32,reg32 32 0F,C1 $1r,$2 nil 486 -xadd mem,reg32 32 0F,C1 $1,$2 nil 486 -xadd mem32x,reg32 32 0F,C1 $1,$2 nil 486 -xadd reg32,mem32 32 0F,C1 $2,$1 nil 486 -;xchg REG_AX,reg16 16 90+$2 nil nil 8086 -;xchg reg16,REG_AX 16 90+$1 nil nil 8086 -;xchg REG_EAX,reg32 32 90+$2 nil nil 386 -;xchg reg32,REG_EAX 32 90+$1 nil nil 386 +xadd reg32,reg32 32 0F,C1 $1r,$2 nil 486 +xadd mem,reg32 32 0F,C1 $1,$2 nil 486 +xadd mem32x,reg32 32 0F,C1 $1,$2 nil 486 +xadd reg32,mem32 32 0F,C1 $2,$1 nil 486 +;xchg REG_AX,reg16 16 90+$2 nil nil 8086 +;xchg reg16,REG_AX 16 90+$1 nil nil 8086 +;xchg REG_EAX,reg32 32 90+$2 nil nil 386 +;xchg reg32,REG_EAX 32 90+$1 nil nil 386 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -xchg reg8,reg8 nil 86 $1r,$2 nil 8086 -xchg mem,reg8 nil 86 $1,$2 nil 8086 -xchg mem8x,reg8 nil 86 $1,$2 nil 8086 -xchg reg8,mem8 nil 86 $2,$1 nil 8086 +xchg reg8,reg8 nil 86 $1r,$2 nil 8086 +xchg mem,reg8 nil 86 $1,$2 nil 8086 +xchg mem8x,reg8 nil 86 $1,$2 nil 8086 +xchg reg8,mem8 nil 86 $2,$1 nil 8086 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -xchg reg16,reg16 16 87 $1r,$2 nil 8086 -xchg mem,reg16 16 87 $1,$2 nil 8086 -xchg mem16x,reg16 16 87 $1,$2 nil 8086 -xchg reg16,mem16 16 87 $2,$1 nil 8086 +xchg reg16,reg16 16 87 $1r,$2 nil 8086 +xchg mem,reg16 16 87 $1,$2 nil 8086 +xchg mem16x,reg16 16 87 $1,$2 nil 8086 +xchg reg16,mem16 16 87 $2,$1 nil 8086 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -xchg reg32,reg32 32 87 $1r,$2 nil 386 -xchg mem,reg32 32 87 $1,$2 nil 386 -xchg mem32x,reg32 32 87 $1,$2 nil 386 -xchg reg32,mem32 32 87 $2,$1 nil 386 +xchg reg32,reg32 32 87 $1r,$2 nil 386 +xchg mem,reg32 32 87 $1,$2 nil 386 +xchg mem32x,reg32 32 87 $1,$2 nil 386 +xchg reg32,mem32 32 87 $2,$1 nil 386 :xlat xlatb -xlatb nil nil D7 nil nil 8086 -xor REG_AL,imm8 nil 34 nil $2,8 8086 -xor REG_AX,imm16 16 35 nil $2,16 8086 -xor REG_EAX,imm32 32 35 nil $2,32 386 -xor reg8,imm nil 80 $1r,6 $2,8 8086 -xor mem8x,imm nil 80 $1,6 $2,8 8086 -xor reg8,imm8x nil 80 $1r,6 $2,8 8086 -xor mem,imm8x nil 80 $1,6 $2,8 8086 -xor reg16,imm 16 81 $1r,6 $2,16 8086 -xor mem16x,imm 16 81 $1,6 $2,16 8086 -xor reg16,imm16x 16 81 $1r,6 $2,16 8086 -xor mem,imm16x 16 81 $1,6 $2,16 8086 -xor reg32,imm 32 81 $1r,6 $2,32 386 -xor mem32x,imm 32 81 $1,6 $2,32 386 -xor reg32,imm32x 32 81 $1r,6 $2,32 386 -xor mem,imm32x 32 81 $1,6 $2,32 386 -xor reg16,imm8x 16 83 $1r,6 $2,8s 8086 -xor mem16x,imm8x 16 83 $1,6 $2,8s 8086 -xor reg32,imm8x 32 83 $1r,6 $2,8s 386 -xor mem32x,imm8x 32 83 $1,6 $2,8s 386 +xlatb nil nil D7 nil nil 8086 +xor REG_AL,imm8 nil 34 nil $2,8 8086 +xor REG_AX,imm16 16 35 nil $2,16 8086 +xor REG_EAX,imm32 32 35 nil $2,32 386 +xor reg8,imm nil 80 $1r,6 $2,8 8086 +xor mem8x,imm nil 80 $1,6 $2,8 8086 +xor reg8,imm8x nil 80 $1r,6 $2,8 8086 +xor mem,imm8x nil 80 $1,6 $2,8 8086 +xor reg16,imm 16 81 $1r,6 $2,16 8086 +xor mem16x,imm 16 81 $1,6 $2,16 8086 +xor reg16,imm16x 16 81 $1r,6 $2,16 8086 +xor mem,imm16x 16 81 $1,6 $2,16 8086 +xor reg32,imm 32 81 $1r,6 $2,32 386 +xor mem32x,imm 32 81 $1,6 $2,32 386 +xor reg32,imm32x 32 81 $1r,6 $2,32 386 +xor mem,imm32x 32 81 $1,6 $2,32 386 +xor reg16,imm8x 16 83 $1r,6 $2,8s 8086 +xor mem16x,imm8x 16 83 $1,6 $2,8s 8086 +xor reg32,imm8x 32 83 $1r,6 $2,8s 386 +xor mem32x,imm8x 32 83 $1,6 $2,8s 386 ; opcode arbitrarily picked for next 3 (could be 32/33 instead of 30/31). -xor reg8,reg8 nil 30 $1r,$2 nil 8086 -xor reg16,reg16 16 31 $1r,$2 nil 8086 -xor reg32,reg32 32 31 $1r,$2 nil 386 -xor mem,reg8 nil 30 $1,$2 nil 8086 -xor mem8x,reg8 nil 30 $1,$2 nil 8086 -xor mem,reg16 16 31 $1,$2 nil 8086 -xor mem16x,reg16 16 31 $1,$2 nil 8086 -xor mem,reg32 32 31 $1,$2 nil 386 -xor mem32x,reg32 32 31 $1,$2 nil 386 -xor reg8,mem8 nil 32 $2,$1 nil 8086 -xor reg16,mem16 16 33 $2,$1 nil 8086 -xor reg32,mem32 32 33 $2,$1 nil 386 +xor reg8,reg8 nil 30 $1r,$2 nil 8086 +xor reg16,reg16 16 31 $1r,$2 nil 8086 +xor reg32,reg32 32 31 $1r,$2 nil 386 +xor mem,reg8 nil 30 $1,$2 nil 8086 +xor mem8x,reg8 nil 30 $1,$2 nil 8086 +xor mem,reg16 16 31 $1,$2 nil 8086 +xor mem16x,reg16 16 31 $1,$2 nil 8086 +xor mem,reg32 32 31 $1,$2 nil 386 +xor mem32x,reg32 32 31 $1,$2 nil 386 +xor reg8,mem8 nil 32 $2,$1 nil 8086 +xor reg16,mem16 16 33 $2,$1 nil 8086 +xor reg32,mem32 32 33 $2,$1 nil 386 xorpd XMMREG,rm128 nil 66,0F,57 $2,$1 nil P4,SSE2 -xorps XMMREG,rm128 nil 0F,57 $2,$1 nil KATMAI,SSE +xorps XMMREG,rm128 nil 0F,57 $2,$1 nil KATMAI,SSE ; ; Obsolete/Undocumented Instructions ; ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -cmpxchg486 reg8,reg8 nil 0F,A6 $1r,$2 nil 486,UNDOC -cmpxchg486 mem,reg8 nil 0F,A6 $1,$2 nil 486,UNDOC -cmpxchg486 mem8x,reg8 nil 0F,A6 $1,$2 nil 486,UNDOC +cmpxchg486 reg8,reg8 nil 0F,A6 $1r,$2 nil 486,UNDOC +cmpxchg486 mem,reg8 nil 0F,A6 $1,$2 nil 486,UNDOC +cmpxchg486 mem8x,reg8 nil 0F,A6 $1,$2 nil 486,UNDOC ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -cmpxchg486 reg16,reg16 16 0F,A7 $1r,$2 nil 486,UNDOC -cmpxchg486 mem,reg16 16 0F,A7 $1,$2 nil 486,UNDOC -cmpxchg486 mem16x,reg16 16 0F,A7 $1,$2 nil 486,UNDOC +cmpxchg486 reg16,reg16 16 0F,A7 $1r,$2 nil 486,UNDOC +cmpxchg486 mem,reg16 16 0F,A7 $1,$2 nil 486,UNDOC +cmpxchg486 mem16x,reg16 16 0F,A7 $1,$2 nil 486,UNDOC ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -cmpxchg486 reg32,reg32 32 0F,A7 $1r,$2 nil 486,UNDOC -cmpxchg486 mem,reg32 32 0F,A7 $1,$2 nil 486,UNDOC -cmpxchg486 mem32x,reg32 32 0F,A7 $1,$2 nil 486,UNDOC +cmpxchg486 reg32,reg32 32 0F,A7 $1r,$2 nil 486,UNDOC +cmpxchg486 mem,reg32 32 0F,A7 $1,$2 nil 486,UNDOC +cmpxchg486 mem32x,reg32 32 0F,A7 $1,$2 nil 486,UNDOC ffreep fpureg nil DF,C0+$1 nil nil P6,FPU,UNDOC -fsetpm nil nil DB,E4 nil nil 286,FPU,OBS +fsetpm nil nil DB,E4 nil nil 286,FPU,OBS ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -ibts reg16,reg16 16 0F,A7 $1r,$2 nil 386,UNDOC,OBS -ibts mem,reg16 16 0F,A7 $1,$2 nil 386,UNDOC,OBS -ibts mem16x,reg16 16 0F,A7 $1,$2 nil 386,UNDOC,OBS +ibts reg16,reg16 16 0F,A7 $1r,$2 nil 386,UNDOC,OBS +ibts mem,reg16 16 0F,A7 $1,$2 nil 386,UNDOC,OBS +ibts mem16x,reg16 16 0F,A7 $1,$2 nil 386,UNDOC,OBS ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -ibts reg32,reg32 32 0F,A7 $1r,$2 nil 386,UNDOC,OBS -ibts mem,reg32 32 0F,A7 $1,$2 nil 386,UNDOC,OBS -ibts mem32x,reg32 32 0F,A7 $1,$2 nil 386,UNDOC,OBS -loadall nil nil 0F,07 nil nil 386,UNDOC -loadall286 nil nil 0F,05 nil nil 286,UNDOC -;pop REG_CS nil 0F nil nil 8086,UNDOC,OBS -salc nil nil D6 nil nil 8086,UNDOC -smi nil nil F1 nil nil 386,UNDOC -ud1 nil nil 0F,B9 nil nil 286,UNDOC +ibts reg32,reg32 32 0F,A7 $1r,$2 nil 386,UNDOC,OBS +ibts mem,reg32 32 0F,A7 $1,$2 nil 386,UNDOC,OBS +ibts mem32x,reg32 32 0F,A7 $1,$2 nil 386,UNDOC,OBS +loadall nil nil 0F,07 nil nil 386,UNDOC +loadall286 nil nil 0F,05 nil nil 286,UNDOC +;pop REG_CS nil 0F nil nil 8086,UNDOC,OBS +salc nil nil D6 nil nil 8086,UNDOC +smi nil nil F1 nil nil 386,UNDOC +ud1 nil nil 0F,B9 nil nil 286,UNDOC ; opcode arbitrarily picked for next 3 (could be 12/13 instead of 10/11). -umov reg8,reg8 nil 0F,10 $1r,$2 nil 386,UNDOC -umov reg16,reg16 16 0F,11 $1r,$2 nil 386,UNDOC -umov reg32,reg32 32 0F,11 $1r,$2 nil 386,UNDOC -umov mem,reg8 nil 0F,10 $1,$2 nil 386,UNDOC -umov mem8x,reg8 nil 0F,10 $1,$2 nil 386,UNDOC -umov mem,reg16 16 0F,11 $1,$2 nil 386,UNDOC -umov mem16x,reg16 16 0F,11 $1,$2 nil 386,UNDOC -umov mem,reg32 32 0F,11 $1,$2 nil 386,UNDOC -umov mem32x,reg32 32 0F,11 $1,$2 nil 386,UNDOC -umov reg8,mem8 nil 0F,12 $2,$1 nil 386,UNDOC -umov reg16,mem16 16 0F,13 $2,$1 nil 386,UNDOC -umov reg32,mem32 32 0F,13 $2,$1 nil 386,UNDOC -xbts reg16,mem16 16 0F,A6 $2,$1 nil 386,UNDOC,OBS -xbts reg32,mem32 32 0F,A6 $2,$1 nil 386,UNDOC,OBS +umov reg8,reg8 nil 0F,10 $1r,$2 nil 386,UNDOC +umov reg16,reg16 16 0F,11 $1r,$2 nil 386,UNDOC +umov reg32,reg32 32 0F,11 $1r,$2 nil 386,UNDOC +umov mem,reg8 nil 0F,10 $1,$2 nil 386,UNDOC +umov mem8x,reg8 nil 0F,10 $1,$2 nil 386,UNDOC +umov mem,reg16 16 0F,11 $1,$2 nil 386,UNDOC +umov mem16x,reg16 16 0F,11 $1,$2 nil 386,UNDOC +umov mem,reg32 32 0F,11 $1,$2 nil 386,UNDOC +umov mem32x,reg32 32 0F,11 $1,$2 nil 386,UNDOC +umov reg8,mem8 nil 0F,12 $2,$1 nil 386,UNDOC +umov reg16,mem16 16 0F,13 $2,$1 nil 386,UNDOC +umov reg32,mem32 32 0F,13 $2,$1 nil 386,UNDOC +xbts reg16,mem16 16 0F,A6 $2,$1 nil 386,UNDOC,OBS +xbts reg32,mem32 32 0F,A6 $2,$1 nil 386,UNDOC,OBS ; ; AMD 3DNow! Instructions ; -femms nil nil 0F,0E nil nil P5,3DNOW,AMD -pavgusb MMXREG,rm64 nil 0F,0F $2,$1 BF,8 P5,3DNOW,AMD -pf2id MMXREG,rm64 nil 0F,0F $2,$1 1D,8 P5,3DNOW,AMD -pf2iw MMXREG,rm64 nil 0F,0F $2,$1 1C,8 ATHLON,3DNOW,AMD -pfacc MMXREG,rm64 nil 0F,0F $2,$1 AE,8 P5,3DNOW,AMD -pfadd MMXREG,rm64 nil 0F,0F $2,$1 9E,8 P5,3DNOW,AMD -pfcmpeq MMXREG,rm64 nil 0F,0F $2,$1 B0,8 P5,3DNOW,AMD -pfcmpge MMXREG,rm64 nil 0F,0F $2,$1 90,8 P5,3DNOW,AMD -pfcmpgt MMXREG,rm64 nil 0F,0F $2,$1 A0,8 P5,3DNOW,AMD -pfmax MMXREG,rm64 nil 0F,0F $2,$1 A4,8 P5,3DNOW,AMD -pfmin MMXREG,rm64 nil 0F,0F $2,$1 94,8 P5,3DNOW,AMD -pfmul MMXREG,rm64 nil 0F,0F $2,$1 B4,8 P5,3DNOW,AMD -pfnacc MMXREG,rm64 nil 0F,0F $2,$1 8A,8 ATHLON,3DNOW,AMD -pfpnacc MMXREG,rm64 nil 0F,0F $2,$1 8E,8 ATHLON,3DNOW,AMD -pfrcp MMXREG,rm64 nil 0F,0F $2,$1 96,8 P5,3DNOW,AMD -pfrcpit1 MMXREG,rm64 nil 0F,0F $2,$1 A6,8 P5,3DNOW,AMD -pfrcpit2 MMXREG,rm64 nil 0F,0F $2,$1 B6,8 P5,3DNOW,AMD -pfrsqit1 MMXREG,rm64 nil 0F,0F $2,$1 A7,8 P5,3DNOW,AMD -pfrsqrt MMXREG,rm64 nil 0F,0F $2,$1 97,8 P5,3DNOW,AMD -pfsub MMXREG,rm64 nil 0F,0F $2,$1 9A,8 P5,3DNOW,AMD -pfsubr MMXREG,rm64 nil 0F,0F $2,$1 AA,8 P5,3DNOW,AMD -pi2fd MMXREG,rm64 nil 0F,0F $2,$1 0D,8 P5,3DNOW,AMD -pi2fw MMXREG,rm64 nil 0F,0F $2,$1 0C,8 ATHLON,3DNOW,AMD -pmulhrwa MMXREG,rm64 nil 0F,0F $2,$1 B7,8 P5,3DNOW,AMD -prefetch mem nil 0F,0D $1,0 nil P5,3DNOW,AMD -prefetchw mem nil 0F,0D $1,1 nil P5,3DNOW,AMD -pswapd MMXREG,rm64 nil 0F,0F $2,$1 BB,8 ATHLON,3DNOW,AMD +femms nil nil 0F,0E nil nil P5,3DNOW,AMD +pavgusb MMXREG,rm64 nil 0F,0F $2,$1 BF,8 P5,3DNOW,AMD +pf2id MMXREG,rm64 nil 0F,0F $2,$1 1D,8 P5,3DNOW,AMD +pf2iw MMXREG,rm64 nil 0F,0F $2,$1 1C,8 ATHLON,3DNOW,AMD +pfacc MMXREG,rm64 nil 0F,0F $2,$1 AE,8 P5,3DNOW,AMD +pfadd MMXREG,rm64 nil 0F,0F $2,$1 9E,8 P5,3DNOW,AMD +pfcmpeq MMXREG,rm64 nil 0F,0F $2,$1 B0,8 P5,3DNOW,AMD +pfcmpge MMXREG,rm64 nil 0F,0F $2,$1 90,8 P5,3DNOW,AMD +pfcmpgt MMXREG,rm64 nil 0F,0F $2,$1 A0,8 P5,3DNOW,AMD +pfmax MMXREG,rm64 nil 0F,0F $2,$1 A4,8 P5,3DNOW,AMD +pfmin MMXREG,rm64 nil 0F,0F $2,$1 94,8 P5,3DNOW,AMD +pfmul MMXREG,rm64 nil 0F,0F $2,$1 B4,8 P5,3DNOW,AMD +pfnacc MMXREG,rm64 nil 0F,0F $2,$1 8A,8 ATHLON,3DNOW,AMD +pfpnacc MMXREG,rm64 nil 0F,0F $2,$1 8E,8 ATHLON,3DNOW,AMD +pfrcp MMXREG,rm64 nil 0F,0F $2,$1 96,8 P5,3DNOW,AMD +pfrcpit1 MMXREG,rm64 nil 0F,0F $2,$1 A6,8 P5,3DNOW,AMD +pfrcpit2 MMXREG,rm64 nil 0F,0F $2,$1 B6,8 P5,3DNOW,AMD +pfrsqit1 MMXREG,rm64 nil 0F,0F $2,$1 A7,8 P5,3DNOW,AMD +pfrsqrt MMXREG,rm64 nil 0F,0F $2,$1 97,8 P5,3DNOW,AMD +pfsub MMXREG,rm64 nil 0F,0F $2,$1 9A,8 P5,3DNOW,AMD +pfsubr MMXREG,rm64 nil 0F,0F $2,$1 AA,8 P5,3DNOW,AMD +pi2fd MMXREG,rm64 nil 0F,0F $2,$1 0D,8 P5,3DNOW,AMD +pi2fw MMXREG,rm64 nil 0F,0F $2,$1 0C,8 ATHLON,3DNOW,AMD +pmulhrwa MMXREG,rm64 nil 0F,0F $2,$1 B7,8 P5,3DNOW,AMD +prefetch mem nil 0F,0D $1,0 nil P5,3DNOW,AMD +prefetchw mem nil 0F,0D $1,1 nil P5,3DNOW,AMD +pswapd MMXREG,rm64 nil 0F,0F $2,$1 BB,8 ATHLON,3DNOW,AMD ; ; Other AMD Instructions ; -syscall nil nil 0F,05 nil nil P6,AMD -sysret nil nil 0F,07 nil nil P6,PRIV,AMD +syscall nil nil 0F,05 nil nil P6,AMD +sysret nil nil 0F,07 nil nil P6,PRIV,AMD ; ; Cyrix Instructions ; -paddsiw MMXREG,rm64 nil 0F,51 $2,$1 nil P5,MMX,CYRIX -paveb MMXREG,rm64 nil 0F,50 $2,$1 nil P5,MMX,CYRIX -pdistib MMXREG,rm64 nil 0F,54 $2,$1 nil P5,MMX,CYRIX -pmachriw MMXREG,mem64 nil 0F,5E $2,$1 nil P5,MMX,CYRIX -pmagw MMXREG,rm64 nil 0F,52 $2,$1 nil P5,MMX,CYRIX -pmulhriw MMXREG,rm64 nil 0F,5D $2,$1 nil P5,MMX,CYRIX -pmulhrwc MMXREG,rm64 nil 0F,59 $2,$1 nil P5,MMX,CYRIX -pmvgezb MMXREG,mem64 nil 0F,5C $2,$1 nil P5,MMX,CYRIX -pmvlzb MMXREG,mem64 nil 0F,5B $2,$1 nil P5,MMX,CYRIX -pmvnzb MMXREG,mem64 nil 0F,5A $2,$1 nil P5,MMX,CYRIX -pmvzb MMXREG,mem64 nil 0F,58 $2,$1 nil P5,MMX,CYRIX -psubsiw MMXREG,rm64 nil 0F,55 $2,$1 nil P5,MMX,CYRIX -rdshr nil nil 0F,36 nil nil P6,CYRIX,SMM -rsdc segreg,mem80 nil 0F,79 $2,$1 nil 486,CYRIX,SMM -rsldt mem80 nil 0F,7B $1,0 nil 486,CYRIX,SMM -rsts mem80 nil 0F,7D $1,0 nil 486,CYRIX,SMM -smint nil nil 0F,38 nil nil P6,CYRIX -smintold nil nil 0F,7E nil nil 486,CYRIX,OBS -svdc mem80,segreg nil 0F,78 $1,$2 nil 486,CYRIX,SMM -svldt mem80 nil 0F,7A $1,0 nil 486,CYRIX,SMM -svts mem80 nil 0F,7C $1,0 nil 486,CYRIX,SMM -wrshr nil nil 0F,37 nil nil P6,CYRIX,SMM +paddsiw MMXREG,rm64 nil 0F,51 $2,$1 nil P5,MMX,CYRIX +paveb MMXREG,rm64 nil 0F,50 $2,$1 nil P5,MMX,CYRIX +pdistib MMXREG,rm64 nil 0F,54 $2,$1 nil P5,MMX,CYRIX +pmachriw MMXREG,mem64 nil 0F,5E $2,$1 nil P5,MMX,CYRIX +pmagw MMXREG,rm64 nil 0F,52 $2,$1 nil P5,MMX,CYRIX +pmulhriw MMXREG,rm64 nil 0F,5D $2,$1 nil P5,MMX,CYRIX +pmulhrwc MMXREG,rm64 nil 0F,59 $2,$1 nil P5,MMX,CYRIX +pmvgezb MMXREG,mem64 nil 0F,5C $2,$1 nil P5,MMX,CYRIX +pmvlzb MMXREG,mem64 nil 0F,5B $2,$1 nil P5,MMX,CYRIX +pmvnzb MMXREG,mem64 nil 0F,5A $2,$1 nil P5,MMX,CYRIX +pmvzb MMXREG,mem64 nil 0F,58 $2,$1 nil P5,MMX,CYRIX +psubsiw MMXREG,rm64 nil 0F,55 $2,$1 nil P5,MMX,CYRIX +rdshr nil nil 0F,36 nil nil P6,CYRIX,SMM +rsdc segreg,mem80 nil 0F,79 $2,$1 nil 486,CYRIX,SMM +rsldt mem80 nil 0F,7B $1,0 nil 486,CYRIX,SMM +rsts mem80 nil 0F,7D $1,0 nil 486,CYRIX,SMM +smint nil nil 0F,38 nil nil P6,CYRIX +smintold nil nil 0F,7E nil nil 486,CYRIX,OBS +svdc mem80,segreg nil 0F,78 $1,$2 nil 486,CYRIX,SMM +svldt mem80 nil 0F,7A $1,0 nil 486,CYRIX,SMM +svts mem80 nil 0F,7C $1,0 nil 486,CYRIX,SMM +wrshr nil nil 0F,37 nil nil P6,CYRIX,SMM