target/riscv: Remove dead code after exception

We have already set DISAS_NORETURN in generate_exception,
which makes the exit_tb unreachable.

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2021-07-19 14:34:13 -10:00
parent 9498d1032c
commit ea06a00652

View File

@ -22,8 +22,6 @@ static bool trans_ecall(DisasContext *ctx, arg_ecall *a)
{ {
/* always generates U-level ECALL, fixed in do_interrupt handler */ /* always generates U-level ECALL, fixed in do_interrupt handler */
generate_exception(ctx, RISCV_EXCP_U_ECALL); generate_exception(ctx, RISCV_EXCP_U_ECALL);
exit_tb(ctx); /* no chaining */
ctx->base.is_jmp = DISAS_NORETURN;
return true; return true;
} }
@ -60,13 +58,11 @@ static bool trans_ebreak(DisasContext *ctx, arg_ebreak *a)
post = opcode_at(&ctx->base, post_addr); post = opcode_at(&ctx->base, post_addr);
} }
if (pre == 0x01f01013 && ebreak == 0x00100073 && post == 0x40705013) { if (pre == 0x01f01013 && ebreak == 0x00100073 && post == 0x40705013) {
generate_exception(ctx, RISCV_EXCP_SEMIHOST); generate_exception(ctx, RISCV_EXCP_SEMIHOST);
} else { } else {
generate_exception(ctx, RISCV_EXCP_BREAKPOINT); generate_exception(ctx, RISCV_EXCP_BREAKPOINT);
} }
exit_tb(ctx); /* no chaining */
ctx->base.is_jmp = DISAS_NORETURN;
return true; return true;
} }