diff --git a/target-mips/translate.c b/target-mips/translate.c index b0cc3e71740a6d3f67731588884fcd91dc07f76c..59868f695f05df11017b268128f0c0fec0d7ea27 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;