|
|
| version 1.1, 2003/12/08 00:55:31 | version 1.4, 2004/01/15 15:50:33 |
|---|---|
| Line 38 | Line 38 |
| void | void |
| Grp1_EbIb(void) | Grp1_EbIb(void) |
| { | { |
| DWORD op; | BYTE *out; |
| DWORD op, madr, 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(3); |
| (*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); | |
| } | } |
| } | } |
| Line 282 Grp2_EbCL(void) | Line 287 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 307 Grp2_EwCL(void) | Line 314 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 332 Grp2_EdCL(void) | Line 341 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 359 Grp2_EdCL(void) |
| void | void |
| Grp3_Eb(void) | Grp3_Eb(void) |
| { | { |
| DWORD op; | DWORD op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| Line 358 Grp3_Eb(void) | Line 368 Grp3_Eb(void) |
| void | void |
| Grp3_Ew(void) | Grp3_Ew(void) |
| { | { |
| DWORD op; | DWORD op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| Line 368 Grp3_Ew(void) | Line 377 Grp3_Ew(void) |
| void | void |
| Grp3_Ed(void) | Grp3_Ed(void) |
| { | { |
| DWORD op; | DWORD op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| Line 409 Grp5_Ed(void) | Line 417 Grp5_Ed(void) |
| /* group 6 */ | /* group 6 */ |
| void | void |
| Grp6_16(void) | Grp6(void) |
| { | { |
| DWORD op; | DWORD op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G6_16[(op >> 3) & 7])(op); | (*insttable_G6[(op >> 3) & 7])(op); |
| } | |
| void | |
| Grp6_32(void) | |
| { | |
| DWORD op; | |
| GET_PCBYTE(op); | |
| (*insttable_G6_32[(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; | DWORD op; |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| (*insttable_G7_32[(op >> 3) & 7])(op); | (*insttable_G7[(op >> 3) & 7])(op); |
| } | } |