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

Comparing SheepShaver/src/kpx_cpu/sheepshaver_glue.cpp (file contents):
Revision 1.68 by gbeauche, 2006-05-03T21:45:14Z vs.
Revision 1.72 by gbeauche, 2007-01-17T06:20:36Z

# Line 191 | Line 191 | void sheepshaver_cpu::init_decoder()
191          static const instr_info_t sheep_ii_table[] = {
192                  { "sheep",
193                    (execute_pmf)&sheepshaver_cpu::execute_sheep,
194                  NULL,
194                    PPC_I(SHEEP),
195                    D_form, 6, 0, CFLOW_JUMP | CFLOW_TRAP
196                  }
# Line 336 | Line 335 | int sheepshaver_cpu::compile1(codegen_co
335                          status = COMPILE_CODE_OK;
336                          break;
337                  }
338 + #endif
339                  case NATIVE_CHECK_LOAD_INVOC:
340                          dg.gen_load_T0_GPR(3);
341                          dg.gen_load_T1_GPR(4);
# Line 351 | Line 351 | int sheepshaver_cpu::compile1(codegen_co
351                          dg.gen_invoke_T0_T1_T2((void (*)(uint32, uint32, uint32))named_check_load_invoc);
352                          status = COMPILE_CODE_OK;
353                          break;
354 < #endif
355 <                case NATIVE_BITBLT:
354 >                case NATIVE_NQD_SYNC_HOOK:
355 >                        dg.gen_load_T0_GPR(3);
356 >                        dg.gen_invoke_T0_ret_T0((uint32 (*)(uint32))NQD_sync_hook);
357 >                        dg.gen_store_T0_GPR(3);
358 >                        status = COMPILE_CODE_OK;
359 >                        break;
360 >                case NATIVE_NQD_BITBLT_HOOK:
361 >                        dg.gen_load_T0_GPR(3);
362 >                        dg.gen_invoke_T0_ret_T0((uint32 (*)(uint32))NQD_bitblt_hook);
363 >                        dg.gen_store_T0_GPR(3);
364 >                        status = COMPILE_CODE_OK;
365 >                        break;
366 >                case NATIVE_NQD_FILLRECT_HOOK:
367 >                        dg.gen_load_T0_GPR(3);
368 >                        dg.gen_invoke_T0_ret_T0((uint32 (*)(uint32))NQD_fillrect_hook);
369 >                        dg.gen_store_T0_GPR(3);
370 >                        status = COMPILE_CODE_OK;
371 >                        break;
372 >                case NATIVE_NQD_UNKNOWN_HOOK:
373 >                        dg.gen_load_T0_GPR(3);
374 >                        dg.gen_invoke_T0_ret_T0((uint32 (*)(uint32))NQD_unknown_hook);
375 >                        dg.gen_store_T0_GPR(3);
376 >                        status = COMPILE_CODE_OK;
377 >                        break;
378 >                case NATIVE_NQD_BITBLT:
379                          dg.gen_load_T0_GPR(3);
380                          dg.gen_invoke_T0((void (*)(uint32))NQD_bitblt);
381                          status = COMPILE_CODE_OK;
382                          break;
383 <                case NATIVE_INVRECT:
383 >                case NATIVE_NQD_INVRECT:
384                          dg.gen_load_T0_GPR(3);
385                          dg.gen_invoke_T0((void (*)(uint32))NQD_invrect);
386                          status = COMPILE_CODE_OK;
387                          break;
388 <                case NATIVE_FILLRECT:
388 >                case NATIVE_NQD_FILLRECT:
389                          dg.gen_load_T0_GPR(3);
390                          dg.gen_invoke_T0((void (*)(uint32))NQD_fillrect);
391                          status = COMPILE_CODE_OK;
# Line 373 | Line 396 | int sheepshaver_cpu::compile1(codegen_co
396                          if (!FN_field::test(opcode))
397                                  cg_context.done_compile = false;
398                          else {
399 <                                dg.gen_load_A0_LR();
400 <                                dg.gen_set_PC_A0();
399 >                                dg.gen_load_T0_LR_aligned();
400 >                                dg.gen_set_PC_T0();
401                                  cg_context.done_compile = true;
402                          }
403                          break;
# Line 384 | Line 407 | int sheepshaver_cpu::compile1(codegen_co
407                  if (!FN_field::test(opcode))
408                          dg.gen_set_PC_im(cg_context.pc + 4);
409                  else {
410 <                        dg.gen_load_A0_LR();
411 <                        dg.gen_set_PC_A0();
410 >                        dg.gen_load_T0_LR_aligned();
411 >                        dg.gen_set_PC_T0();
412                  }
413                  dg.gen_mov_32_T0_im(selector);
414                  dg.gen_jmp(native_op_trampoline);
# Line 1033 | Line 1056 | void sheepshaver_cpu::execute_native_op(
1056          case NATIVE_ETHER_RSRV:
1057                  gpr(3) = ether_rsrv((queue_t *)gpr(3));
1058                  break;
1059 <        case NATIVE_SYNC_HOOK:
1059 >        case NATIVE_NQD_SYNC_HOOK:
1060                  gpr(3) = NQD_sync_hook(gpr(3));
1061                  break;
1062 <        case NATIVE_BITBLT_HOOK:
1062 >        case NATIVE_NQD_UNKNOWN_HOOK:
1063 >                gpr(3) = NQD_unknown_hook(gpr(3));
1064 >                break;
1065 >        case NATIVE_NQD_BITBLT_HOOK:
1066                  gpr(3) = NQD_bitblt_hook(gpr(3));
1067                  break;
1068 <        case NATIVE_BITBLT:
1068 >        case NATIVE_NQD_BITBLT:
1069                  NQD_bitblt(gpr(3));
1070                  break;
1071 <        case NATIVE_FILLRECT_HOOK:
1071 >        case NATIVE_NQD_FILLRECT_HOOK:
1072                  gpr(3) = NQD_fillrect_hook(gpr(3));
1073                  break;
1074 <        case NATIVE_INVRECT:
1074 >        case NATIVE_NQD_INVRECT:
1075                  NQD_invrect(gpr(3));
1076                  break;
1077 <        case NATIVE_FILLRECT:
1077 >        case NATIVE_NQD_FILLRECT:
1078                  NQD_fillrect(gpr(3));
1079                  break;
1080          case NATIVE_SERIAL_NOTHING:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines