summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ryan Holtz <rholtz@batcountryentertainment.com>2012-01-04 16:58:26 +0000
committer Ryan Holtz <rholtz@batcountryentertainment.com>2012-01-04 16:58:26 +0000
commit5cb1e8fae961ce8255f6e331d5ab2474d0182a0d (patch)
treef8e7d91bafdc2074e8cef848dce1515d66a56753
parent505dbc504b0ea959f1732037e985406a4e39dc56 (diff)
ARM7: Fixed 39-in-1 booting. [Tim Schuerewegen]
-rw-r--r--src/emu/cpu/arm7/arm7.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/emu/cpu/arm7/arm7.c b/src/emu/cpu/arm7/arm7.c
index d3c547ed3da..09e42561faf 100644
--- a/src/emu/cpu/arm7/arm7.c
+++ b/src/emu/cpu/arm7/arm7.c
@@ -1197,12 +1197,28 @@ static WRITE32_DEVICE_HANDLER( arm7_rt_w_callback )
void arm7_dt_r_callback(arm_state *cpustate, UINT32 insn, UINT32 *prn, UINT32 (*read32)(arm_state *cpustate, UINT32 addr))
{
- cpustate->pendingUnd = 1;
+ UINT8 cpn = (insn >> 8) & 0xF;
+ if ((cpustate->archFlags & eARM_ARCHFLAGS_XSCALE) && (cpn == 0))
+ {
+ LOG( ( "arm7_dt_r_callback: DSP Coprocessor 0 (CP0) not yet emulated (PC %08x)\n", GET_PC ) );
+ }
+ else
+ {
+ cpustate->pendingUnd = 1;
+ }
}
void arm7_dt_w_callback(arm_state *cpustate, UINT32 insn, UINT32 *prn, void (*write32)(arm_state *cpustate, UINT32 addr, UINT32 data))
{
- cpustate->pendingUnd = 1;
+ UINT8 cpn = (insn >> 8) & 0xF;
+ if ((cpustate->archFlags & eARM_ARCHFLAGS_XSCALE) && (cpn == 0))
+ {
+ LOG( ( "arm7_dt_w_callback: DSP Coprocessor 0 (CP0) not yet emulated (PC %08x)\n", GET_PC ) );
+ }
+ else
+ {
+ cpustate->pendingUnd = 1;
+ }
}
DEFINE_LEGACY_CPU_DEVICE(ARM7, arm7);