diff options
Diffstat (limited to 'target/openrisc')
-rw-r--r-- | target/openrisc/sys_helper.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/target/openrisc/sys_helper.c b/target/openrisc/sys_helper.c index 9fb7d86..b284064 100644 --- a/target/openrisc/sys_helper.c +++ b/target/openrisc/sys_helper.c @@ -46,7 +46,7 @@ void HELPER(mtspr)(CPUOpenRISCState *env, break; case TO_SPR(0, 16): /* NPC */ - cpu_restore_state(cs, GETPC()); + cpu_restore_state(cs, GETPC(), true); /* ??? Mirror or1ksim in not trashing delayed branch state when "jumping" to the current instruction. */ if (env->pc != rb) { @@ -146,7 +146,7 @@ void HELPER(mtspr)(CPUOpenRISCState *env, case TO_SPR(8, 0): /* PMR */ env->pmr = rb; if (env->pmr & PMR_DME || env->pmr & PMR_SME) { - cpu_restore_state(cs, GETPC()); + cpu_restore_state(cs, GETPC(), true); env->pc += 4; cs->halted = 1; raise_exception(cpu, EXCP_HALTED); @@ -230,14 +230,14 @@ target_ulong HELPER(mfspr)(CPUOpenRISCState *env, return env->evbar; case TO_SPR(0, 16): /* NPC (equals PC) */ - cpu_restore_state(cs, GETPC()); + cpu_restore_state(cs, GETPC(), false); return env->pc; case TO_SPR(0, 17): /* SR */ return cpu_get_sr(env); case TO_SPR(0, 18): /* PPC */ - cpu_restore_state(cs, GETPC()); + cpu_restore_state(cs, GETPC(), false); return env->ppc; case TO_SPR(0, 32): /* EPCR */ |