ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/SheepShaver/src/thunks.cpp
(Generate patch)

Comparing SheepShaver/src/thunks.cpp (file contents):
Revision 1.17 by gbeauche, 2006-05-13T17:12:18Z vs.
Revision 1.18 by gbeauche, 2006-05-14T07:21:10Z

# Line 57 | Line 57 | uint32 NativeOpcode(int selector)
57          switch (selector) {
58          case NATIVE_CHECK_LOAD_INVOC:
59          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);
68                  break;
69          case NATIVE_PATCH_NAME_REGISTRY:
# Line 89 | Line 96 | uint32 NativeOpcode(int selector)
96          case NATIVE_GET_NAMED_RESOURCE:
97          case NATIVE_GET_1_NAMED_RESOURCE:
98          case NATIVE_MAKE_EXECUTABLE:
92        case NATIVE_NQD_SYNC_HOOK:
93        case NATIVE_NQD_BITBLT_HOOK:
94        case NATIVE_NQD_FILLRECT_HOOK:
95        case NATIVE_NQD_UNKNOWN_HOOK:
96        case NATIVE_NQD_BITBLT:
97        case NATIVE_NQD_INVRECT:
98        case NATIVE_NQD_FILLRECT:
99                  opcode = POWERPC_NATIVE_OP(1, selector);
100                  break;
101          default:
# Line 262 | Line 262 | bool ThunksInit(void)
262   {
263   #if EMULATED_PPC
264          for (int i = 0; i < NATIVE_OP_MAX; i++) {
265 <                uintptr base = SheepMem::Reserve(12);
265 >                uintptr base = SheepMem::Reserve(16);
266                  WriteMacInt32(base + 0, base + 8);
267                  WriteMacInt32(base + 4, 0); // Fake TVECT
268                  WriteMacInt32(base + 8, NativeOpcode(i));
269 +                WriteMacInt32(base + 12, POWERPC_BLR);
270                  native_op[i].tvect = base;
271                  native_op[i].func  = base + 8;
272          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines