From 0fd21bf57e44fdbc7d1e76d7a52808d33e532fa2 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Thu, 5 Jul 2001 09:39:30 +0000 Subject: [PATCH] Align inst the same as !grp to improve readability. svn path=/trunk/yasm/; revision=114 --- src/instrs.dat | 638 ++++++++++++++++++++++++------------------------- 1 file changed, 319 insertions(+), 319 deletions(-) diff --git a/src/instrs.dat b/src/instrs.dat index e1873a83..95b7bd35 100644 --- a/src/instrs.dat +++ b/src/instrs.dat @@ -1,4 +1,4 @@ -; $Id: instrs.dat,v 1.28 2001/07/05 09:30:04 peter Exp $ +; $Id: instrs.dat,v 1.29 2001/07/05 09:39:30 peter Exp $ ; List of valid instruction/operand combinations ; ; Copyright (C) 2001 Peter Johnson @@ -92,7 +92,7 @@ ; KEY ; ; !Grp Operands OpSize Opcode EffAddr Imm CPU -; Inst Operands OpSize Opcode EffAddr Imm CPU +; Inst Operands OpSize Opcode EffAddr Imm CPU ; Inst!Grp Parameters CPU @0 CPU @1 ; ; Groupings used throughout @@ -111,47 +111,47 @@ ; Move instructions ; ; 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 ; ; Move with sign/zero extend ; @@ -163,34 +163,34 @@ movzx!movszx B6 ; ; Push instructions ; -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 +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!onebyte nil,60 186 pushad!onebyte 20,60 386 pushaw!onebyte 10,60 186 ; ; Pop instructions ; -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 +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!onebyte nil,61 186 popad!onebyte 20,61 386 popaw!onebyte 10,61 186 @@ -198,57 +198,57 @@ popaw!onebyte 10,61 186 ; Exchange instructions ; ; 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 REG_AX,reg16 16 90+$2 nil nil 8086 -xchg reg16,REG_AX 16 90+$1 nil 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 +xchg REG_AX,reg16 16 90+$2 nil nil 8086 +xchg reg16,REG_AX 16 90+$1 nil 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 REG_EAX,reg32 32 90+$2 nil nil 386 -xchg reg32,REG_EAX 32 90+$1 nil nil 386 +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 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 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 ; ; In/out from ports ; -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 -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 +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 +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 ; ; Load effective address ; -lea reg16,mem16 16 8D $2,$1 nil 8086 -lea reg32,mem32 32 8D $2,$1 nil 386 +lea reg16,mem16 16 8D $2,$1 nil 8086 +lea reg32,mem32 32 8D $2,$1 nil 386 ; ; Load segment registers from memory ; -lds reg16,mem 16 C5 $2,$1 nil 8086 -lds reg32,mem 32 C5 $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 -lss reg16,mem 16 0F,B2 $2,$1 nil 386 -lss reg32,mem 32 0F,B2 $2,$1 nil 386 +lds reg16,mem 16 C5 $2,$1 nil 8086 +lds reg32,mem 32 C5 $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 +lss reg16,mem 16 0F,B2 $2,$1 nil 386 +lss reg32,mem 32 0F,B2 $2,$1 nil 386 ; ; Flags register instructions ; @@ -319,31 +319,31 @@ sub!arith 28,5 dec!incdec 1,48 sbb!arith 18,3 cmp!arith 38,7 -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,imm8 nil F6 $1r,0 $2,8 8086 -test mem8x,imm nil F6 $1,0 $2,8 8086 -test mem,imm8x nil F6 $1,0 $2,8 8086 -test reg16,imm16 16 F7 $1r,0 $2,16 8086 -test mem16x,imm 16 F7 $1,0 $2,16 8086 -test mem,imm16x 16 F7 $1,0 $2,16 8086 -test reg32,imm32 32 F7 $1r,0 $2,32 386 -test mem32x,imm 32 F7 $1,0 $2,32 386 -test mem,imm32x 32 F7 $1,0 $2,32 386 +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,imm8 nil F6 $1r,0 $2,8 8086 +test mem8x,imm nil F6 $1,0 $2,8 8086 +test mem,imm8x nil F6 $1,0 $2,8 8086 +test reg16,imm16 16 F7 $1r,0 $2,16 8086 +test mem16x,imm 16 F7 $1,0 $2,16 8086 +test mem,imm16x 16 F7 $1,0 $2,16 8086 +test reg32,imm32 32 F7 $1r,0 $2,32 386 +test mem32x,imm 32 F7 $1,0 $2,32 386 +test mem,imm32x 32 F7 $1,0 $2,32 386 ; arbitrary encoding for next 3, picked $1r,$2 instead of $2r,$1 -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 and!arith 20,4 or!arith 08,1 xor!arith 30,6 @@ -354,10 +354,10 @@ aaa!onebyte nil,37 8086 aas!onebyte nil,3F 8086 daa!onebyte nil,27 8086 das!onebyte nil,2F 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 +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 ; ; Conversion instructions ; @@ -369,19 +369,19 @@ cdq!onebyte 20,99 386 ; Multiplication and division ; mul!groupf6 4 -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 +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 div!groupf6 6 idiv!groupf6 7 ; @@ -430,11 +430,11 @@ shrd!shlrd AC ; call ; jmp ret!onebyte nil,C3 8086 -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 -enter imm16,imm8 nil C8 $1i,16 $2,8 186 +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 +enter imm16,imm8 nil C8 $1i,16 $2,8 186 leave!onebyte nil,C9 186 ; ; Conditional jumps @@ -448,13 +448,13 @@ leave!onebyte nil,C9 186 ; 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 +;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 ; ; Set byte on flag instructions ; @@ -465,7 +465,7 @@ leave!onebyte nil,C9 186 ; NOTE: cmpsd,movsd can't go to !onebyte group because of other variations cmpsb!onebyte nil,A6 8086 cmpsw!onebyte 10,A7 8086 -cmpsd nil 32 A7 nil nil 386 +cmpsd nil 32 A7 nil nil 386 insb!onebyte nil,6C 8086 insw!onebyte 10,6D 8086 insd!onebyte 20,6D 386 @@ -477,7 +477,7 @@ lodsw!onebyte 10,AD 8086 lodsd!onebyte 20,AD 386 movsb!onebyte nil,A4 8086 movsw!onebyte 10,A5 8086 -movsd nil 32 A5 nil nil 386 +movsd nil 32 A5 nil nil 386 scasb!onebyte nil,AE 8086 scasw!onebyte 10,AF 8086 scasd!onebyte 20,AF 386 @@ -514,7 +514,7 @@ bts!bittest AB,5 ; ; Interrupts and operating system instructions ; -int imm8 nil CD nil $1,8 8086 +int imm8 nil CD nil $1,8 8086 int3!onebyte nil,CC 8086 int03!onebyte nil,CC 8086 into!onebyte nil,CE 8086 @@ -522,8 +522,8 @@ iret!onebyte nil,CF 8086 iretw!onebyte 10,CF 8086 iretd!onebyte 20,CF 386 rsm!twobyte 0F,AA P5,SMM -bound reg16,mem16 16 62 $2,$1 nil 186 -bound reg32,mem32 32 62 $2,$1 nil 386 +bound reg16,mem16 16 62 $2,$1 nil 186 +bound reg32,mem32 32 62 $2,$1 nil 386 hlt!onebyte nil,F4 8086,PRIV nop!onebyte nil,90 8086 ; @@ -531,24 +531,24 @@ nop!onebyte nil,90 8086 ; ; 286 rm16 protected mode group (LLDT/LTR/STR/VERR/VERW): !prot286 rm16 nil 0F,00 $1,$0.1 nil 286,PROT,@0 -arpl rm16,reg16 nil 63 $1,$2 nil 286,PROT -lar reg16,rm16 16 0F,02 $2,$1 nil 286,PROT -lar reg32,rm32 32 0F,02 $2,$1 nil 386,PROT +arpl rm16,reg16 nil 63 $1,$2 nil 286,PROT +lar reg16,rm16 16 0F,02 $2,$1 nil 286,PROT +lar reg32,rm32 32 0F,02 $2,$1 nil 386,PROT lgdt!twobytemem 0F,01,2 286,PRIV lidt!twobytemem 0F,01,3 286,PRIV lldt!prot286 2 PRIV -lmsw rm16 nil 0F,01 $1,6 nil 286,PRIV -lsl reg16,rm16 16 0F,03 $2,$1 nil 286,PROT -lsl reg32,rm32 32 0F,03 $2,$1 nil 286,PROT +lmsw rm16 nil 0F,01 $1,6 nil 286,PRIV +lsl reg16,rm16 16 0F,03 $2,$1 nil 286,PROT +lsl reg32,rm32 32 0F,03 $2,$1 nil 286,PROT ltr!prot286 3 PRIV sgdt!twobytemem 0F,01,0 286 sidt!twobytemem 0F,01,1 286 -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 +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 str!prot286 1 verr!prot286 4 verw!prot286 5 @@ -556,35 +556,35 @@ verw!prot286 5 ; Floating point instructions ; ; Load -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 -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 -fbld mem80 nil DF $1,4 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 +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 +fbld mem80 nil DF $1,4 nil 8086,FPU ; Store -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 -fist mem16x nil DF $1,2 nil 8086,FPU -fist mem32x nil DB $1,2 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 +fist mem16x nil DF $1,2 nil 8086,FPU +fist mem32x nil DB $1,2 nil 8086,FPU ; Store (with pop) -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 -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 -fbstp mem80 nil DF $1,6 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 +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 +fbstp mem80 nil DF $1,6 nil 8086,FPU ; Exchange (with ST0) -fxch fpureg nil D9,C8+$1 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 +fxch fpureg nil D9,C8+$1 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 ; Comparisons !fcomg mem32x nil D8 $1,$0.1 nil 8086,FPU !fcomg mem64x nil DC $1,$0.1 nil 8086,FPU @@ -595,12 +595,12 @@ fxch nil nil D9,C9 nil nil 8086,FPU !fcomg2 ST0,fpureg nil $0.1,$0.2+$2 nil nil @0,FPU ; Comparison (without pop) fcom!fcomg 2,D0 -ficom mem16x nil DE $1,2 nil 8086,FPU -ficom mem32x nil DA $1,2 nil 8086,FPU +ficom mem16x nil DE $1,2 nil 8086,FPU +ficom mem32x nil DA $1,2 nil 8086,FPU ; Comparison (with pop) fcomp!fcomg 3,D8 -ficomp mem16x nil DE $1,3 nil 8086,FPU -ficomp mem32x nil DA $1,3 nil 8086,FPU +ficomp mem16x nil DE $1,3 nil 8086,FPU +ficomp mem32x nil DA $1,3 nil 8086,FPU fcompp!twobyte DE,D9 8086,FPU ; Unordered comparison (with pop) fucom!fcomg2 DD,E0 286 @@ -670,13 +670,13 @@ fabs!twobyte D9,E1 8086,FPU ; Processor control fninit!twobyte DB,E3 8086,FPU finit!threebyte 9B,DB,E3 8086,FPU -fldcw mem16 nil D9 $1,5 nil 8086,FPU -fnstcw mem16 nil D9 $1,7 nil 8086,FPU -fstcw mem16 nil 9B,D9 $1,7 nil 8086,FPU -fnstsw mem16 nil DD $1,7 nil 8086,FPU -fnstsw REG_AX nil DF,E0 nil nil 8086,FPU -fstsw mem16 nil 9B,DD $1,7 nil 8086,FPU -fstsw REG_AX nil 9B,DF,E0 nil nil 8086,FPU +fldcw mem16 nil D9 $1,5 nil 8086,FPU +fnstcw mem16 nil D9 $1,7 nil 8086,FPU +fstcw mem16 nil 9B,D9 $1,7 nil 8086,FPU +fnstsw mem16 nil DD $1,7 nil 8086,FPU +fnstsw REG_AX nil DF,E0 nil nil 8086,FPU +fstsw mem16 nil 9B,DD $1,7 nil 8086,FPU +fstsw REG_AX nil 9B,DF,E0 nil nil 8086,FPU fnclex!twobyte DB,E2 8086,FPU fclex!threebyte 9B,DB,E2 8086,FPU fnstenv!onebytemem D9,6 8086,FPU @@ -685,8 +685,8 @@ fldenv!onebytemem D9,4 8086,FPU fnsave!onebytemem DD,6 8086,FPU fsave!twobytemem 9B,DD,6 8086,FPU frstor!onebytemem DD,4 8086,FPU -ffree fpureg nil DD,C0+$1 nil nil 8086,FPU -ffreep fpureg nil DF,C0+$1 nil nil P6,FPU,UNDOC +ffree fpureg nil DD,C0+$1 nil nil 8086,FPU +ffreep fpureg nil DF,C0+$1 nil nil P6,FPU,UNDOC fnop!twobyte D9,D0 8086,FPU fwait!onebyte nil,9B 8086,FPU ; @@ -698,18 +698,18 @@ wait!onebyte nil,9B 8086 ; ; Compare & exchange, exchange & add ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -!cmpxchgxadd reg8,reg8 nil 0F,$0.1 $1r,$2 nil @0 -!cmpxchgxadd mem,reg8 nil 0F,$0.1 $1,$2 nil @0 -!cmpxchgxadd mem8x,reg8 nil 0F,$0.1 $1,$2 nil @0 +!cmpxchgxadd reg8,reg8 nil 0F,$0.1 $1r,$2 nil @0 +!cmpxchgxadd mem,reg8 nil 0F,$0.1 $1,$2 nil @0 +!cmpxchgxadd mem8x,reg8 nil 0F,$0.1 $1,$2 nil @0 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -!cmpxchgxadd reg16,reg16 16 0F,$0.1+1 $1r,$2 nil @0 -!cmpxchgxadd mem,reg16 16 0F,$0.1+1 $1,$2 nil @0 -!cmpxchgxadd mem16x,reg16 16 0F,$0.1+1 $1,$2 nil @0 +!cmpxchgxadd reg16,reg16 16 0F,$0.1+1 $1r,$2 nil @0 +!cmpxchgxadd mem,reg16 16 0F,$0.1+1 $1,$2 nil @0 +!cmpxchgxadd mem16x,reg16 16 0F,$0.1+1 $1,$2 nil @0 ; arbitrary encoding, picked $1r,$2 instead of $2r,$1 -!cmpxchgxadd reg32,reg32 32 0F,$0.1+1 $1r,$2 nil @0 -!cmpxchgxadd mem,reg32 32 0F,$0.1+1 $1,$2 nil @0 -!cmpxchgxadd mem32x,reg32 32 0F,$0.1+1 $1,$2 nil @0 -bswap reg32 32 0F,C8+$1 nil nil 486 +!cmpxchgxadd reg32,reg32 32 0F,$0.1+1 $1r,$2 nil @0 +!cmpxchgxadd mem,reg32 32 0F,$0.1+1 $1,$2 nil @0 +!cmpxchgxadd mem32x,reg32 32 0F,$0.1+1 $1,$2 nil @0 +bswap reg32 32 0F,C8+$1 nil nil 486 xadd!cmpxchgxadd C0 486 cmpxchg!cmpxchgxadd B0 486 cmpxchg486!cmpxchgxadd A6 486,UNDOC @@ -726,7 +726,7 @@ cpuid!twobyte 0F,A2 486 wrmsr!twobyte 0F,30 P5,PRIV rdtsc!twobyte 0F,31 P5 rdmsr!twobyte 0F,32 P5,PRIV -cmpxchg8b mem64 nil 0F,C7 $1,1 nil P5 +cmpxchg8b mem64 nil 0F,C7 $1,1 nil P5 ; ; Pentium II/Pentium Pro extensions ; @@ -746,8 +746,8 @@ fucomip!fcomg2 DF,E8 P6 ; ; Pentium4 extensions ; -movnti mem32,reg32 nil 0F,C3 $1,$2 nil P4 -clflush mem8 nil 0F,AE $1,7 nil KATMAI +movnti mem32,reg32 nil 0F,C3 $1,$2 nil P4 +clflush mem8 nil 0F,AE $1,7 nil KATMAI lfence!threebyte 0F,AE,E8 KATMAI mfence!threebyte 0F,AE,F0 KATMAI pause!twobyte F3,90 P4 @@ -763,18 +763,18 @@ pause!twobyte F3,90 P4 !pshift MMXREG,imm8 nil 0F,$0.2 $1r,$0.3 $2,8 P5,MMX !pshift XMMREG,imm8 nil 66,0F,$0.2 $1r,$0.3 $2,8 P4,SSE2 emms!twobyte 0F,77 P5,MMX -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 +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 -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 +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 packssdw!mmxsse 6B P5 P4,SSE2 packsswb!mmxsse 63 P5 P4,SSE2 packuswb!mmxsse 67 P5 P4,SSE2 @@ -806,10 +806,10 @@ psrad!pshift E2,72,4 psrlw!pshift D1,71,2 psrld!pshift D2,72,2 psrlq!pshift D3,73,2 -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 XMMREG,imm8 nil 66,0F,F9 $1r,2 $2,8 P4,SSE2 +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 XMMREG,imm8 nil 66,0F,F9 $1r,2 $2,8 P4,SSE2 psubd!mmxsse FA P5 P4,SSE2 psubq!mmxsse FB P5 P4,SSE2 psubsb!mmxsse E8 P5 P4,SSE2 @@ -855,7 +855,7 @@ cmpordss!ssecmpss 7 cmpunordps!ssecmpps 3 cmpunordss!ssecmpss 3 cmpps!ssepsimm C2 -cmpss XMMREG,rm128,imm8 nil F3,0F,C2 $2,$1 $3,8 KATMAI,SSE +cmpss XMMREG,rm128,imm8 nil F3,0F,C2 $2,$1 $3,8 KATMAI,SSE comiss!sseps 2F KATMAI,SSE cvtpi2ps!sseps 2A KATMAI,SSE cvtps2pi!sseps 2D KATMAI,SSE @@ -865,58 +865,58 @@ cvttps2pi!sseps 2C KATMAI,SSE cvttss2si!ssess 2C KATMAI,SSE divps!sseps 5E KATMAI,SSE divss!ssess 5E KATMAI,SSE -ldmxcsr mem32 nil 0F,AE $1,2 nil KATMAI,SSE -maskmovq MMXREG,MMXREG nil 0F,F7 $2r,$1 nil KATMAI,MMX +ldmxcsr mem32 nil 0F,AE $1,2 nil KATMAI,SSE +maskmovq MMXREG,MMXREG nil 0F,F7 $2r,$1 nil KATMAI,MMX maxps!sseps 5F KATMAI,SSE maxss!ssess 5F KATMAI,SSE minps!sseps 5D KATMAI,SSE minss!ssess 5D KATMAI,SSE ; 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 -movhlps XMMREG,XMMREG nil 0F,12 $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 -movlps XMMREG,mem64 nil 0F,12 $2,$1 nil KATMAI,SSE -movlps mem64,XMMREG nil 0F,13 $1,$2 nil KATMAI,SSE -movmskps reg32,XMMREG nil 0F,50 $1r,$2 nil KATMAI,SSE -movntps mem128,XMMREG nil 0F,2B $1,$2 nil KATMAI,SSE -movntq mem64,MMXREG nil 0F,E7 $1,$2 nil KATMAI,MMX -movntdq mem128,XMMREG nil 66,0F,E7 $1,$2 nil P4,SSE2 +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 +movhlps XMMREG,XMMREG nil 0F,12 $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 +movlps XMMREG,mem64 nil 0F,12 $2,$1 nil KATMAI,SSE +movlps mem64,XMMREG nil 0F,13 $1,$2 nil KATMAI,SSE +movmskps reg32,XMMREG nil 0F,50 $1r,$2 nil KATMAI,SSE +movntps mem128,XMMREG nil 0F,2B $1,$2 nil KATMAI,SSE +movntq mem64,MMXREG nil 0F,E7 $1,$2 nil KATMAI,MMX +movntdq mem128,XMMREG nil 66,0F,E7 $1,$2 nil P4,SSE2 ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 -movss XMMREG,XMMREG nil F3,0F,10 $2r,$1 nil KATMAI,SSE -movss XMMREG,mem64 nil F3,0F,10 $2,$1 nil KATMAI,SSE -movss mem64,XMMREG nil F3,0F,11 $1,$2 nil KATMAI,SSE +movss XMMREG,XMMREG nil F3,0F,10 $2r,$1 nil KATMAI,SSE +movss XMMREG,mem64 nil F3,0F,10 $2,$1 nil KATMAI,SSE +movss mem64,XMMREG nil F3,0F,11 $1,$2 nil KATMAI,SSE ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 -movups XMMREG,XMMREG nil 0F,10 $2r,$1 nil KATMAI,SSE -movups XMMREG,mem64 nil 0F,10 $2,$1 nil KATMAI,SSE -movups mem64,XMMREG nil 0F,11 $1,$2 nil KATMAI,SSE +movups XMMREG,XMMREG nil 0F,10 $2r,$1 nil KATMAI,SSE +movups XMMREG,mem64 nil 0F,10 $2,$1 nil KATMAI,SSE +movups mem64,XMMREG nil 0F,11 $1,$2 nil KATMAI,SSE mulps!sseps 59 KATMAI,SSE mulss!ssess 59 KATMAI,SSE orps!sseps 56 KATMAI,SSE pavgb!mmxsse E0 KATMAI P4,SSE2 pavgw!mmxsse E3 KATMAI P4,SSE2 -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 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 +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 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 pmaxsw!mmxsse EE KATMAI P4,SSE2 pmaxub!mmxsse DE KATMAI P4,SSE2 pminsw!mmxsse EA KATMAI P4,SSE2 pminub!mmxsse DA KATMAI P4,SSE2 -pmovmskb reg32,MMXREG nil 0F,D7 $1r,$2 nil KATMAI,SSE -pmovmskb reg32,XMMREG nil 66,0F,D7 $1r,$2 nil P4,SSE2 +pmovmskb reg32,MMXREG nil 0F,D7 $1r,$2 nil KATMAI,SSE +pmovmskb reg32,XMMREG nil 66,0F,D7 $1r,$2 nil P4,SSE2 pmulhuw!mmxsse E4 KATMAI P4,SSE2 prefetchnta!twobytemem 0F,18,0 KATMAI prefetcht0!twobytemem 0F,18,1 KATMAI prefetcht1!twobytemem 0F,18,2 KATMAI prefetcht2!twobytemem 0F,18,3 KATMAI psadbw!mmxsse F6 KATMAI KATMAI,SSE -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 rcpps!sseps 53 KATMAI,SSE rcpss!ssess 53 KATMAI,SSE rsqrtps!sseps 52 KATMAI,SSE @@ -925,7 +925,7 @@ sfence!threebyte 0F,AE,F8 KATMAI shufps!ssepsimm C6 sqrtps!sseps 51 KATMAI,SSE sqrtss!ssess 51 KATMAI,SSE -stmxcsr mem32 nil 0F,AE $1,3 nil KATMAI,SSE +stmxcsr mem32 nil 0F,AE $1,3 nil KATMAI,SSE subps!sseps 5C KATMAI,SSE subss!ssess 5C KATMAI,SSE ucomiss!ssess 2E KATMAI,SSE @@ -964,7 +964,7 @@ cmpordsd!sse2cmpsd 7 cmpunordpd!sse2cmppd 3 cmpunordsd!sse2cmpsd 3 cmppd!sse2pdimm C2 -cmpsd XMMREG,rm128,imm8 nil F2,0F,C2 $2,$1 $3,8 P4,SSE2 +cmpsd XMMREG,rm128,imm8 nil F2,0F,C2 $2,$1 $3,8 P4,SSE2 comisd!sse2pd 2F cvtpi2pd!sse2pd 2A cvtsi2sd!sse2sd 2A @@ -975,23 +975,23 @@ maxsd!sse2sd 5F minpd!sse2pd 5D minsd!sse2sd 5D ; 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 -movhpd XMMREG,mem64 nil 66,0F,16 $2,$1 nil P4,SSE2 -movhpd mem64,XMMREG nil 66,0F,17 $1,$2 nil P4,SSE2 -movlpd XMMREG,mem64 nil 66,0F,12 $2,$1 nil P4,SSE2 -movlpd mem64,XMMREG nil 66,0F,13 $1,$2 nil P4,SSE2 -movmskpd reg32,XMMREG nil 66,0F,50 $1r,$2 nil P4,SSE2 -movntpd mem128,XMMREG nil 66,0F,2B $1,$2 nil P4,SSE2 +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 +movhpd XMMREG,mem64 nil 66,0F,16 $2,$1 nil P4,SSE2 +movhpd mem64,XMMREG nil 66,0F,17 $1,$2 nil P4,SSE2 +movlpd XMMREG,mem64 nil 66,0F,12 $2,$1 nil P4,SSE2 +movlpd mem64,XMMREG nil 66,0F,13 $1,$2 nil P4,SSE2 +movmskpd reg32,XMMREG nil 66,0F,50 $1r,$2 nil P4,SSE2 +movntpd mem128,XMMREG nil 66,0F,2B $1,$2 nil P4,SSE2 ; 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 -movsd mem64,XMMREG nil F2,0F,11 $1,$2 nil P4,SSE2 +movsd XMMREG,XMMREG nil F2,0F,10 $2r,$1 nil P4,SSE2 +movsd XMMREG,mem64 nil F2,0F,10 $2,$1 nil P4,SSE2 +movsd mem64,XMMREG nil F2,0F,11 $1,$2 nil P4,SSE2 ; 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 +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 mulpd!sse2pd 59 mulsd!sse2sd 59 orpd!sse2pd 56 @@ -1018,23 +1018,23 @@ cvttpd2pi!sse2pd 2C cvttsd2si!sse2sd 2C cvttpd2dq!sse2pd E6 cvttps2dq!ssess 5B P4,SSE2 -maskmovdqu XMMREG,XMMREG nil 66,0F,F7 $2r,$1 nil P4,SSE2 +maskmovdqu XMMREG,XMMREG nil 66,0F,F7 $2r,$1 nil P4,SSE2 ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 -movdqa XMMREG,XMMREG nil 66,0F,6F $2r,$1 nil P4,SSE2 -movdqa XMMREG,mem128 nil 66,0F,6F $2,$1 nil P4,SSE2 -movdqa mem128,XMMREG nil 66,0F,7F $1,$2 nil P4,SSE2 +movdqa XMMREG,XMMREG nil 66,0F,6F $2r,$1 nil P4,SSE2 +movdqa XMMREG,mem128 nil 66,0F,6F $2,$1 nil P4,SSE2 +movdqa mem128,XMMREG nil 66,0F,7F $1,$2 nil P4,SSE2 ; arbitrary encoding, picked $2r,$1 instead of $1r,$2 -movdqu XMMREG,XMMREG nil F3,0F,6F $2r,$1 nil P4,SSE2 -movdqu XMMREG,mem128 nil F3,0F,6F $2,$1 nil P4,SSE2 -movdqu mem128,XMMREG nil F3,0F,7F $1,$2 nil P4,SSE2 -movdq2q MMXREG,XMMREG nil F2,0F,D6 $2r,$1 nil P4,SSE2 -movq2dq XMMREG,MMXREG nil F3,0F,D6 $2r,$1 nil P4,SSE2 +movdqu XMMREG,XMMREG nil F3,0F,6F $2r,$1 nil P4,SSE2 +movdqu XMMREG,mem128 nil F3,0F,6F $2,$1 nil P4,SSE2 +movdqu mem128,XMMREG nil F3,0F,7F $1,$2 nil P4,SSE2 +movdq2q MMXREG,XMMREG nil F2,0F,D6 $2r,$1 nil P4,SSE2 +movq2dq XMMREG,MMXREG nil F3,0F,D6 $2r,$1 nil P4,SSE2 pmuludq!mmxsse F4 P4 P4,SSE2 pshufd!sse2pdimm 70 -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 -pslldq XMMREG,imm8 nil 66,0F,73 $1r,7 $2,8 P4,SSE2 -psrldq XMMREG,imm8 nil 66,0F,73 $1r,3 $2,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 +pslldq XMMREG,imm8 nil 66,0F,73 $1r,7 $2,8 P4,SSE2 +psrldq XMMREG,imm8 nil 66,0F,73 $1r,3 $2,8 P4,SSE2 punpckhqdq!sse2pd 6D punpcklqdq!sse2pd 6C ; @@ -1081,7 +1081,7 @@ sysret!twobyte 0F,07 P6,PRIV,AMD paddsiw!cyrixmmx 51 paveb!cyrixmmx 50 pdistib!cyrixmmx 54 -pmachriw MMXREG,mem64 nil 0F,5E $2,$1 nil P5,MMX,CYRIX +pmachriw MMXREG,mem64 nil 0F,5E $2,$1 nil P5,MMX,CYRIX pmagw!cyrixmmx 52 pmulhriw!cyrixmmx 5D pmulhrwc!cyrixmmx 59 @@ -1095,10 +1095,10 @@ psubsiw!cyrixmmx 55 ; !cyrixsmm mem80 nil 0F,$0.1 $1,0 nil 486,CYRIX,SMM rdshr!twobyte 0F,36 P6,CYRIX,SMM -rsdc segreg,mem80 nil 0F,79 $2,$1 nil 486,CYRIX,SMM +rsdc segreg,mem80 nil 0F,79 $2,$1 nil 486,CYRIX,SMM rsldt!cyrixsmm 7B rsts!cyrixsmm 7D -svdc mem80,segreg nil 0F,78 $1,$2 nil 486,CYRIX,SMM +svdc mem80,segreg nil 0F,78 $1,$2 nil 486,CYRIX,SMM svldt!cyrixsmm 7A svts!cyrixsmm 7C smint!twobyte 0F,38 P6,CYRIX @@ -1109,30 +1109,30 @@ wrshr!twobyte 0F,37 P6,CYRIX,SMM ; fsetpm!twobyte DB,E4 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 +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!twobyte 0F,07 386,UNDOC loadall286!twobyte 0F,05 286,UNDOC -;pop REG_CS nil 0F nil nil 8086,UNDOC,OBS +;pop REG_CS nil 0F nil nil 8086,UNDOC,OBS salc!onebyte nil,D6 8086,UNDOC smi!onebyte nil,F1 386,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 -- 2.40.0