summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-12-30 07:02:01 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-12-30 07:02:01 +0000
commita7071bb8cb77abc5d08a80ee4becbbe98ebc5dd1 (patch)
tree6e753ad1e71c1c6cc3b4b87cade7dec93a03d764
parentc303794661def755a3dcff24d9bc5708f79b6213 (diff)
Hooked up PPC602 IBR.
-rw-r--r--src/emu/cpu/powerpc/ppcdrc.c5
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