|
|
| version 1.1, 2003/12/08 00:55:31 | version 1.6, 2004/03/23 15:29:34 |
|---|---|
| Line 38 | Line 38 |
| void | void |
| Grp1_EbIb(void) | Grp1_EbIb(void) |
| { | { |
| DWORD op; | UINT8 *out; |
| UINT32 madr; | |
| UINT32 op, src; | |
| int idx; | int idx; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| idx = (op >> 3) & 7; | idx = (op >> 3) & 7; |
| if (op >= 0xc0) { | if (op >= 0xc0) { |
| CPU_WORKCLOCK(3); | CPU_WORKCLOCK(2); |
| (*insttable_G1EbIb[idx])(reg8_b20[op]); | out = reg8_b20[op]; |
| GET_PCBYTE(src); | |
| (*insttable_G1EbIb[idx])(out, src); | |
| } else { | } else { |
| CPU_WORKCLOCK(7); | CPU_WORKCLOCK(7); |
| (*insttable_G1EbIb_ext[idx])(calc_ea_dst(op)); | madr = calc_ea_dst(op); |
| GET_PCBYTE(src); | |
| (*insttable_G1EbIb_ext[idx])(madr, src); | |
| } | } |
| } | } |
| void | void |
| Grp1_EwIb(void) | Grp1_EwIb(void) |
| { | { |
| WORD *out; | UINT16 *out; |
| DWORD op, madr, src; | UINT32 madr, src; |
| UINT32 op; | |
| int idx; | int idx; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| idx = (op >> 3) & 7; | idx = (op >> 3) & 7; |
| if (op >= 0xc0) { | if (op >= 0xc0) { |
| CPU_WORKCLOCK(3); | CPU_WORKCLOCK(2); |
| out = reg16_b20[op]; | out = reg16_b20[op]; |
| GET_PCBYTES(src); | GET_PCBYTES(src); |
| (*insttable_G1EwIx[idx])(out, src); | (*insttable_G1EwIx[idx])(out, src); |
| Line 77 Grp1_EwIb(void) | Line 84 Grp1_EwIb(void) |
| void | void |
| Grp1_EdIb(void) | Grp1_EdIb(void) |
| { | { |
| DWORD *out; | UINT32 *out; |
| DWORD op, madr, src; | UINT32 madr, src; |
| UINT32 op; | |
| int idx; | int idx; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| idx = (op >> 3) & 7; | idx = (op >> 3) & 7; |
| if (op >= 0xc0) { | if (op >= 0xc0) { |
| CPU_WORKCLOCK(3); | CPU_WORKCLOCK(2); |
| out = reg32_b20[op]; | out = reg32_b20[op]; |
| GET_PCBYTESD(src); | GET_PCBYTESD(src); |
| (*insttable_G1EdIx[idx])(out, src); | (*insttable_G1EdIx[idx])(out, src); |
| Line 99 Grp1_EdIb(void) | Line 107 Grp1_EdIb(void) |
| void | void |
| Grp1_EwIw(void) | Grp1_EwIw(void) |
| { | { |
| WORD *out; | UINT16 *out; |
| DWORD op, madr, src; | UINT32 madr, src; |
| UINT32 op; | |
| int idx; | int idx; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| idx = (op >> 3) & 7; | idx = (op >> 3) & 7; |
| if (op >= 0xc0) { | if (op >= 0xc0) { |
| CPU_WORKCLOCK(3); | CPU_WORKCLOCK(2); |
| out = reg16_b20[op]; | out = reg16_b20[op]; |
| GET_PCWORD(src); | GET_PCWORD(src); |
| (*insttable_G1EwIx[idx])(out, src); | (*insttable_G1EwIx[idx])(out, src); |
| Line 121 Grp1_EwIw(void) | Line 130 Grp1_EwIw(void) |
| void | void |
| Grp1_EdId(void) | Grp1_EdId(void) |
| { | { |
| DWORD *out; | UINT32 *out; |
| DWORD op, madr, src; | UINT32 madr, src; |
| UINT32 op; | |
| int idx; | int idx; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| idx = (op >> 3) & 7; | idx = (op >> 3) & 7; |
| if (op >= 0xc0) { | if (op >= 0xc0) { |
| CPU_WORKCLOCK(3); | CPU_WORKCLOCK(2); |
| out = reg32_b20[op]; | out = reg32_b20[op]; |
| GET_PCDWORD(src); | GET_PCDWORD(src); |
| (*insttable_G1EdIx[idx])(out, src); | (*insttable_G1EdIx[idx])(out, src); |
| Line 145 Grp1_EdId(void) | Line 155 Grp1_EdId(void) |
| void | void |
| Grp2_EbIb(void) | Grp2_EbIb(void) |
| { | { |
| BYTE *out; | UINT8 *out; |
| DWORD op, madr; | UINT32 madr; |
| UINT32 op; | |
| UINT32 cl; | |
| int idx; | int idx; |
| BYTE cl; | |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| idx = (op >> 3) & 7; | idx = (op >> 3) & 7; |
| Line 170 Grp2_EbIb(void) | Line 181 Grp2_EbIb(void) |
| void | void |
| Grp2_EwIb(void) | Grp2_EwIb(void) |
| { | { |
| WORD *out; | UINT16 *out; |
| DWORD op, madr; | UINT32 madr; |
| UINT32 op; | |
| UINT32 cl; | |
| int idx; | int idx; |
| BYTE cl; | |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| idx = (op >> 3) & 7; | idx = (op >> 3) & 7; |
| Line 195 Grp2_EwIb(void) | Line 207 Grp2_EwIb(void) |
| void | void |
| Grp2_EdIb(void) | Grp2_EdIb(void) |
| { | { |
| DWORD *out; | UINT32 *out; |
| DWORD op, madr; | UINT32 madr; |
| UINT32 op; | |
| UINT32 cl; | |
| int idx; | int idx; |
| BYTE cl; | |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| idx = (op >> 3) & 7; | idx = (op >> 3) & 7; |
| Line 220 Grp2_EdIb(void) | Line 233 Grp2_EdIb(void) |
| void | void |
| Grp2_Eb(void) | Grp2_Eb(void) |
| { | { |
| DWORD op; | UINT32 op; |
| int idx; | int idx; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| Line 237 Grp2_Eb(void) | Line 250 Grp2_Eb(void) |
| void | void |
| Grp2_Ew(void) | Grp2_Ew(void) |
| { | { |
| DWORD op; | UINT32 op; |
| int idx; | int idx; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| Line 254 Grp2_Ew(void) | Line 267 Grp2_Ew(void) |
| void | void |
| Grp2_Ed(void) | Grp2_Ed(void) |
| { | { |
| DWORD op; | UINT32 op; |
| int idx; | int idx; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| Line 271 Grp2_Ed(void) | Line 284 Grp2_Ed(void) |
| void | void |
| Grp2_EbCL(void) | Grp2_EbCL(void) |
| { | { |
| BYTE *out; | UINT8 *out; |
| DWORD op, madr; | UINT32 madr; |
| UINT32 op; | |
| UINT32 cl; | |
| int idx; | int idx; |
| BYTE cl; | |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| idx = (op >> 3) & 7; | idx = (op >> 3) & 7; |
| Line 282 Grp2_EbCL(void) | Line 296 Grp2_EbCL(void) |
| CPU_WORKCLOCK(5); | CPU_WORKCLOCK(5); |
| out = reg8_b20[op]; | out = reg8_b20[op]; |
| cl = CPU_CL; | cl = CPU_CL; |
| CPU_WORKCLOCK(cl & 0x1f); | cl &= 0x1f; |
| CPU_WORKCLOCK(cl); | |
| (*insttable_G2EbCL[idx])(out, cl); | (*insttable_G2EbCL[idx])(out, cl); |
| } else { | } else { |
| CPU_WORKCLOCK(8); | CPU_WORKCLOCK(8); |
| madr = calc_ea_dst(op); | madr = calc_ea_dst(op); |
| cl = CPU_CL; | cl = CPU_CL; |
| CPU_WORKCLOCK(cl & 0x1f); | cl &= 0x1f; |
| CPU_WORKCLOCK(cl); | |
| (*insttable_G2EbCL_ext[idx])(madr, cl); | (*insttable_G2EbCL_ext[idx])(madr, cl); |
| } | } |
| } | } |
| Line 296 Grp2_EbCL(void) | Line 312 Grp2_EbCL(void) |
| void | void |
| Grp2_EwCL(void) | Grp2_EwCL(void) |
| { | { |
| WORD *out; | UINT16 *out; |
| DWORD op, madr; | UINT32 madr; |
| UINT32 op; | |
| UINT32 cl; | |
| int idx; | int idx; |
| BYTE cl; | |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| idx = (op >> 3) & 7; | idx = (op >> 3) & 7; |
| Line 307 Grp2_EwCL(void) | Line 324 Grp2_EwCL(void) |
| CPU_WORKCLOCK(5); | CPU_WORKCLOCK(5); |
| out = reg16_b20[op]; | out = reg16_b20[op]; |
| cl = CPU_CL; | cl = CPU_CL; |
| CPU_WORKCLOCK(cl & 0x1f); | cl &= 0x1f; |
| CPU_WORKCLOCK(cl); | |
| (*insttable_G2EwCL[idx])(out, cl); | (*insttable_G2EwCL[idx])(out, cl); |
| } else { | } else { |
| CPU_WORKCLOCK(8); | CPU_WORKCLOCK(8); |
| madr = calc_ea_dst(op); | madr = calc_ea_dst(op); |
| cl = CPU_CL; | cl = CPU_CL; |
| CPU_WORKCLOCK(cl & 0x1f); | cl &= 0x1f; |
| CPU_WORKCLOCK(cl); | |
| (*insttable_G2EwCL_ext[idx])(madr, cl); | (*insttable_G2EwCL_ext[idx])(madr, cl); |
| } | } |
| } | } |
| Line 321 Grp2_EwCL(void) | Line 340 Grp2_EwCL(void) |
| void | void |
| Grp2_EdCL(void) | Grp2_EdCL(void) |
| { | { |
| DWORD *out; | UINT32 *out; |
| DWORD op, madr; | UINT32 madr; |
| UINT32 op; | |
| UINT32 cl; | |
| int idx; | int idx; |
| BYTE cl; | |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| idx = (op >> 3) & 7; | idx = (op >> 3) & 7; |
| Line 332 Grp2_EdCL(void) | Line 352 Grp2_EdCL(void) |
| CPU_WORKCLOCK(5); | CPU_WORKCLOCK(5); |
| out = reg32_b20[op]; | out = reg32_b20[op]; |
| cl = CPU_CL; | cl = CPU_CL; |
| CPU_WORKCLOCK(cl & 0x1f); | cl &= 0x1f; |
| CPU_WORKCLOCK(cl); | |
| (*insttable_G2EdCL[idx])(out, cl); | (*insttable_G2EdCL[idx])(out, cl); |
| } else { | } else { |
| CPU_WORKCLOCK(8); | CPU_WORKCLOCK(8); |
| madr = calc_ea_dst(op); | madr = calc_ea_dst(op); |
| cl = CPU_CL; | cl = CPU_CL; |
| CPU_WORKCLOCK(cl & 0x1f); | cl &= 0x1f; |
| CPU_WORKCLOCK(cl); | |
| (*insttable_G2EdCL_ext[idx])(madr, cl); | (*insttable_G2EdCL_ext[idx])(madr, cl); |
| } | } |
| } | } |
| Line 348 Grp2_EdCL(void) | Line 370 Grp2_EdCL(void) |
| void | void |
| Grp3_Eb(void) | Grp3_Eb(void) |
| { | { |
| UINT32 op; | |
| DWORD op; | |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G3Eb[(op >> 3) & 7])(op); | (*insttable_G3Eb[(op >> 3) & 7])(op); |
| Line 358 Grp3_Eb(void) | Line 379 Grp3_Eb(void) |
| void | void |
| Grp3_Ew(void) | Grp3_Ew(void) |
| { | { |
| UINT32 op; | |
| DWORD op; | |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G3Ew[(op >> 3) & 7])(op); | (*insttable_G3Ew[(op >> 3) & 7])(op); |
| Line 368 Grp3_Ew(void) | Line 388 Grp3_Ew(void) |
| void | void |
| Grp3_Ed(void) | Grp3_Ed(void) |
| { | { |
| UINT32 op; | |
| DWORD op; | |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G3Ed[(op >> 3) & 7])(op); | (*insttable_G3Ed[(op >> 3) & 7])(op); |
| Line 380 Grp3_Ed(void) | Line 399 Grp3_Ed(void) |
| void | void |
| Grp4(void) | Grp4(void) |
| { | { |
| DWORD op; | UINT32 op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G4[(op >> 3) & 7])(op); | (*insttable_G4[(op >> 3) & 7])(op); |
| Line 391 Grp4(void) | Line 410 Grp4(void) |
| void | void |
| Grp5_Ew(void) | Grp5_Ew(void) |
| { | { |
| DWORD op; | UINT32 op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G5Ew[(op >> 3) & 7])(op); | (*insttable_G5Ew[(op >> 3) & 7])(op); |
| Line 400 Grp5_Ew(void) | Line 419 Grp5_Ew(void) |
| void | void |
| Grp5_Ed(void) | Grp5_Ed(void) |
| { | { |
| DWORD op; | UINT32 op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G5Ed[(op >> 3) & 7])(op); | (*insttable_G5Ed[(op >> 3) & 7])(op); |
| Line 409 Grp5_Ed(void) | Line 428 Grp5_Ed(void) |
| /* group 6 */ | /* group 6 */ |
| void | void |
| Grp6_16(void) | Grp6(void) |
| { | |
| DWORD op; | |
| GET_PCBYTE(op); | |
| (*insttable_G6_16[(op >> 3) & 7])(op); | |
| } | |
| void | |
| Grp6_32(void) | |
| { | { |
| DWORD op; | UINT32 op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G6_32[(op >> 3) & 7])(op); | (*insttable_G6[(op >> 3) & 7])(op); |
| } | } |
| /* group 7 */ | /* group 7 */ |
| void | void |
| Grp7_16(void) | Grp7(void) |
| { | |
| DWORD op; | |
| GET_PCBYTE(op); | |
| (*insttable_G7_16[(op >> 3) & 7])(op); | |
| } | |
| void | |
| Grp7_32(void) | |
| { | { |
| DWORD op; | UINT32 op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G7_32[(op >> 3) & 7])(op); | (*insttable_G7[(op >> 3) & 7])(op); |
| } | } |
| Line 451 Grp7_32(void) | Line 452 Grp7_32(void) |
| void | void |
| Grp8_EwIb(void) | Grp8_EwIb(void) |
| { | { |
| DWORD op; | UINT32 op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G8EwIb[(op >> 3) & 7])(op); | (*insttable_G8EwIb[(op >> 3) & 7])(op); |
| Line 460 Grp8_EwIb(void) | Line 461 Grp8_EwIb(void) |
| void | void |
| Grp8_EdIb(void) | Grp8_EdIb(void) |
| { | { |
| DWORD op; | UINT32 op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G8EdIb[(op >> 3) & 7])(op); | (*insttable_G8EdIb[(op >> 3) & 7])(op); |
| Line 471 Grp8_EdIb(void) | Line 472 Grp8_EdIb(void) |
| void | void |
| Grp9(void) | Grp9(void) |
| { | { |
| DWORD op; | UINT32 op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G9[(op >> 3) & 7])(op); | (*insttable_G9[(op >> 3) & 7])(op); |