[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 08/31] target/ppc: Replace POWERPC_EXCP_SYNC with DISAS_EX
From: |
David Gibson |
Subject: |
Re: [PATCH v4 08/31] target/ppc: Replace POWERPC_EXCP_SYNC with DISAS_EXIT |
Date: |
Thu, 13 May 2021 14:11:19 +1000 |
On Wed, May 12, 2021 at 03:54:18PM -0300, matheus.ferst@eldorado.org.br wrote:
> From: Richard Henderson <richard.henderson@linaro.org>
>
> Remove the synthetic "exception" after no more uses.
>
> 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/cpu.h | 1 -
> target/ppc/translate.c | 27 +++++++++------------------
> 2 files changed, 9 insertions(+), 19 deletions(-)
>
> diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
> index 98fcf1c4d6..503de6db85 100644
> --- a/target/ppc/cpu.h
> +++ b/target/ppc/cpu.h
> @@ -135,7 +135,6 @@ enum {
> POWERPC_EXCP_STOP = 0x200, /* stop translation
> */
> POWERPC_EXCP_BRANCH = 0x201, /* branch instruction
> */
> /* QEMU exceptions: special cases we want to stop translation
> */
> - POWERPC_EXCP_SYNC = 0x202, /* context synchronizing instruction
> */
> POWERPC_EXCP_SYSCALL_USER = 0x203, /* System call in user mode only
> */
> };
>
> diff --git a/target/ppc/translate.c b/target/ppc/translate.c
> index 4bebb00bb2..88fe24ef95 100644
> --- a/target/ppc/translate.c
> +++ b/target/ppc/translate.c
> @@ -359,14 +359,6 @@ static inline void gen_stop_exception(DisasContext *ctx)
> ctx->exception = POWERPC_EXCP_STOP;
> }
>
> -#ifndef CONFIG_USER_ONLY
> -/* No need to update nip here, as execution flow will change */
> -static inline void gen_sync_exception(DisasContext *ctx)
> -{
> - ctx->exception = POWERPC_EXCP_SYNC;
> -}
> -#endif
> -
>
> /*****************************************************************************/
> /* SPR READ/WRITE CALLBACKS */
>
> @@ -5035,7 +5027,7 @@ static void gen_rfi(DisasContext *ctx)
> }
> gen_update_cfar(ctx, ctx->cia);
> gen_helper_rfi(cpu_env);
> - gen_sync_exception(ctx);
> + ctx->base.is_jmp = DISAS_EXIT;
> #endif
> }
>
> @@ -5052,7 +5044,7 @@ static void gen_rfid(DisasContext *ctx)
> }
> gen_update_cfar(ctx, ctx->cia);
> gen_helper_rfid(cpu_env);
> - gen_sync_exception(ctx);
> + ctx->base.is_jmp = DISAS_EXIT;
> #endif
> }
>
> @@ -5069,7 +5061,7 @@ static void gen_rfscv(DisasContext *ctx)
> }
> gen_update_cfar(ctx, ctx->cia);
> gen_helper_rfscv(cpu_env);
> - gen_sync_exception(ctx);
> + ctx->base.is_jmp = DISAS_EXIT;
> #endif
> }
> #endif
> @@ -5082,7 +5074,7 @@ static void gen_hrfid(DisasContext *ctx)
> /* Restore CPU state */
> CHK_HV;
> gen_helper_hrfid(cpu_env);
> - gen_sync_exception(ctx);
> + ctx->base.is_jmp = DISAS_EXIT;
> #endif
> }
> #endif
> @@ -6923,7 +6915,7 @@ static void gen_rfsvc(DisasContext *ctx)
> CHK_SV;
>
> gen_helper_rfsvc(cpu_env);
> - gen_sync_exception(ctx);
> + ctx->base.is_jmp = DISAS_EXIT;
> #endif /* defined(CONFIG_USER_ONLY) */
> }
>
> @@ -7303,7 +7295,7 @@ static void gen_rfci_40x(DisasContext *ctx)
> CHK_SV;
> /* Restore CPU state */
> gen_helper_40x_rfci(cpu_env);
> - gen_sync_exception(ctx);
> + ctx->base.is_jmp = DISAS_EXIT;
> #endif /* defined(CONFIG_USER_ONLY) */
> }
>
> @@ -7315,7 +7307,7 @@ static void gen_rfci(DisasContext *ctx)
> CHK_SV;
> /* Restore CPU state */
> gen_helper_rfci(cpu_env);
> - gen_sync_exception(ctx);
> + ctx->base.is_jmp = DISAS_EXIT;
> #endif /* defined(CONFIG_USER_ONLY) */
> }
>
> @@ -7330,7 +7322,7 @@ static void gen_rfdi(DisasContext *ctx)
> CHK_SV;
> /* Restore CPU state */
> gen_helper_rfdi(cpu_env);
> - gen_sync_exception(ctx);
> + ctx->base.is_jmp = DISAS_EXIT;
> #endif /* defined(CONFIG_USER_ONLY) */
> }
>
> @@ -7343,7 +7335,7 @@ static void gen_rfmci(DisasContext *ctx)
> CHK_SV;
> /* Restore CPU state */
> gen_helper_rfmci(cpu_env);
> - gen_sync_exception(ctx);
> + ctx->base.is_jmp = DISAS_EXIT;
> #endif /* defined(CONFIG_USER_ONLY) */
> }
>
> @@ -9429,7 +9421,6 @@ static void ppc_tr_translate_insn(DisasContextBase
> *dcbase, CPUState *cs)
> case POWERPC_EXCP_BRANCH:
> ctx->base.is_jmp = DISAS_NORETURN;
> break;
> - case POWERPC_EXCP_SYNC:
> case POWERPC_EXCP_STOP:
> ctx->base.is_jmp = DISAS_EXIT;
> break;
--
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 v4 05/31] target/ppc: Remove special case for POWERPC_EXCP_TRAP, (continued)
- [PATCH v4 05/31] target/ppc: Remove special case for POWERPC_EXCP_TRAP, matheus . ferst, 2021/05/12
- [PATCH v4 04/31] target/ppc: Remove special case for POWERPC_SYSCALL, matheus . ferst, 2021/05/12
- [PATCH v4 06/31] target/ppc: Simplify gen_debug_exception, matheus . ferst, 2021/05/12
- [PATCH v4 07/31] target/ppc: Introduce DISAS_{EXIT,CHAIN}{,_UPDATE}, matheus . ferst, 2021/05/12
- [PATCH v4 08/31] target/ppc: Replace POWERPC_EXCP_SYNC with DISAS_EXIT, matheus . ferst, 2021/05/12
- [PATCH v4 09/31] target/ppc: Remove unnecessary gen_io_end calls, matheus . ferst, 2021/05/12
- [PATCH v4 10/31] target/ppc: Introduce gen_icount_io_start, matheus . ferst, 2021/05/12
- [PATCH v4 11/31] target/ppc: Replace POWERPC_EXCP_STOP with DISAS_EXIT_UPDATE, matheus . ferst, 2021/05/12
- [PATCH v4 12/31] target/ppc: Replace POWERPC_EXCP_BRANCH with DISAS_NORETURN, matheus . ferst, 2021/05/12
- [PATCH v4 13/31] target/ppc: Remove DisasContext.exception, matheus . ferst, 2021/05/12
- [PATCH v4 14/31] target/ppc: Move single-step check to ppc_tr_tb_stop, matheus . ferst, 2021/05/12
- [PATCH v4 15/31] target/ppc: Tidy exception vs exit_tb, matheus . ferst, 2021/05/12