aboutsummaryrefslogtreecommitdiff
path: root/target-tricore
diff options
context:
space:
mode:
authorBastian Koppelmann <kbastian@mail.uni-paderborn.de>2015-05-05 19:41:10 +0200
committerBastian Koppelmann <kbastian@mail.uni-paderborn.de>2015-05-11 14:25:49 +0200
commit3446a11181c6e8263dbd9c13c28986df4317099e (patch)
treeb2c961ceb24251d296d83022ad6e3c12f2f9ac85 /target-tricore
parentbc72f8aaf23fa11833e0e04c10b5c0e1036c2609 (diff)
downloadqemu-3446a11181c6e8263dbd9c13c28986df4317099e.zip
qemu-3446a11181c6e8263dbd9c13c28986df4317099e.tar.gz
qemu-3446a11181c6e8263dbd9c13c28986df4317099e.tar.bz2
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.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/target-tricore/op_helper.c b/target-tricore/op_helper.c
index 1dc25c2..9919b5b 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; */