diff options
Diffstat (limited to 'target-mips/translate.c')
-rw-r--r-- | target-mips/translate.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/target-mips/translate.c b/target-mips/translate.c index b0cc3e7174..59868f695f 100644 --- a/target-mips/translate.c +++ b/target-mips/translate.c @@ -5238,6 +5238,9 @@ gen_intermediate_code_internal (CPUState *env, TranslationBlock *tb, switch (ctx.bstate) { case BS_EXCP: gen_op_interrupt_restart(); + gen_op_reset_T0(); + /* Generate the return instruction. */ + gen_op_exit_tb(); break; case BS_STOP: gen_op_interrupt_restart(); @@ -5248,11 +5251,11 @@ gen_intermediate_code_internal (CPUState *env, TranslationBlock *tb, break; case BS_BRANCH: default: + gen_op_reset_T0(); + /* Generate the return instruction. */ + gen_op_exit_tb(); break; } - gen_op_reset_T0(); - /* Generate the return instruction. */ - gen_op_exit_tb(); } done_generating: *gen_opc_ptr = INDEX_op_end; |