| version 1.5, 2004/02/05 16:43:44 | version 1.8, 2004/03/07 23:04:51 | 
| Line 60  undef_op(void) | Line 60  undef_op(void) | 
 | } | } | 
 |  |  | 
 | static void | static void | 
| undef_op2(DWORD v) | undef_op2(UINT32 v) | 
 | { | { | 
 |  |  | 
 | (void)v; | (void)v; | 
| Line 68  undef_op2(DWORD v) | Line 68  undef_op2(DWORD v) | 
 | } | } | 
 |  |  | 
 |  |  | 
| BYTE insttable_info[256] = { | UINT8 insttable_info[256] = { | 
 | 0,                              /* 00 */ | 0,                              /* 00 */ | 
 | 0, | 0, | 
 | 0, | 0, | 
| Line 558  void (*insttable_1byte[2][256])(void) = | Line 558  void (*insttable_1byte[2][256])(void) = | 
 | MOV_EbIb, | MOV_EbIb, | 
 | MOV_EwIw, | MOV_EwIw, | 
 | ENTER16_IwIb,           /* C8 */ | ENTER16_IwIb,           /* C8 */ | 
| LEAVE16, | LEAVE, | 
 | RETfar16_Iw, | RETfar16_Iw, | 
 | RETfar16, | RETfar16, | 
 | INT3, | INT3, | 
| Line 768  void (*insttable_1byte[2][256])(void) = | Line 768  void (*insttable_1byte[2][256])(void) = | 
 | MOV_EdGd, | MOV_EdGd, | 
 | MOV_GbEb, | MOV_GbEb, | 
 | MOV_GdEd, | MOV_GdEd, | 
| MOV_EwSw, | MOV_EdSw, | 
 | LEA_GdM, | LEA_GdM, | 
 | MOV_SwEw, | MOV_SwEw, | 
 | POP_Ed, | POP_Ed, | 
| Line 833  void (*insttable_1byte[2][256])(void) = | Line 833  void (*insttable_1byte[2][256])(void) = | 
 | MOV_EbIb, | MOV_EbIb, | 
 | MOV_EdId, | MOV_EdId, | 
 | ENTER32_IwIb,           /* C8 */ | ENTER32_IwIb,           /* C8 */ | 
| LEAVE32, | LEAVE, | 
 | RETfar32_Iw, | RETfar32_Iw, | 
 | RETfar32, | RETfar32, | 
 | INT3, | INT3, | 
| Line 1452  void (*insttable_2byte[2][256])(void) = | Line 1452  void (*insttable_2byte[2][256])(void) = | 
 | */ | */ | 
 |  |  | 
 | /* group 1 */ | /* group 1 */ | 
| void (*insttable_G1EbIb[])(BYTE *, DWORD) = { | void (*insttable_G1EbIb[])(UINT8 *, UINT32) = { | 
 | ADD_EbIb, | ADD_EbIb, | 
 | OR_EbIb, | OR_EbIb, | 
 | ADC_EbIb, | ADC_EbIb, | 
| Line 1462  void (*insttable_G1EbIb[])(BYTE *, DWORD | Line 1462  void (*insttable_G1EbIb[])(BYTE *, DWORD | 
 | XOR_EbIb, | XOR_EbIb, | 
 | CMP_EbIb, | CMP_EbIb, | 
 | }; | }; | 
| void (*insttable_G1EbIb_ext[])(DWORD, DWORD) = { | void (*insttable_G1EbIb_ext[])(UINT32, UINT32) = { | 
 | ADD_EbIb_ext, | ADD_EbIb_ext, | 
 | OR_EbIb_ext, | OR_EbIb_ext, | 
 | ADC_EbIb_ext, | ADC_EbIb_ext, | 
| Line 1473  void (*insttable_G1EbIb_ext[])(DWORD, DW | Line 1473  void (*insttable_G1EbIb_ext[])(DWORD, DW | 
 | CMP_EbIb_ext, | CMP_EbIb_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G1EwIx[])(WORD *, DWORD) = { | void (*insttable_G1EwIx[])(UINT16 *, UINT32) = { | 
 | ADD_EwIx, | ADD_EwIx, | 
 | OR_EwIx, | OR_EwIx, | 
 | ADC_EwIx, | ADC_EwIx, | 
| Line 1483  void (*insttable_G1EwIx[])(WORD *, DWORD | Line 1483  void (*insttable_G1EwIx[])(WORD *, DWORD | 
 | XOR_EwIx, | XOR_EwIx, | 
 | CMP_EwIx, | CMP_EwIx, | 
 | }; | }; | 
| void (*insttable_G1EwIx_ext[])(DWORD, DWORD) = { | void (*insttable_G1EwIx_ext[])(UINT32, UINT32) = { | 
 | ADD_EwIx_ext, | ADD_EwIx_ext, | 
 | OR_EwIx_ext, | OR_EwIx_ext, | 
 | ADC_EwIx_ext, | ADC_EwIx_ext, | 
| Line 1494  void (*insttable_G1EwIx_ext[])(DWORD, DW | Line 1494  void (*insttable_G1EwIx_ext[])(DWORD, DW | 
 | CMP_EwIx_ext, | CMP_EwIx_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G1EdIx[])(DWORD *, DWORD) = { | void (*insttable_G1EdIx[])(UINT32 *, UINT32) = { | 
 | ADD_EdIx, | ADD_EdIx, | 
 | OR_EdIx, | OR_EdIx, | 
 | ADC_EdIx, | ADC_EdIx, | 
| Line 1504  void (*insttable_G1EdIx[])(DWORD *, DWOR | Line 1504  void (*insttable_G1EdIx[])(DWORD *, DWOR | 
 | XOR_EdIx, | XOR_EdIx, | 
 | CMP_EdIx, | CMP_EdIx, | 
 | }; | }; | 
| void (*insttable_G1EdIx_ext[])(DWORD, DWORD) = { | void (*insttable_G1EdIx_ext[])(UINT32, UINT32) = { | 
 | ADD_EdIx_ext, | ADD_EdIx_ext, | 
 | OR_EdIx_ext, | OR_EdIx_ext, | 
 | ADC_EdIx_ext, | ADC_EdIx_ext, | 
| Line 1517  void (*insttable_G1EdIx_ext[])(DWORD, DW | Line 1517  void (*insttable_G1EdIx_ext[])(DWORD, DW | 
 |  |  | 
 |  |  | 
 | /* group 2 */ | /* group 2 */ | 
| void (*insttable_G2Eb[])(BYTE *) = { | void (*insttable_G2Eb[])(UINT8 *) = { | 
 | ROL_Eb, | ROL_Eb, | 
 | ROR_Eb, | ROR_Eb, | 
 | RCL_Eb, | RCL_Eb, | 
| Line 1527  void (*insttable_G2Eb[])(BYTE *) = { | Line 1527  void (*insttable_G2Eb[])(BYTE *) = { | 
 | SHL_Eb, | SHL_Eb, | 
 | SAR_Eb, | SAR_Eb, | 
 | }; | }; | 
| void (*insttable_G2Eb_ext[])(DWORD) = { | void (*insttable_G2Eb_ext[])(UINT32) = { | 
 | ROL_Eb_ext, | ROL_Eb_ext, | 
 | ROR_Eb_ext, | ROR_Eb_ext, | 
 | RCL_Eb_ext, | RCL_Eb_ext, | 
| Line 1538  void (*insttable_G2Eb_ext[])(DWORD) = { | Line 1538  void (*insttable_G2Eb_ext[])(DWORD) = { | 
 | SAR_Eb_ext, | SAR_Eb_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G2Ew[])(WORD *) = { | void (*insttable_G2Ew[])(UINT16 *) = { | 
 | ROL_Ew, | ROL_Ew, | 
 | ROR_Ew, | ROR_Ew, | 
 | RCL_Ew, | RCL_Ew, | 
| Line 1548  void (*insttable_G2Ew[])(WORD *) = { | Line 1548  void (*insttable_G2Ew[])(WORD *) = { | 
 | SHL_Ew, | SHL_Ew, | 
 | SAR_Ew, | SAR_Ew, | 
 | }; | }; | 
| void (*insttable_G2Ew_ext[])(DWORD) = { | void (*insttable_G2Ew_ext[])(UINT32) = { | 
 | ROL_Ew_ext, | ROL_Ew_ext, | 
 | ROR_Ew_ext, | ROR_Ew_ext, | 
 | RCL_Ew_ext, | RCL_Ew_ext, | 
| Line 1559  void (*insttable_G2Ew_ext[])(DWORD) = { | Line 1559  void (*insttable_G2Ew_ext[])(DWORD) = { | 
 | SAR_Ew_ext, | SAR_Ew_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G2Ed[])(DWORD *) = { | void (*insttable_G2Ed[])(UINT32 *) = { | 
 | ROL_Ed, | ROL_Ed, | 
 | ROR_Ed, | ROR_Ed, | 
 | RCL_Ed, | RCL_Ed, | 
| Line 1569  void (*insttable_G2Ed[])(DWORD *) = { | Line 1569  void (*insttable_G2Ed[])(DWORD *) = { | 
 | SHL_Ed, | SHL_Ed, | 
 | SAR_Ed, | SAR_Ed, | 
 | }; | }; | 
| void (*insttable_G2Ed_ext[])(DWORD) = { | void (*insttable_G2Ed_ext[])(UINT32) = { | 
 | ROL_Ed_ext, | ROL_Ed_ext, | 
 | ROR_Ed_ext, | ROR_Ed_ext, | 
 | RCL_Ed_ext, | RCL_Ed_ext, | 
| Line 1580  void (*insttable_G2Ed_ext[])(DWORD) = { | Line 1580  void (*insttable_G2Ed_ext[])(DWORD) = { | 
 | SAR_Ed_ext, | SAR_Ed_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G2EbCL[])(BYTE *, BYTE) = { | void (*insttable_G2EbCL[])(UINT8 *, UINT) = { | 
 | ROL_EbCL, | ROL_EbCL, | 
 | ROR_EbCL, | ROR_EbCL, | 
 | RCL_EbCL, | RCL_EbCL, | 
| Line 1590  void (*insttable_G2EbCL[])(BYTE *, BYTE) | Line 1590  void (*insttable_G2EbCL[])(BYTE *, BYTE) | 
 | SHL_EbCL, | SHL_EbCL, | 
 | SAR_EbCL, | SAR_EbCL, | 
 | }; | }; | 
| void (*insttable_G2EbCL_ext[])(DWORD, BYTE) = { | void (*insttable_G2EbCL_ext[])(UINT32, UINT) = { | 
 | ROL_EbCL_ext, | ROL_EbCL_ext, | 
 | ROR_EbCL_ext, | ROR_EbCL_ext, | 
 | RCL_EbCL_ext, | RCL_EbCL_ext, | 
| Line 1601  void (*insttable_G2EbCL_ext[])(DWORD, BY | Line 1601  void (*insttable_G2EbCL_ext[])(DWORD, BY | 
 | SAR_EbCL_ext, | SAR_EbCL_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G2EwCL[])(WORD *, BYTE) = { | void (*insttable_G2EwCL[])(UINT16 *, UINT) = { | 
 | ROL_EwCL, | ROL_EwCL, | 
 | ROR_EwCL, | ROR_EwCL, | 
 | RCL_EwCL, | RCL_EwCL, | 
| Line 1611  void (*insttable_G2EwCL[])(WORD *, BYTE) | Line 1611  void (*insttable_G2EwCL[])(WORD *, BYTE) | 
 | SHL_EwCL, | SHL_EwCL, | 
 | SAR_EwCL, | SAR_EwCL, | 
 | }; | }; | 
| void (*insttable_G2EwCL_ext[])(DWORD, BYTE) = { | void (*insttable_G2EwCL_ext[])(UINT32, UINT) = { | 
 | ROL_EwCL_ext, | ROL_EwCL_ext, | 
 | ROR_EwCL_ext, | ROR_EwCL_ext, | 
 | RCL_EwCL_ext, | RCL_EwCL_ext, | 
| Line 1622  void (*insttable_G2EwCL_ext[])(DWORD, BY | Line 1622  void (*insttable_G2EwCL_ext[])(DWORD, BY | 
 | SAR_EwCL_ext, | SAR_EwCL_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G2EdCL[])(DWORD *, BYTE) = { | void (*insttable_G2EdCL[])(UINT32 *, UINT) = { | 
 | ROL_EdCL, | ROL_EdCL, | 
 | ROR_EdCL, | ROR_EdCL, | 
 | RCL_EdCL, | RCL_EdCL, | 
| Line 1632  void (*insttable_G2EdCL[])(DWORD *, BYTE | Line 1632  void (*insttable_G2EdCL[])(DWORD *, BYTE | 
 | SHL_EdCL, | SHL_EdCL, | 
 | SAR_EdCL, | SAR_EdCL, | 
 | }; | }; | 
| void (*insttable_G2EdCL_ext[])(DWORD, BYTE) = { | void (*insttable_G2EdCL_ext[])(UINT32, UINT) = { | 
 | ROL_EdCL_ext, | ROL_EdCL_ext, | 
 | ROR_EdCL_ext, | ROR_EdCL_ext, | 
 | RCL_EdCL_ext, | RCL_EdCL_ext, | 
| Line 1644  void (*insttable_G2EdCL_ext[])(DWORD, BY | Line 1644  void (*insttable_G2EdCL_ext[])(DWORD, BY | 
 | }; | }; | 
 |  |  | 
 | /* group 3 */ | /* group 3 */ | 
| void (*insttable_G3Eb[])(DWORD) = { | void (*insttable_G3Eb[])(UINT32) = { | 
 | TEST_EbIb, | TEST_EbIb, | 
 | TEST_EbIb, | TEST_EbIb, | 
 | NOT_Eb, | NOT_Eb, | 
| Line 1655  void (*insttable_G3Eb[])(DWORD) = { | Line 1655  void (*insttable_G3Eb[])(DWORD) = { | 
 | IDIV_ALEb, | IDIV_ALEb, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G3Ew[])(DWORD) = { | void (*insttable_G3Ew[])(UINT32) = { | 
 | TEST_EwIw, | TEST_EwIw, | 
 | TEST_EwIw, | TEST_EwIw, | 
 | NOT_Ew, | NOT_Ew, | 
| Line 1666  void (*insttable_G3Ew[])(DWORD) = { | Line 1666  void (*insttable_G3Ew[])(DWORD) = { | 
 | IDIV_AXEw, | IDIV_AXEw, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G3Ed[])(DWORD) = { | void (*insttable_G3Ed[])(UINT32) = { | 
 | TEST_EdId, | TEST_EdId, | 
 | TEST_EdId, | TEST_EdId, | 
 | NOT_Ed, | NOT_Ed, | 
| Line 1678  void (*insttable_G3Ed[])(DWORD) = { | Line 1678  void (*insttable_G3Ed[])(DWORD) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 4 */ | /* group 4 */ | 
| void (*insttable_G4[])(DWORD) = { | void (*insttable_G4[])(UINT32) = { | 
 | INC_Eb, | INC_Eb, | 
 | DEC_Eb, | DEC_Eb, | 
 | undef_op2, | undef_op2, | 
| Line 1690  void (*insttable_G4[])(DWORD) = { | Line 1690  void (*insttable_G4[])(DWORD) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 5 */ | /* group 5 */ | 
| void (*insttable_G5Ew[])(DWORD) = { | void (*insttable_G5Ew[])(UINT32) = { | 
 | INC_Ew, | INC_Ew, | 
 | DEC_Ew, | DEC_Ew, | 
 | CALL_Ew, | CALL_Ew, | 
| Line 1701  void (*insttable_G5Ew[])(DWORD) = { | Line 1701  void (*insttable_G5Ew[])(DWORD) = { | 
 | undef_op2,      /* POP_Ew_G5 */ | undef_op2,      /* POP_Ew_G5 */ | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G5Ed[])(DWORD) = { | void (*insttable_G5Ed[])(UINT32) = { | 
 | INC_Ed, | INC_Ed, | 
 | DEC_Ed, | DEC_Ed, | 
 | CALL_Ed, | CALL_Ed, | 
| Line 1713  void (*insttable_G5Ed[])(DWORD) = { | Line 1713  void (*insttable_G5Ed[])(DWORD) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 6 */ | /* group 6 */ | 
| void (*insttable_G6[])(DWORD) = { | void (*insttable_G6[])(UINT32) = { | 
 | SLDT_Ew, | SLDT_Ew, | 
 | STR_Ew, | STR_Ew, | 
 | LLDT_Ew, | LLDT_Ew, | 
| Line 1725  void (*insttable_G6[])(DWORD) = { | Line 1725  void (*insttable_G6[])(DWORD) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 7 */ | /* group 7 */ | 
| void (*insttable_G7[])(DWORD) = { | void (*insttable_G7[])(UINT32) = { | 
 | SGDT_Ms, | SGDT_Ms, | 
 | SIDT_Ms, | SIDT_Ms, | 
 | LGDT_Ms, | LGDT_Ms, | 
| Line 1737  void (*insttable_G7[])(DWORD) = { | Line 1737  void (*insttable_G7[])(DWORD) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 8 */ | /* group 8 */ | 
| void (*insttable_G8EwIb[])(DWORD) = { | void (*insttable_G8EwIb[])(UINT32) = { | 
 | undef_op2, | undef_op2, | 
 | undef_op2, | undef_op2, | 
 | undef_op2, | undef_op2, | 
| Line 1748  void (*insttable_G8EwIb[])(DWORD) = { | Line 1748  void (*insttable_G8EwIb[])(DWORD) = { | 
 | BTC_EwIb, | BTC_EwIb, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G8EdIb[])(DWORD) = { | void (*insttable_G8EdIb[])(UINT32) = { | 
 | undef_op2, | undef_op2, | 
 | undef_op2, | undef_op2, | 
 | undef_op2, | undef_op2, | 
| Line 1760  void (*insttable_G8EdIb[])(DWORD) = { | Line 1760  void (*insttable_G8EdIb[])(DWORD) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 9 */ | /* group 9 */ | 
| void (*insttable_G9[])(DWORD) = { | void (*insttable_G9[])(UINT32) = { | 
 | undef_op2, | undef_op2, | 
 | CMPXCHG8B, | CMPXCHG8B, | 
 | undef_op2, | undef_op2, |