--- trunk/src/cpus/cpu_ppc.c 2007/10/08 16:19:56 24 +++ trunk/src/cpus/cpu_ppc.c 2007/10/08 16:20:40 30 @@ -25,7 +25,7 @@ * SUCH DAMAGE. * * - * $Id: cpu_ppc.c,v 1.58 2006/06/16 18:31:26 debug Exp $ + * $Id: cpu_ppc.c,v 1.61 2006/07/24 21:14:52 debug Exp $ * * PowerPC/POWER CPU emulation. */ @@ -116,12 +116,14 @@ cpu->is_32bit = (cpu->cd.ppc.bits == 32)? 1 : 0; if (cpu->is_32bit) { + cpu->run_instr = ppc32_run_instr; cpu->update_translation_table = ppc32_update_translation_table; cpu->invalidate_translation_caches = ppc32_invalidate_translation_caches; cpu->invalidate_code_translation = ppc32_invalidate_code_translation; } else { + cpu->run_instr = ppc_run_instr; cpu->update_translation_table = ppc_update_translation_table; cpu->invalidate_translation_caches = ppc_invalidate_translation_caches; @@ -129,7 +131,7 @@ ppc_invalidate_code_translation; } - cpu->translate_address = ppc_translate_address; + cpu->translate_v2p = ppc_translate_v2p; /* Only show name and caches etc for CPU nr 0 (in SMP machines): */ if (cpu_id == 0) { @@ -160,8 +162,6 @@ /* Some default stack pointer value. TODO: move this? */ cpu->cd.ppc.gpr[1] = machine->physical_ram_in_mb * 1048576 - 4096; - ppc_init_64bit_dummy_tables(cpu); - /* * NOTE/TODO: Ugly hack for OpenFirmware emulation: */ @@ -272,7 +272,8 @@ *valuep = cpu->cd.ppc.msr; if (check_for_interrupts && cpu->cd.ppc.msr & PPC_MSR_EE) { - if (cpu->cd.ppc.dec_intr_pending) { + if (cpu->cd.ppc.dec_intr_pending && + !(cpu->cd.ppc.cpu_type.flags & PPC_NO_DEC)) { ppc_exception(cpu, PPC_EXCEPTION_DEC); cpu->cd.ppc.dec_intr_pending = 0; } else if (cpu->cd.ppc.irq_asserted)