diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-03-20 12:43:29 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-03-20 12:43:29 +0000 |
commit | c3278b7bf0be16b06f51aa82ffbf4807e608e7b1 (patch) | |
tree | b07018f2567798b25b4e3063d1133ccc0f4c94de /target-sparc | |
parent | 86bd2ca58a99c5dec1372809236640bcc8ede2cd (diff) | |
download | hqemu-c3278b7bf0be16b06f51aa82ffbf4807e608e7b1.zip hqemu-c3278b7bf0be16b06f51aa82ffbf4807e608e7b1.tar.gz |
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.c | 2 | ||||
-rw-r--r-- | target-sparc/translate.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/target-sparc/helper.c b/target-sparc/helper.c index e6891cc..82a3a4e 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 9f5c2f5..543ed92 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; } |