diff options
author | 2008-12-30 07:02:01 +0000 | |
---|---|---|
committer | 2008-12-30 07:02:01 +0000 | |
commit | a7071bb8cb77abc5d08a80ee4becbbe98ebc5dd1 (patch) | |
tree | 6e753ad1e71c1c6cc3b4b87cade7dec93a03d764 | |
parent | c303794661def755a3dcff24d9bc5708f79b6213 (diff) |
Hooked up PPC602 IBR.
-rw-r--r-- | src/emu/cpu/powerpc/ppcdrc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/emu/cpu/powerpc/ppcdrc.c b/src/emu/cpu/powerpc/ppcdrc.c index 6211981dae7..5d46642caca 100644 --- a/src/emu/cpu/powerpc/ppcdrc.c +++ b/src/emu/cpu/powerpc/ppcdrc.c @@ -1337,7 +1337,10 @@ static void static_generate_exception(powerpc_state *ppc, UINT8 exception, int r generate_update_mode(ppc, block); // <update mode> /* determine our target PC */ - UML_MOV(block, IREG(0), IMM(0x00000000)); // mov i0,0x00000000 + if (ppc->flavor == PPC_MODEL_602) + UML_MOV(block, IREG(0), SPR32(SPR602_IBR)); // mov i0,[ibr] + else + UML_MOV(block, IREG(0), IMM(0x00000000)); // mov i0,0x00000000 UML_TEST(block, MSR32, IMM(MSROEA_IP)); // test [msr],IP UML_MOVc(block, IF_NZ, IREG(0), IMM(0xfff00000)); // mov i0,0xfff00000,nz UML_OR(block, IREG(0), IREG(0), IREG(3)); // or i0,i0,i3 |