| version 1.12, 2011/01/15 18:36:12 | version 1.13, 2011/12/29 13:32:12 | 
| Line 55  undef_op(void) | Line 55  undef_op(void) | 
 | EXCEPTION(UD_EXCEPTION, 0); | EXCEPTION(UD_EXCEPTION, 0); | 
 | } | } | 
 |  |  | 
| static void | static void CPUCALL | 
 | undef_op2(UINT32 v) | undef_op2(UINT32 v) | 
 | { | { | 
 |  |  | 
| Line 1447  void (*insttable_2byte[2][256])(void) = | Line 1447  void (*insttable_2byte[2][256])(void) = | 
 | */ | */ | 
 |  |  | 
 | /* group 1 */ | /* group 1 */ | 
| void (*insttable_G1EbIb[])(UINT8 *, UINT32) = { | void (CPUCALL *insttable_G1EbIb[])(UINT8 *, UINT32) = { | 
 | ADD_EbIb, | ADD_EbIb, | 
 | OR_EbIb, | OR_EbIb, | 
 | ADC_EbIb, | ADC_EbIb, | 
| Line 1457  void (*insttable_G1EbIb[])(UINT8 *, UINT | Line 1457  void (*insttable_G1EbIb[])(UINT8 *, UINT | 
 | XOR_EbIb, | XOR_EbIb, | 
 | CMP_EbIb, | CMP_EbIb, | 
 | }; | }; | 
| void (*insttable_G1EbIb_ext[])(UINT32, UINT32) = { | void (CPUCALL *insttable_G1EbIb_ext[])(UINT32, UINT32) = { | 
 | ADD_EbIb_ext, | ADD_EbIb_ext, | 
 | OR_EbIb_ext, | OR_EbIb_ext, | 
 | ADC_EbIb_ext, | ADC_EbIb_ext, | 
| Line 1468  void (*insttable_G1EbIb_ext[])(UINT32, U | Line 1468  void (*insttable_G1EbIb_ext[])(UINT32, U | 
 | CMP_EbIb_ext, | CMP_EbIb_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G1EwIx[])(UINT16 *, UINT32) = { | void (CPUCALL *insttable_G1EwIx[])(UINT16 *, UINT32) = { | 
 | ADD_EwIx, | ADD_EwIx, | 
 | OR_EwIx, | OR_EwIx, | 
 | ADC_EwIx, | ADC_EwIx, | 
| Line 1478  void (*insttable_G1EwIx[])(UINT16 *, UIN | Line 1478  void (*insttable_G1EwIx[])(UINT16 *, UIN | 
 | XOR_EwIx, | XOR_EwIx, | 
 | CMP_EwIx, | CMP_EwIx, | 
 | }; | }; | 
| void (*insttable_G1EwIx_ext[])(UINT32, UINT32) = { | void (CPUCALL *insttable_G1EwIx_ext[])(UINT32, UINT32) = { | 
 | ADD_EwIx_ext, | ADD_EwIx_ext, | 
 | OR_EwIx_ext, | OR_EwIx_ext, | 
 | ADC_EwIx_ext, | ADC_EwIx_ext, | 
| Line 1489  void (*insttable_G1EwIx_ext[])(UINT32, U | Line 1489  void (*insttable_G1EwIx_ext[])(UINT32, U | 
 | CMP_EwIx_ext, | CMP_EwIx_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G1EdIx[])(UINT32 *, UINT32) = { | void (CPUCALL *insttable_G1EdIx[])(UINT32 *, UINT32) = { | 
 | ADD_EdIx, | ADD_EdIx, | 
 | OR_EdIx, | OR_EdIx, | 
 | ADC_EdIx, | ADC_EdIx, | 
| Line 1499  void (*insttable_G1EdIx[])(UINT32 *, UIN | Line 1499  void (*insttable_G1EdIx[])(UINT32 *, UIN | 
 | XOR_EdIx, | XOR_EdIx, | 
 | CMP_EdIx, | CMP_EdIx, | 
 | }; | }; | 
| void (*insttable_G1EdIx_ext[])(UINT32, UINT32) = { | void (CPUCALL *insttable_G1EdIx_ext[])(UINT32, UINT32) = { | 
 | ADD_EdIx_ext, | ADD_EdIx_ext, | 
 | OR_EdIx_ext, | OR_EdIx_ext, | 
 | ADC_EdIx_ext, | ADC_EdIx_ext, | 
| Line 1512  void (*insttable_G1EdIx_ext[])(UINT32, U | Line 1512  void (*insttable_G1EdIx_ext[])(UINT32, U | 
 |  |  | 
 |  |  | 
 | /* group 2 */ | /* group 2 */ | 
| void (*insttable_G2Eb[])(UINT8 *) = { | void (CPUCALL *insttable_G2Eb[])(UINT8 *) = { | 
 | ROL_Eb, | ROL_Eb, | 
 | ROR_Eb, | ROR_Eb, | 
 | RCL_Eb, | RCL_Eb, | 
| Line 1522  void (*insttable_G2Eb[])(UINT8 *) = { | Line 1522  void (*insttable_G2Eb[])(UINT8 *) = { | 
 | SHL_Eb, | SHL_Eb, | 
 | SAR_Eb, | SAR_Eb, | 
 | }; | }; | 
| void (*insttable_G2Eb_ext[])(UINT32) = { | void (CPUCALL *insttable_G2Eb_ext[])(UINT32) = { | 
 | ROL_Eb_ext, | ROL_Eb_ext, | 
 | ROR_Eb_ext, | ROR_Eb_ext, | 
 | RCL_Eb_ext, | RCL_Eb_ext, | 
| Line 1533  void (*insttable_G2Eb_ext[])(UINT32) = { | Line 1533  void (*insttable_G2Eb_ext[])(UINT32) = { | 
 | SAR_Eb_ext, | SAR_Eb_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G2Ew[])(UINT16 *) = { | void (CPUCALL *insttable_G2Ew[])(UINT16 *) = { | 
 | ROL_Ew, | ROL_Ew, | 
 | ROR_Ew, | ROR_Ew, | 
 | RCL_Ew, | RCL_Ew, | 
| Line 1543  void (*insttable_G2Ew[])(UINT16 *) = { | Line 1543  void (*insttable_G2Ew[])(UINT16 *) = { | 
 | SHL_Ew, | SHL_Ew, | 
 | SAR_Ew, | SAR_Ew, | 
 | }; | }; | 
| void (*insttable_G2Ew_ext[])(UINT32) = { | void (CPUCALL *insttable_G2Ew_ext[])(UINT32) = { | 
 | ROL_Ew_ext, | ROL_Ew_ext, | 
 | ROR_Ew_ext, | ROR_Ew_ext, | 
 | RCL_Ew_ext, | RCL_Ew_ext, | 
| Line 1554  void (*insttable_G2Ew_ext[])(UINT32) = { | Line 1554  void (*insttable_G2Ew_ext[])(UINT32) = { | 
 | SAR_Ew_ext, | SAR_Ew_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G2Ed[])(UINT32 *) = { | void (CPUCALL *insttable_G2Ed[])(UINT32 *) = { | 
 | ROL_Ed, | ROL_Ed, | 
 | ROR_Ed, | ROR_Ed, | 
 | RCL_Ed, | RCL_Ed, | 
| Line 1564  void (*insttable_G2Ed[])(UINT32 *) = { | Line 1564  void (*insttable_G2Ed[])(UINT32 *) = { | 
 | SHL_Ed, | SHL_Ed, | 
 | SAR_Ed, | SAR_Ed, | 
 | }; | }; | 
| void (*insttable_G2Ed_ext[])(UINT32) = { | void (CPUCALL *insttable_G2Ed_ext[])(UINT32) = { | 
 | ROL_Ed_ext, | ROL_Ed_ext, | 
 | ROR_Ed_ext, | ROR_Ed_ext, | 
 | RCL_Ed_ext, | RCL_Ed_ext, | 
| Line 1575  void (*insttable_G2Ed_ext[])(UINT32) = { | Line 1575  void (*insttable_G2Ed_ext[])(UINT32) = { | 
 | SAR_Ed_ext, | SAR_Ed_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G2EbCL[])(UINT8 *, UINT) = { | void (CPUCALL *insttable_G2EbCL[])(UINT8 *, UINT) = { | 
 | ROL_EbCL, | ROL_EbCL, | 
 | ROR_EbCL, | ROR_EbCL, | 
 | RCL_EbCL, | RCL_EbCL, | 
| Line 1585  void (*insttable_G2EbCL[])(UINT8 *, UINT | Line 1585  void (*insttable_G2EbCL[])(UINT8 *, UINT | 
 | SHL_EbCL, | SHL_EbCL, | 
 | SAR_EbCL, | SAR_EbCL, | 
 | }; | }; | 
| void (*insttable_G2EbCL_ext[])(UINT32, UINT) = { | void (CPUCALL *insttable_G2EbCL_ext[])(UINT32, UINT) = { | 
 | ROL_EbCL_ext, | ROL_EbCL_ext, | 
 | ROR_EbCL_ext, | ROR_EbCL_ext, | 
 | RCL_EbCL_ext, | RCL_EbCL_ext, | 
| Line 1596  void (*insttable_G2EbCL_ext[])(UINT32, U | Line 1596  void (*insttable_G2EbCL_ext[])(UINT32, U | 
 | SAR_EbCL_ext, | SAR_EbCL_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G2EwCL[])(UINT16 *, UINT) = { | void (CPUCALL *insttable_G2EwCL[])(UINT16 *, UINT) = { | 
 | ROL_EwCL, | ROL_EwCL, | 
 | ROR_EwCL, | ROR_EwCL, | 
 | RCL_EwCL, | RCL_EwCL, | 
| Line 1606  void (*insttable_G2EwCL[])(UINT16 *, UIN | Line 1606  void (*insttable_G2EwCL[])(UINT16 *, UIN | 
 | SHL_EwCL, | SHL_EwCL, | 
 | SAR_EwCL, | SAR_EwCL, | 
 | }; | }; | 
| void (*insttable_G2EwCL_ext[])(UINT32, UINT) = { | void (CPUCALL *insttable_G2EwCL_ext[])(UINT32, UINT) = { | 
 | ROL_EwCL_ext, | ROL_EwCL_ext, | 
 | ROR_EwCL_ext, | ROR_EwCL_ext, | 
 | RCL_EwCL_ext, | RCL_EwCL_ext, | 
| Line 1617  void (*insttable_G2EwCL_ext[])(UINT32, U | Line 1617  void (*insttable_G2EwCL_ext[])(UINT32, U | 
 | SAR_EwCL_ext, | SAR_EwCL_ext, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G2EdCL[])(UINT32 *, UINT) = { | void (CPUCALL *insttable_G2EdCL[])(UINT32 *, UINT) = { | 
 | ROL_EdCL, | ROL_EdCL, | 
 | ROR_EdCL, | ROR_EdCL, | 
 | RCL_EdCL, | RCL_EdCL, | 
| Line 1627  void (*insttable_G2EdCL[])(UINT32 *, UIN | Line 1627  void (*insttable_G2EdCL[])(UINT32 *, UIN | 
 | SHL_EdCL, | SHL_EdCL, | 
 | SAR_EdCL, | SAR_EdCL, | 
 | }; | }; | 
| void (*insttable_G2EdCL_ext[])(UINT32, UINT) = { | void (CPUCALL *insttable_G2EdCL_ext[])(UINT32, UINT) = { | 
 | ROL_EdCL_ext, | ROL_EdCL_ext, | 
 | ROR_EdCL_ext, | ROR_EdCL_ext, | 
 | RCL_EdCL_ext, | RCL_EdCL_ext, | 
| Line 1639  void (*insttable_G2EdCL_ext[])(UINT32, U | Line 1639  void (*insttable_G2EdCL_ext[])(UINT32, U | 
 | }; | }; | 
 |  |  | 
 | /* group 3 */ | /* group 3 */ | 
| void (*insttable_G3Eb[])(UINT32) = { | void (CPUCALL *insttable_G3Eb[])(UINT32) = { | 
 | TEST_EbIb, | TEST_EbIb, | 
 | TEST_EbIb, | TEST_EbIb, | 
 | NOT_Eb, | NOT_Eb, | 
| Line 1650  void (*insttable_G3Eb[])(UINT32) = { | Line 1650  void (*insttable_G3Eb[])(UINT32) = { | 
 | IDIV_ALEb, | IDIV_ALEb, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G3Ew[])(UINT32) = { | void (CPUCALL *insttable_G3Ew[])(UINT32) = { | 
 | TEST_EwIw, | TEST_EwIw, | 
 | TEST_EwIw, | TEST_EwIw, | 
 | NOT_Ew, | NOT_Ew, | 
| Line 1661  void (*insttable_G3Ew[])(UINT32) = { | Line 1661  void (*insttable_G3Ew[])(UINT32) = { | 
 | IDIV_AXEw, | IDIV_AXEw, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G3Ed[])(UINT32) = { | void (CPUCALL *insttable_G3Ed[])(UINT32) = { | 
 | TEST_EdId, | TEST_EdId, | 
 | TEST_EdId, | TEST_EdId, | 
 | NOT_Ed, | NOT_Ed, | 
| Line 1673  void (*insttable_G3Ed[])(UINT32) = { | Line 1673  void (*insttable_G3Ed[])(UINT32) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 4 */ | /* group 4 */ | 
| void (*insttable_G4[])(UINT32) = { | void (CPUCALL *insttable_G4[])(UINT32) = { | 
 | INC_Eb, | INC_Eb, | 
 | DEC_Eb, | DEC_Eb, | 
 | undef_op2, | undef_op2, | 
| Line 1685  void (*insttable_G4[])(UINT32) = { | Line 1685  void (*insttable_G4[])(UINT32) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 5 */ | /* group 5 */ | 
| void (*insttable_G5Ew[])(UINT32) = { | void (CPUCALL *insttable_G5Ew[])(UINT32) = { | 
 | INC_Ew, | INC_Ew, | 
 | DEC_Ew, | DEC_Ew, | 
 | CALL_Ew, | CALL_Ew, | 
| Line 1696  void (*insttable_G5Ew[])(UINT32) = { | Line 1696  void (*insttable_G5Ew[])(UINT32) = { | 
 | undef_op2,      /* POP_Ew_G5 */ | undef_op2,      /* POP_Ew_G5 */ | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G5Ed[])(UINT32) = { | void (CPUCALL *insttable_G5Ed[])(UINT32) = { | 
 | INC_Ed, | INC_Ed, | 
 | DEC_Ed, | DEC_Ed, | 
 | CALL_Ed, | CALL_Ed, | 
| Line 1708  void (*insttable_G5Ed[])(UINT32) = { | Line 1708  void (*insttable_G5Ed[])(UINT32) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 6 */ | /* group 6 */ | 
| void (*insttable_G6[])(UINT32) = { | void (CPUCALL *insttable_G6[])(UINT32) = { | 
 | SLDT_Ew, | SLDT_Ew, | 
 | STR_Ew, | STR_Ew, | 
 | LLDT_Ew, | LLDT_Ew, | 
| Line 1720  void (*insttable_G6[])(UINT32) = { | Line 1720  void (*insttable_G6[])(UINT32) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 7 */ | /* group 7 */ | 
| void (*insttable_G7[])(UINT32) = { | void (CPUCALL *insttable_G7[])(UINT32) = { | 
 | SGDT_Ms, | SGDT_Ms, | 
 | SIDT_Ms, | SIDT_Ms, | 
 | LGDT_Ms, | LGDT_Ms, | 
| Line 1732  void (*insttable_G7[])(UINT32) = { | Line 1732  void (*insttable_G7[])(UINT32) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 8 */ | /* group 8 */ | 
| void (*insttable_G8EwIb[])(UINT32) = { | void (CPUCALL *insttable_G8EwIb[])(UINT32) = { | 
 | undef_op2, | undef_op2, | 
 | undef_op2, | undef_op2, | 
 | undef_op2, | undef_op2, | 
| Line 1743  void (*insttable_G8EwIb[])(UINT32) = { | Line 1743  void (*insttable_G8EwIb[])(UINT32) = { | 
 | BTC_EwIb, | BTC_EwIb, | 
 | }; | }; | 
 |  |  | 
| void (*insttable_G8EdIb[])(UINT32) = { | void (CPUCALL *insttable_G8EdIb[])(UINT32) = { | 
 | undef_op2, | undef_op2, | 
 | undef_op2, | undef_op2, | 
 | undef_op2, | undef_op2, | 
| Line 1755  void (*insttable_G8EdIb[])(UINT32) = { | Line 1755  void (*insttable_G8EdIb[])(UINT32) = { | 
 | }; | }; | 
 |  |  | 
 | /* group 9 */ | /* group 9 */ | 
| void (*insttable_G9[])(UINT32) = { | void (CPUCALL *insttable_G9[])(UINT32) = { | 
 | undef_op2, | undef_op2, | 
 | CMPXCHG8B, | CMPXCHG8B, | 
 | undef_op2, | undef_op2, |