28 |
|
const uint32 POWERPC_BCTR = 0x4e800420; |
29 |
|
const uint32 POWERPC_EMUL_OP = 0x18000000; // Base opcode for EMUL_OP opcodes (only used with PPC emulation) |
30 |
|
|
31 |
+ |
enum { // Selectors for NATIVE_EXEC callbacks (only used with PPC emulation) |
32 |
+ |
NATIVE_PATCH_NAME_REGISTRY, |
33 |
+ |
NATIVE_VIDEO_INSTALL_ACCEL, |
34 |
+ |
NATIVE_VIDEO_VBL, |
35 |
+ |
NATIVE_VIDEO_DO_DRIVER_IO, |
36 |
+ |
NATIVE_ETHER_IRQ, |
37 |
+ |
NATIVE_ETHER_INIT, |
38 |
+ |
NATIVE_ETHER_TERM, |
39 |
+ |
NATIVE_ETHER_OPEN, |
40 |
+ |
NATIVE_ETHER_CLOSE, |
41 |
+ |
NATIVE_ETHER_WPUT, |
42 |
+ |
NATIVE_ETHER_RSRV, |
43 |
+ |
NATIVE_SERIAL_NOTHING, |
44 |
+ |
NATIVE_SERIAL_OPEN, |
45 |
+ |
NATIVE_SERIAL_PRIME_IN, |
46 |
+ |
NATIVE_SERIAL_PRIME_OUT, |
47 |
+ |
NATIVE_SERIAL_CONTROL, |
48 |
+ |
NATIVE_SERIAL_STATUS, |
49 |
+ |
NATIVE_SERIAL_CLOSE, |
50 |
+ |
NATIVE_GET_RESOURCE, |
51 |
+ |
NATIVE_GET_1_RESOURCE, |
52 |
+ |
NATIVE_GET_IND_RESOURCE, |
53 |
+ |
NATIVE_GET_1_IND_RESOURCE, |
54 |
+ |
NATIVE_R_GET_RESOURCE, |
55 |
+ |
NATIVE_OP_MAX |
56 |
+ |
}; |
57 |
+ |
#define POWERPC_NATIVE_OP_FUNC(SELECTOR) ((uint32)(uintptr)&NativeOpTable[SELECTOR]) |
58 |
+ |
extern const uint32 NativeOpTable[NATIVE_OP_MAX]; |
59 |
+ |
|
60 |
|
// 68k opcodes |
61 |
|
const uint16 M68K_ILLEGAL = 0x4afc; |
62 |
|
const uint16 M68K_NOP = 0x4e71; |
82 |
|
}; |
83 |
|
const uint16 M68K_EMUL_RETURN = 0xfe40; // Extended opcodes |
84 |
|
const uint16 M68K_EXEC_RETURN = 0xfe41; |
85 |
< |
const uint16 M68K_EMUL_BREAK = 0xfe42; |
85 |
> |
const uint16 M68K_EXEC_NATIVE = 0xfe42; |
86 |
> |
const uint16 M68K_EMUL_BREAK = 0xfe43; |
87 |
|
const uint16 M68K_EMUL_OP_XPRAM1 = M68K_EMUL_BREAK + OP_XPRAM1; |
88 |
|
const uint16 M68K_EMUL_OP_XPRAM2 = M68K_EMUL_BREAK + OP_XPRAM2; |
89 |
|
const uint16 M68K_EMUL_OP_XPRAM3 = M68K_EMUL_BREAK + OP_XPRAM3; |
133 |
|
const uint16 M68K_EMUL_OP_EXTFS_HFS = M68K_EMUL_BREAK + OP_EXTFS_HFS; |
134 |
|
const uint16 M68K_EMUL_OP_IDLE_TIME = M68K_EMUL_BREAK + OP_IDLE_TIME; |
135 |
|
|
136 |
< |
extern void EmulOp(M68kRegisters *r, uint32 pc, int selector); |
136 |
> |
extern "C" void EmulOp(M68kRegisters *r, uint32 pc, int selector); |
137 |
|
|
138 |
|
#endif |