| 57 |
switch (selector) { |
switch (selector) { |
| 58 |
case NATIVE_CHECK_LOAD_INVOC: |
case NATIVE_CHECK_LOAD_INVOC: |
| 59 |
case NATIVE_NAMED_CHECK_LOAD_INVOC: |
case NATIVE_NAMED_CHECK_LOAD_INVOC: |
| 60 |
|
case NATIVE_NQD_SYNC_HOOK: |
| 61 |
|
case NATIVE_NQD_BITBLT_HOOK: |
| 62 |
|
case NATIVE_NQD_FILLRECT_HOOK: |
| 63 |
|
case NATIVE_NQD_UNKNOWN_HOOK: |
| 64 |
|
case NATIVE_NQD_BITBLT: |
| 65 |
|
case NATIVE_NQD_INVRECT: |
| 66 |
|
case NATIVE_NQD_FILLRECT: |
| 67 |
opcode = POWERPC_NATIVE_OP(0, selector); |
opcode = POWERPC_NATIVE_OP(0, selector); |
| 68 |
break; |
break; |
| 69 |
case NATIVE_PATCH_NAME_REGISTRY: |
case NATIVE_PATCH_NAME_REGISTRY: |
| 96 |
case NATIVE_GET_NAMED_RESOURCE: |
case NATIVE_GET_NAMED_RESOURCE: |
| 97 |
case NATIVE_GET_1_NAMED_RESOURCE: |
case NATIVE_GET_1_NAMED_RESOURCE: |
| 98 |
case NATIVE_MAKE_EXECUTABLE: |
case NATIVE_MAKE_EXECUTABLE: |
|
case NATIVE_NQD_SYNC_HOOK: |
|
|
case NATIVE_NQD_BITBLT_HOOK: |
|
|
case NATIVE_NQD_FILLRECT_HOOK: |
|
|
case NATIVE_NQD_UNKNOWN_HOOK: |
|
|
case NATIVE_NQD_BITBLT: |
|
|
case NATIVE_NQD_INVRECT: |
|
|
case NATIVE_NQD_FILLRECT: |
|
| 99 |
opcode = POWERPC_NATIVE_OP(1, selector); |
opcode = POWERPC_NATIVE_OP(1, selector); |
| 100 |
break; |
break; |
| 101 |
default: |
default: |
| 262 |
{ |
{ |
| 263 |
#if EMULATED_PPC |
#if EMULATED_PPC |
| 264 |
for (int i = 0; i < NATIVE_OP_MAX; i++) { |
for (int i = 0; i < NATIVE_OP_MAX; i++) { |
| 265 |
uintptr base = SheepMem::Reserve(12); |
uintptr base = SheepMem::Reserve(16); |
| 266 |
WriteMacInt32(base + 0, base + 8); |
WriteMacInt32(base + 0, base + 8); |
| 267 |
WriteMacInt32(base + 4, 0); // Fake TVECT |
WriteMacInt32(base + 4, 0); // Fake TVECT |
| 268 |
WriteMacInt32(base + 8, NativeOpcode(i)); |
WriteMacInt32(base + 8, NativeOpcode(i)); |
| 269 |
|
WriteMacInt32(base + 12, POWERPC_BLR); |
| 270 |
native_op[i].tvect = base; |
native_op[i].tvect = base; |
| 271 |
native_op[i].func = base + 8; |
native_op[i].func = base + 8; |
| 272 |
} |
} |