diff --git a/src/emu/cpu/arm/arm.c b/src/emu/cpu/arm/arm.c index bed6c0f4579..0383e0621af 100644 --- a/src/emu/cpu/arm/arm.c +++ b/src/emu/cpu/arm/arm.c @@ -321,6 +321,17 @@ INLINE void SetRegister( ARM_REGS* cpustate, int rIndex, UINT32 value ) cpustate->sArmRegister[sRegisterTable[MODE][rIndex]] = value; } +INLINE UINT32 GetModeRegister( ARM_REGS* cpustate, int mode, int rIndex ) +{ + return cpustate->sArmRegister[sRegisterTable[mode][rIndex]]; +} + +INLINE void SetModeRegister( ARM_REGS* cpustate, int mode, int rIndex, UINT32 value ) +{ + cpustate->sArmRegister[sRegisterTable[mode][rIndex]] = value; +} + + /***************************************************************************/ static CPU_RESET( arm ) @@ -1071,6 +1082,8 @@ static void HandleMemBlock( ARM_REGS* cpustate, UINT32 insn ) /* Loading */ if (insn & INSN_BDT_U) { + int mode = MODE; + /* Incrementing */ if (!(insn & INSN_BDT_P)) rbp = rbp + (- 4); @@ -1098,7 +1111,7 @@ static void HandleMemBlock( ARM_REGS* cpustate, UINT32 insn ) logerror("%08x: Illegal LDRM writeback to r15\n",R15); if ((insn&(1<