target/mips: Drop exit checks for singlestep_enabled

GDB single-stepping is now handled generically.

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2021-07-19 14:04:32 -10:00
parent ef00cd4a22
commit 1a79c41399
1 changed files with 18 additions and 32 deletions

View File

@ -4823,13 +4823,8 @@ static void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest)
tcg_gen_exit_tb(ctx->base.tb, n); tcg_gen_exit_tb(ctx->base.tb, n);
} else { } else {
gen_save_pc(dest); gen_save_pc(dest);
if (ctx->base.singlestep_enabled) {
save_cpu_state(ctx, 0);
gen_helper_raise_exception_debug(cpu_env);
} else {
tcg_gen_lookup_and_goto_ptr(); tcg_gen_lookup_and_goto_ptr();
} }
}
} }
/* Branches (before delay slot) */ /* Branches (before delay slot) */
@ -11788,10 +11783,6 @@ static void gen_branch(DisasContext *ctx, int insn_bytes)
} else { } else {
tcg_gen_mov_tl(cpu_PC, btarget); tcg_gen_mov_tl(cpu_PC, btarget);
} }
if (ctx->base.singlestep_enabled) {
save_cpu_state(ctx, 0);
gen_helper_raise_exception_debug(cpu_env);
}
tcg_gen_lookup_and_goto_ptr(); tcg_gen_lookup_and_goto_ptr();
break; break;
default: default:
@ -16111,10 +16102,6 @@ static void mips_tr_tb_stop(DisasContextBase *dcbase, CPUState *cs)
{ {
DisasContext *ctx = container_of(dcbase, DisasContext, base); DisasContext *ctx = container_of(dcbase, DisasContext, base);
if (ctx->base.singlestep_enabled && ctx->base.is_jmp != DISAS_NORETURN) {
save_cpu_state(ctx, ctx->base.is_jmp != DISAS_EXIT);
gen_helper_raise_exception_debug(cpu_env);
} else {
switch (ctx->base.is_jmp) { switch (ctx->base.is_jmp) {
case DISAS_STOP: case DISAS_STOP:
gen_save_pc(ctx->base.pc_next); gen_save_pc(ctx->base.pc_next);
@ -16133,7 +16120,6 @@ static void mips_tr_tb_stop(DisasContextBase *dcbase, CPUState *cs)
default: default:
g_assert_not_reached(); g_assert_not_reached();
} }
}
} }
static void mips_tr_disas_log(const DisasContextBase *dcbase, CPUState *cs) static void mips_tr_disas_log(const DisasContextBase *dcbase, CPUState *cs)