[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 04/23] target/ppc: Remove DisasContext.exception
From: |
David Gibson |
Subject: |
Re: [PATCH v5 04/23] target/ppc: Remove DisasContext.exception |
Date: |
Tue, 18 May 2021 10:17:02 +1000 |
On Mon, May 17, 2021 at 05:50:06PM -0300, matheus.ferst@eldorado.org.br wrote:
> From: Richard Henderson <richard.henderson@linaro.org>
>
> Now that we have removed all of the fake exceptions, and all real
> exceptions exit via DISAS_NORETURN, we can remove this field.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br>
Applied to ppc-for-6.1, thanks.
> ---
> target/ppc/translate.c | 30 ++++--------------------------
> 1 file changed, 4 insertions(+), 26 deletions(-)
>
> diff --git a/target/ppc/translate.c b/target/ppc/translate.c
> index d019454550..80cd11b3f8 100644
> --- a/target/ppc/translate.c
> +++ b/target/ppc/translate.c
> @@ -159,7 +159,6 @@ struct DisasContext {
> DisasContextBase base;
> target_ulong cia; /* current instruction address */
> uint32_t opcode;
> - uint32_t exception;
> /* Routine used to access memory */
> bool pr, hv, dr, le_mode;
> bool lazy_tlb_flush;
> @@ -261,15 +260,12 @@ static void gen_exception_err(DisasContext *ctx,
> uint32_t excp, uint32_t error)
> * These are all synchronous exceptions, we set the PC back to the
> * faulting instruction
> */
> - if (ctx->exception == POWERPC_EXCP_NONE) {
> - gen_update_nip(ctx, ctx->cia);
> - }
> + gen_update_nip(ctx, ctx->cia);
> t0 = tcg_const_i32(excp);
> t1 = tcg_const_i32(error);
> gen_helper_raise_exception_err(cpu_env, t0, t1);
> tcg_temp_free_i32(t0);
> tcg_temp_free_i32(t1);
> - ctx->exception = excp;
> ctx->base.is_jmp = DISAS_NORETURN;
> }
>
> @@ -281,13 +277,10 @@ static void gen_exception(DisasContext *ctx, uint32_t
> excp)
> * These are all synchronous exceptions, we set the PC back to the
> * faulting instruction
> */
> - if (ctx->exception == POWERPC_EXCP_NONE) {
> - gen_update_nip(ctx, ctx->cia);
> - }
> + gen_update_nip(ctx, ctx->cia);
> t0 = tcg_const_i32(excp);
> gen_helper_raise_exception(cpu_env, t0);
> tcg_temp_free_i32(t0);
> - ctx->exception = excp;
> ctx->base.is_jmp = DISAS_NORETURN;
> }
>
> @@ -300,7 +293,6 @@ static void gen_exception_nip(DisasContext *ctx, uint32_t
> excp,
> t0 = tcg_const_i32(excp);
> gen_helper_raise_exception(cpu_env, t0);
> tcg_temp_free_i32(t0);
> - ctx->exception = excp;
> ctx->base.is_jmp = DISAS_NORETURN;
> }
>
> @@ -4993,13 +4985,10 @@ static void gen_scv(DisasContext *ctx)
> uint32_t lev = (ctx->opcode >> 5) & 0x7F;
>
> /* Set the PC back to the faulting instruction. */
> - if (ctx->exception == POWERPC_EXCP_NONE) {
> - gen_update_nip(ctx, ctx->cia);
> - }
> + gen_update_nip(ctx, ctx->cia);
> gen_helper_scv(cpu_env, tcg_constant_i32(lev));
>
> - /* This need not be exact, just not POWERPC_EXCP_NONE */
> - ctx->exception = POWERPC_SYSCALL_VECTORED;
> + ctx->base.is_jmp = DISAS_NORETURN;
> }
> #endif
> #endif
> @@ -9005,7 +8994,6 @@ static void ppc_tr_init_disas_context(DisasContextBase
> *dcbase, CPUState *cs)
> uint32_t hflags = ctx->base.tb->flags;
> int bound;
>
> - ctx->exception = POWERPC_EXCP_NONE;
> ctx->spr_cb = env->spr_cb;
> ctx->pr = (hflags >> HFLAGS_PR) & 1;
> ctx->mem_idx = (hflags >> HFLAGS_DMMU_IDX) & 7;
> @@ -9112,16 +9100,6 @@ static void ppc_tr_translate_insn(DisasContextBase
> *dcbase, CPUState *cs)
> "temporaries\n", opc1(ctx->opcode), opc2(ctx->opcode),
> opc3(ctx->opcode), opc4(ctx->opcode), ctx->opcode);
> }
> -
> - if (ctx->base.is_jmp == DISAS_NEXT) {
> - switch (ctx->exception) {
> - case POWERPC_EXCP_NONE:
> - break;
> - default:
> - /* Every other ctx->exception should have set NORETURN. */
> - g_assert_not_reached();
> - }
> - }
> }
>
> static void ppc_tr_tb_stop(DisasContextBase *dcbase, CPUState *cs)
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- [PATCH v5 00/23] Base for adding PowerPC 64-bit instructions, matheus . ferst, 2021/05/17
- [PATCH v5 01/23] target/ppc: Introduce gen_icount_io_start, matheus . ferst, 2021/05/17
- [PATCH v5 02/23] target/ppc: Replace POWERPC_EXCP_STOP with DISAS_EXIT_UPDATE, matheus . ferst, 2021/05/17
- [PATCH v5 03/23] target/ppc: Replace POWERPC_EXCP_BRANCH with DISAS_NORETURN, matheus . ferst, 2021/05/17
- [PATCH v5 04/23] target/ppc: Remove DisasContext.exception, matheus . ferst, 2021/05/17
- Re: [PATCH v5 04/23] target/ppc: Remove DisasContext.exception,
David Gibson <=
- [PATCH v5 05/23] target/ppc: Move single-step check to ppc_tr_tb_stop, matheus . ferst, 2021/05/17
- [PATCH v5 06/23] target/ppc: Tidy exception vs exit_tb, matheus . ferst, 2021/05/17
- [PATCH v5 07/23] target/ppc: Mark helper_raise_exception* as noreturn, matheus . ferst, 2021/05/17
- [PATCH v5 08/23] target/ppc: Use translator_loop_temp_check, matheus . ferst, 2021/05/17
- [PATCH v5 09/23] target/ppc: Introduce macros to check isa extensions, matheus . ferst, 2021/05/17