aboutsummaryrefslogtreecommitdiff
path: root/target-sparc
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-03-20 12:43:29 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-03-20 12:43:29 +0000
commitc3278b7bf0be16b06f51aa82ffbf4807e608e7b1 (patch)
treeb07018f2567798b25b4e3063d1133ccc0f4c94de /target-sparc
parent86bd2ca58a99c5dec1372809236640bcc8ede2cd (diff)
sparc exception fix (we go up to the shell prompt)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1343 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sparc')
-rw-r--r--target-sparc/helper.c2
-rw-r--r--target-sparc/translate.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/target-sparc/helper.c b/target-sparc/helper.c
index e6891ccbb1..82a3a4ec90 100644
--- a/target-sparc/helper.c
+++ b/target-sparc/helper.c
@@ -94,7 +94,7 @@ void tlb_fill(target_ulong addr, int is_write, int is_user, void *retaddr)
if (tb) {
/* the PC is inside the translated code. It means that we have
a virtual CPU fault */
- cpu_restore_state(tb, env, pc, NULL);
+ cpu_restore_state(tb, env, pc, (void *)T2);
}
}
cpu_loop_exit();
diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index 9f5c2f5c3d..543ed927b6 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -1582,6 +1582,8 @@ static inline int gen_intermediate_code_internal(TranslationBlock * tb,
page_dump(logfile);
}
#endif
+ gen_opc_jump_pc[0] = dc->jump_pc[0];
+ gen_opc_jump_pc[1] = dc->jump_pc[1];
} else {
tb->size = last_pc + 4 - pc_start;
}