diff options
author | Bastian Koppelmann <kbastian@mail.uni-paderborn.de> | 2015-05-05 19:41:10 +0200 |
---|---|---|
committer | Bastian Koppelmann <kbastian@mail.uni-paderborn.de> | 2015-05-11 14:25:49 +0200 |
commit | 3446a11181c6e8263dbd9c13c28986df4317099e (patch) | |
tree | b2c961ceb24251d296d83022ad6e3c12f2f9ac85 /target-tricore | |
parent | bc72f8aaf23fa11833e0e04c10b5c0e1036c2609 (diff) |
target-tricore: fix rfe not restoring the PC
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Diffstat (limited to 'target-tricore')
-rw-r--r-- | target-tricore/op_helper.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/target-tricore/op_helper.c b/target-tricore/op_helper.c index 1dc25c2349..9919b5b17b 100644 --- a/target-tricore/op_helper.c +++ b/target-tricore/op_helper.c @@ -2458,6 +2458,7 @@ void helper_rfe(CPUTriCoreState *env) if (!cdc_zero(&(env->PSW)) && (env->PSW & MASK_PSW_CDE)) { /* raise MNG trap */ } + env->PC = env->gpr_a[11] & ~0x1; /* ICR.IE = PCXI.PIE; */ env->ICR = (env->ICR & ~MASK_ICR_IE) + ((env->PCXI & MASK_PCXI_PIE) >> 15); /* ICR.CCPN = PCXI.PCPN; */ |