300 lines
8.5 KiB
C
300 lines
8.5 KiB
C
/****************************************************************
|
|
* *
|
|
* Copyright 2007 Fidelity Information Services, Inc *
|
|
* *
|
|
* This source code contains the intellectual property *
|
|
* of its copyright holder(s), and is made available *
|
|
* under a license. If you do not know the terms of *
|
|
* the license, please stop and do not read further. *
|
|
* *
|
|
****************************************************************/
|
|
|
|
/* Two-Byte Opcodes: */
|
|
I386_OP(Grp6,Prefix,0x00)
|
|
I386_OP(Grp7,Prefix,0x01)
|
|
I386_OP(LAR,Gv_Ew,0x02)
|
|
I386_OP(LSL,Gv_Ew,0x03)
|
|
I386_OP(INVALID_2_BYTE_OP,04,0x04)
|
|
I386_OP(INVALID_2_BYTE_OP,05,0x05)
|
|
I386_OP(CLTS,_,0x06)
|
|
I386_OP(INVALID_2_BYTE_OP,07,0x07)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,08,0x08)
|
|
I386_OP(INVALID_2_BYTE_OP,09,0x09)
|
|
I386_OP(INVALID_2_BYTE_OP,0A,0x0a)
|
|
I386_OP(INVALID_2_BYTE_OP,0B,0x0b)
|
|
I386_OP(INVALID_2_BYTE_OP,0C,0x0c)
|
|
I386_OP(INVALID_2_BYTE_OP,0D,0x0d)
|
|
I386_OP(INVALID_2_BYTE_OP,0E,0x0e)
|
|
I386_OP(INVALID_2_BYTE_OP,0F,0x0f)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,10,0x10)
|
|
I386_OP(INVALID_2_BYTE_OP,11,0x11)
|
|
I386_OP(INVALID_2_BYTE_OP,12,0x12)
|
|
I386_OP(INVALID_2_BYTE_OP,13,0x13)
|
|
I386_OP(INVALID_2_BYTE_OP,14,0x14)
|
|
I386_OP(INVALID_2_BYTE_OP,15,0x15)
|
|
I386_OP(INVALID_2_BYTE_OP,16,0x16)
|
|
I386_OP(INVALID_2_BYTE_OP,17,0x17)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,18,0x18)
|
|
I386_OP(INVALID_2_BYTE_OP,19,0x19)
|
|
I386_OP(INVALID_2_BYTE_OP,1A,0x1a)
|
|
I386_OP(INVALID_2_BYTE_OP,1B,0x1b)
|
|
I386_OP(INVALID_2_BYTE_OP,1C,0x1c)
|
|
I386_OP(INVALID_2_BYTE_OP,1D,0x1d)
|
|
I386_OP(INVALID_2_BYTE_OP,1E,0x1e)
|
|
I386_OP(INVALID_2_BYTE_OP,1F,0x1f)
|
|
|
|
I386_OP(MOV,Rd_Cd,0x20)
|
|
I386_OP(MOV,Rd_Dd,0x21)
|
|
I386_OP(MOV,Cd_Rd,0x22)
|
|
I386_OP(MOV,Dd_Rd,0x23)
|
|
I386_OP(MOV,Rd_Td,0x24)
|
|
I386_OP(INVALID_2_BYTE_OP,25,0x25)
|
|
I386_OP(MOV,Td_Rd,0x26)
|
|
I386_OP(INVALID_2_BYTE_OP,27,0x27)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,28,0x28)
|
|
I386_OP(INVALID_2_BYTE_OP,29,0x29)
|
|
I386_OP(INVALID_2_BYTE_OP,2A,0x2a)
|
|
I386_OP(INVALID_2_BYTE_OP,2B,0x2b)
|
|
I386_OP(INVALID_2_BYTE_OP,2C,0x2c)
|
|
I386_OP(INVALID_2_BYTE_OP,2D,0x2d)
|
|
I386_OP(INVALID_2_BYTE_OP,2E,0x2e)
|
|
I386_OP(INVALID_2_BYTE_OP,2F,0x2f)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,30,0x30)
|
|
I386_OP(INVALID_2_BYTE_OP,31,0x31)
|
|
I386_OP(INVALID_2_BYTE_OP,32,0x32)
|
|
I386_OP(INVALID_2_BYTE_OP,33,0x33)
|
|
I386_OP(INVALID_2_BYTE_OP,34,0x34)
|
|
I386_OP(INVALID_2_BYTE_OP,35,0x35)
|
|
I386_OP(INVALID_2_BYTE_OP,36,0x36)
|
|
I386_OP(INVALID_2_BYTE_OP,37,0x37)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,38,0x38)
|
|
I386_OP(INVALID_2_BYTE_OP,39,0x39)
|
|
I386_OP(INVALID_2_BYTE_OP,3A,0x3a)
|
|
I386_OP(INVALID_2_BYTE_OP,3B,0x3b)
|
|
I386_OP(INVALID_2_BYTE_OP,3C,0x3c)
|
|
I386_OP(INVALID_2_BYTE_OP,3D,0x3d)
|
|
I386_OP(INVALID_2_BYTE_OP,3E,0x3e)
|
|
I386_OP(INVALID_2_BYTE_OP,3F,0x3f)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,40,0x40)
|
|
I386_OP(INVALID_2_BYTE_OP,41,0x41)
|
|
I386_OP(INVALID_2_BYTE_OP,42,0x42)
|
|
I386_OP(INVALID_2_BYTE_OP,43,0x43)
|
|
I386_OP(INVALID_2_BYTE_OP,44,0x44)
|
|
I386_OP(INVALID_2_BYTE_OP,45,0x45)
|
|
I386_OP(INVALID_2_BYTE_OP,46,0x46)
|
|
I386_OP(INVALID_2_BYTE_OP,47,0x47)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,48,0x48)
|
|
I386_OP(INVALID_2_BYTE_OP,49,0x49)
|
|
I386_OP(INVALID_2_BYTE_OP,4A,0x4a)
|
|
I386_OP(INVALID_2_BYTE_OP,4B,0x4b)
|
|
I386_OP(INVALID_2_BYTE_OP,4C,0x4c)
|
|
I386_OP(INVALID_2_BYTE_OP,4D,0x4d)
|
|
I386_OP(INVALID_2_BYTE_OP,4E,0x4e)
|
|
I386_OP(INVALID_2_BYTE_OP,4F,0x4f)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,50,0x50)
|
|
I386_OP(INVALID_2_BYTE_OP,51,0x51)
|
|
I386_OP(INVALID_2_BYTE_OP,52,0x52)
|
|
I386_OP(INVALID_2_BYTE_OP,53,0x53)
|
|
I386_OP(INVALID_2_BYTE_OP,54,0x54)
|
|
I386_OP(INVALID_2_BYTE_OP,55,0x55)
|
|
I386_OP(INVALID_2_BYTE_OP,56,0x56)
|
|
I386_OP(INVALID_2_BYTE_OP,57,0x57)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,58,0x58)
|
|
I386_OP(INVALID_2_BYTE_OP,59,0x59)
|
|
I386_OP(INVALID_2_BYTE_OP,5A,0x5a)
|
|
I386_OP(INVALID_2_BYTE_OP,5B,0x5b)
|
|
I386_OP(INVALID_2_BYTE_OP,5C,0x5c)
|
|
I386_OP(INVALID_2_BYTE_OP,5D,0x5d)
|
|
I386_OP(INVALID_2_BYTE_OP,5E,0x5e)
|
|
I386_OP(INVALID_2_BYTE_OP,5F,0x5f)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,60,0x60)
|
|
I386_OP(INVALID_2_BYTE_OP,61,0x61)
|
|
I386_OP(INVALID_2_BYTE_OP,62,0x62)
|
|
I386_OP(INVALID_2_BYTE_OP,63,0x63)
|
|
I386_OP(INVALID_2_BYTE_OP,64,0x64)
|
|
I386_OP(INVALID_2_BYTE_OP,65,0x65)
|
|
I386_OP(INVALID_2_BYTE_OP,66,0x66)
|
|
I386_OP(INVALID_2_BYTE_OP,67,0x67)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,68,0x68)
|
|
I386_OP(INVALID_2_BYTE_OP,69,0x69)
|
|
I386_OP(INVALID_2_BYTE_OP,6A,0x6a)
|
|
I386_OP(INVALID_2_BYTE_OP,6B,0x6b)
|
|
I386_OP(INVALID_2_BYTE_OP,6C,0x6c)
|
|
I386_OP(INVALID_2_BYTE_OP,6D,0x6d)
|
|
I386_OP(INVALID_2_BYTE_OP,6E,0x6e)
|
|
I386_OP(INVALID_2_BYTE_OP,6F,0x6f)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,70,0x70)
|
|
I386_OP(INVALID_2_BYTE_OP,71,0x71)
|
|
I386_OP(INVALID_2_BYTE_OP,72,0x72)
|
|
I386_OP(INVALID_2_BYTE_OP,73,0x73)
|
|
I386_OP(INVALID_2_BYTE_OP,74,0x74)
|
|
I386_OP(INVALID_2_BYTE_OP,75,0x75)
|
|
I386_OP(INVALID_2_BYTE_OP,76,0x76)
|
|
I386_OP(INVALID_2_BYTE_OP,77,0x77)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,78,0x78)
|
|
I386_OP(INVALID_2_BYTE_OP,79,0x79)
|
|
I386_OP(INVALID_2_BYTE_OP,7A,0x7a)
|
|
I386_OP(INVALID_2_BYTE_OP,7B,0x7b)
|
|
I386_OP(INVALID_2_BYTE_OP,7C,0x7c)
|
|
I386_OP(INVALID_2_BYTE_OP,7D,0x7d)
|
|
I386_OP(INVALID_2_BYTE_OP,7E,0x7e)
|
|
I386_OP(INVALID_2_BYTE_OP,7F,0x7f)
|
|
|
|
I386_OP(JO,Jv,0x80)
|
|
I386_OP(JNO,Jv,0x81)
|
|
I386_OP(JB,Jv,0x82)
|
|
I386_OP(JNB,Jv,0x83)
|
|
I386_OP(JZ,Jv,0x84)
|
|
I386_OP(JNZ,Jv,0x85)
|
|
I386_OP(JBE,Jv,0x86)
|
|
I386_OP(JNBE,Jv,0x87)
|
|
|
|
I386_OP(JS,Jv,0x88)
|
|
I386_OP(JNS,Jv,0x89)
|
|
I386_OP(JP,Jv,0x8a)
|
|
I386_OP(JNP,Jv,0x8b)
|
|
I386_OP(JL,Jv,0x8c)
|
|
I386_OP(JNL,Jv,0x8d)
|
|
I386_OP(JLE,Jv,0x8e)
|
|
I386_OP(JNLE,Jv,0x8f)
|
|
|
|
I386_OP(SETO,Eb,0x90)
|
|
I386_OP(SETNO,Eb,0x91)
|
|
I386_OP(SETB,Eb,0x92)
|
|
I386_OP(SETNB,Eb,0x93)
|
|
I386_OP(SETZ,Eb,0x94)
|
|
I386_OP(SETNZ,Eb,0x95)
|
|
I386_OP(SETBE,Eb,0x96)
|
|
I386_OP(SETNBE,Eb,0x97)
|
|
|
|
I386_OP(SETS,Eb,0x98)
|
|
I386_OP(SETNS,Eb,0x99)
|
|
I386_OP(SETP,Eb,0x9a)
|
|
I386_OP(SETNP,Eb,0x9b)
|
|
I386_OP(SETL,Eb,0x9c)
|
|
I386_OP(SETNL,Eb,0x9d)
|
|
I386_OP(SETLE,Eb,0x9e)
|
|
I386_OP(SETNLE,Eb,0x9f)
|
|
|
|
I386_OP(PUSH,FS,0xa0)
|
|
I386_OP(POP,FS,0xa1)
|
|
I386_OP(INVALID_2_BYTE_OP,A2,0xa2)
|
|
I386_OP(BT,Ev_Gv,0xa3)
|
|
I386_OP(SHLD,EvGvIb,0xa4)
|
|
I386_OP(SHLD,EvGvCL,0xa5)
|
|
I386_OP(INVALID_2_BYTE_OP,A6,0xa6)
|
|
I386_OP(INVALID_2_BYTE_OP,A7,0xa7)
|
|
|
|
I386_OP(PUSH,GS,0xa8)
|
|
I386_OP(POP,GS,0xa9)
|
|
I386_OP(INVALID_2_BYTE_OP,AA,0xaa)
|
|
I386_OP(BTS,Ev_Gv,0xab)
|
|
I386_OP(SHRD,EvGvIb,0xac)
|
|
I386_OP(SHRD,EvGvCL,0xad)
|
|
I386_OP(INVALID_2_BYTE_OP,AE,0xae)
|
|
I386_OP(IMUL,Gv_Ev,0xaf)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,B0,0xb0)
|
|
I386_OP(INVALID_2_BYTE_OP,B1,0xb1)
|
|
I386_OP(LSS,Mp,0xb2)
|
|
I386_OP(BTR,Ev_Gv,0xb3)
|
|
I386_OP(LFS,Mp,0xb4)
|
|
I386_OP(LGS,Mp,0xb5)
|
|
I386_OP(MOVZX,Gv_Eb,0xb6)
|
|
I386_OP(MOVZX,Gv_Ew,0xb7)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,B8,0xb8)
|
|
I386_OP(INVALID_2_BYTE_OP,B9,0xb9)
|
|
I386_OP(Grp8,Ev_Ib,0xba)
|
|
I386_OP(BTC,Ev_Gv,0xbb)
|
|
I386_OP(BSF,Gv_Ev,0xbc)
|
|
I386_OP(BSR,Gv_Ev,0xbd)
|
|
I386_OP(MOVSX,Gv_Eb,0xbe)
|
|
I386_OP(MOVSX,Gv_Ew,0xbf)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,C0,0xc0)
|
|
I386_OP(INVALID_2_BYTE_OP,C1,0xc1)
|
|
I386_OP(INVALID_2_BYTE_OP,C2,0xc2)
|
|
I386_OP(INVALID_2_BYTE_OP,C3,0xc3)
|
|
I386_OP(INVALID_2_BYTE_OP,C4,0xc4)
|
|
I386_OP(INVALID_2_BYTE_OP,C5,0xc5)
|
|
I386_OP(INVALID_2_BYTE_OP,C6,0xc6)
|
|
I386_OP(INVALID_2_BYTE_OP,C7,0xc7)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,C8,0xc8)
|
|
I386_OP(INVALID_2_BYTE_OP,C9,0xc9)
|
|
I386_OP(INVALID_2_BYTE_OP,CA,0xca)
|
|
I386_OP(INVALID_2_BYTE_OP,CB,0xcb)
|
|
I386_OP(INVALID_2_BYTE_OP,CC,0xcc)
|
|
I386_OP(INVALID_2_BYTE_OP,CD,0xcd)
|
|
I386_OP(INVALID_2_BYTE_OP,CE,0xce)
|
|
I386_OP(INVALID_2_BYTE_OP,CF,0xcf)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,D0,0xd0)
|
|
I386_OP(INVALID_2_BYTE_OP,D1,0xd1)
|
|
I386_OP(INVALID_2_BYTE_OP,D2,0xd2)
|
|
I386_OP(INVALID_2_BYTE_OP,D3,0xd3)
|
|
I386_OP(INVALID_2_BYTE_OP,D4,0xd4)
|
|
I386_OP(INVALID_2_BYTE_OP,D5,0xd5)
|
|
I386_OP(INVALID_2_BYTE_OP,D6,0xd6)
|
|
I386_OP(INVALID_2_BYTE_OP,D7,0xd7)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,D8,0xd8)
|
|
I386_OP(INVALID_2_BYTE_OP,D9,0xd9)
|
|
I386_OP(INVALID_2_BYTE_OP,DA,0xda)
|
|
I386_OP(INVALID_2_BYTE_OP,DB,0xdb)
|
|
I386_OP(INVALID_2_BYTE_OP,DC,0xdc)
|
|
I386_OP(INVALID_2_BYTE_OP,DD,0xdd)
|
|
I386_OP(INVALID_2_BYTE_OP,DE,0xde)
|
|
I386_OP(INVALID_2_BYTE_OP,DF,0xdf)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,E0,0xe0)
|
|
I386_OP(INVALID_2_BYTE_OP,E1,0xe1)
|
|
I386_OP(INVALID_2_BYTE_OP,E2,0xe2)
|
|
I386_OP(INVALID_2_BYTE_OP,E3,0xe3)
|
|
I386_OP(INVALID_2_BYTE_OP,E4,0xe4)
|
|
I386_OP(INVALID_2_BYTE_OP,E5,0xe5)
|
|
I386_OP(INVALID_2_BYTE_OP,E6,0xe6)
|
|
I386_OP(INVALID_2_BYTE_OP,E7,0xe7)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,E8,0xe8)
|
|
I386_OP(INVALID_2_BYTE_OP,E9,0xe9)
|
|
I386_OP(INVALID_2_BYTE_OP,EA,0xea)
|
|
I386_OP(INVALID_2_BYTE_OP,EB,0xeb)
|
|
I386_OP(INVALID_2_BYTE_OP,EC,0xec)
|
|
I386_OP(INVALID_2_BYTE_OP,ED,0xed)
|
|
I386_OP(INVALID_2_BYTE_OP,EE,0xee)
|
|
I386_OP(INVALID_2_BYTE_OP,EF,0xef)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,F0,0xf0)
|
|
I386_OP(INVALID_2_BYTE_OP,F1,0xf1)
|
|
I386_OP(INVALID_2_BYTE_OP,F2,0xf2)
|
|
I386_OP(INVALID_2_BYTE_OP,F3,0xf3)
|
|
I386_OP(INVALID_2_BYTE_OP,F4,0xf4)
|
|
I386_OP(INVALID_2_BYTE_OP,F5,0xf5)
|
|
I386_OP(INVALID_2_BYTE_OP,F6,0xf6)
|
|
I386_OP(INVALID_2_BYTE_OP,F7,0xf7)
|
|
|
|
I386_OP(INVALID_2_BYTE_OP,F8,0xf8)
|
|
I386_OP(INVALID_2_BYTE_OP,F9,0xf9)
|
|
I386_OP(INVALID_2_BYTE_OP,FA,0xfa)
|
|
I386_OP(INVALID_2_BYTE_OP,FB,0xfb)
|
|
I386_OP(INVALID_2_BYTE_OP,FC,0xfc)
|
|
I386_OP(INVALID_2_BYTE_OP,FD,0xfd)
|
|
I386_OP(INVALID_2_BYTE_OP,FE,0xfe)
|
|
I386_OP(INVALID_2_BYTE_OP,FF,0xff)
|