37 |
|
|
38 |
|
|
39 |
|
/* NativeOp instruction format: |
40 |
< |
+------------+--------------------------+--+----------+------------+ |
41 |
< |
| 6 | |FN| OP | 2 | |
42 |
< |
+------------+--------------------------+--+----------+------------+ |
43 |
< |
0 5 |6 19 20 21 25 26 31 |
40 |
> |
+------------+-------------------------+--+-----------+------------+ |
41 |
> |
| 6 | |FN| OP | 2 | |
42 |
> |
+------------+-------------------------+--+-----------+------------+ |
43 |
> |
0 5 |6 18 19 20 25 26 31 |
44 |
|
*/ |
45 |
|
|
46 |
< |
#define POWERPC_NATIVE_OP(LR, OP) \ |
47 |
< |
(POWERPC_EMUL_OP | ((LR) << 11) | (((uint32)OP) << 6) | 2) |
46 |
> |
#define POWERPC_NATIVE_OP(FN, OP) \ |
47 |
> |
(POWERPC_EMUL_OP | ((FN) << 12) | (((uint32)OP) << 6) | 2) |
48 |
|
|
49 |
|
/* |
50 |
|
* Return the fake PowerPC opcode to handle specified native code |
55 |
|
{ |
56 |
|
uint32 opcode; |
57 |
|
switch (selector) { |
58 |
– |
case NATIVE_DISABLE_INTERRUPT: |
59 |
– |
case NATIVE_ENABLE_INTERRUPT: |
58 |
|
case NATIVE_CHECK_LOAD_INVOC: |
59 |
|
opcode = POWERPC_NATIVE_OP(0, selector); |
60 |
|
break; |
87 |
|
case NATIVE_FILLRECT_HOOK: |
88 |
|
case NATIVE_BITBLT: |
89 |
|
case NATIVE_INVRECT: |
90 |
< |
case NATIVE_FILLRECT_8: |
93 |
< |
case NATIVE_FILLRECT_32: |
90 |
> |
case NATIVE_FILLRECT: |
91 |
|
opcode = POWERPC_NATIVE_OP(1, selector); |
92 |
|
break; |
93 |
|
default: |
253 |
|
DEFINE_NATIVE_OP(NATIVE_MAKE_EXECUTABLE, MakeExecutable); |
254 |
|
DEFINE_NATIVE_OP(NATIVE_SYNC_HOOK, NQD_sync_hook); |
255 |
|
DEFINE_NATIVE_OP(NATIVE_BITBLT_HOOK, NQD_bitblt_hook); |
256 |
< |
// DEFINE_NATIVE_OP(NATIVE_FILLRECT_HOOK, NQD_fillrect_hook); |
256 |
> |
DEFINE_NATIVE_OP(NATIVE_FILLRECT_HOOK, NQD_fillrect_hook); |
257 |
|
DEFINE_NATIVE_OP(NATIVE_BITBLT, NQD_bitblt); |
258 |
< |
// DEFINE_NATIVE_OP(NATIVE_INVRECT, NQD_invrect); |
259 |
< |
// DEFINE_NATIVE_OP(NATIVE_FILLRECT_8, NQD_fillrect8); |
263 |
< |
// DEFINE_NATIVE_OP(NATIVE_FILLRECT_32, NQD_fillrect32); |
258 |
> |
DEFINE_NATIVE_OP(NATIVE_INVRECT, NQD_invrect); |
259 |
> |
DEFINE_NATIVE_OP(NATIVE_FILLRECT, NQD_fillrect); |
260 |
|
#undef DEFINE_NATIVE_OP |
261 |
|
#endif |
262 |
|
|