All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nicholas Piggin" <npiggin@gmail.com>
To: "BALATON Zoltan" <balaton@eik.bme.hu>, <qemu-devel@nongnu.org>,
	<qemu-ppc@nongnu.org>
Cc: "Daniel Henrique Barboza" <danielhb413@gmail.com>, <clg@kaod.org>
Subject: Re: [PATCH v7 03/10] target/ppc: Add gen_exception_err_nip() function
Date: Tue, 12 Mar 2024 22:29:07 +1000	[thread overview]
Message-ID: <CZRRSXGJFPR8.L006RCIUY2U@wheely> (raw)
In-Reply-To: <ee0c65b99d2286dcacb7dbd9a833600fbd5573c9.1709045654.git.balaton@eik.bme.hu>

On Wed Feb 28, 2024 at 1:08 AM AEST, BALATON Zoltan wrote:
> Add gen_exception_err_nip() that does the same as gen_exception_err()
> but takes the nip as a parameter to allow specifying it instead of
> using the current instruction address then change gen_exception_err()
> to use it.
>
> The gen_exception() and gen_exception_nip() functions are similar so
> remove code duplication from those too while at it.
>
> Suggested-by: Nicholas Piggin <npiggin@gmail.com>
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>

Thanks for doing this one

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>

> ---
>  target/ppc/translate.c | 28 +++++++++++++++-------------
>  1 file changed, 15 insertions(+), 13 deletions(-)
>
> diff --git a/target/ppc/translate.c b/target/ppc/translate.c
> index 28fc7791af..d87aae0cc4 100644
> --- a/target/ppc/translate.c
> +++ b/target/ppc/translate.c
> @@ -296,33 +296,26 @@ static inline void gen_update_nip(DisasContext *ctx, target_ulong nip)
>      tcg_gen_movi_tl(cpu_nip, nip);
>  }
>  
> -static void gen_exception_err(DisasContext *ctx, uint32_t excp, uint32_t error)
> +static void gen_exception_err_nip(DisasContext *ctx, uint32_t excp,
> +                                  uint32_t error, target_ulong nip)
>  {
>      TCGv_i32 t0, t1;
>  
> -    /*
> -     * These are all synchronous exceptions, we set the PC back to the
> -     * faulting instruction
> -     */
> -    gen_update_nip(ctx, ctx->cia);
> +    gen_update_nip(ctx, nip);
>      t0 = tcg_constant_i32(excp);
>      t1 = tcg_constant_i32(error);
>      gen_helper_raise_exception_err(tcg_env, t0, t1);
>      ctx->base.is_jmp = DISAS_NORETURN;
>  }
>  
> -static void gen_exception(DisasContext *ctx, uint32_t excp)
> +static inline void gen_exception_err(DisasContext *ctx, uint32_t excp,
> +                                     uint32_t error)
>  {
> -    TCGv_i32 t0;
> -
>      /*
>       * These are all synchronous exceptions, we set the PC back to the
>       * faulting instruction
>       */
> -    gen_update_nip(ctx, ctx->cia);
> -    t0 = tcg_constant_i32(excp);
> -    gen_helper_raise_exception(tcg_env, t0);
> -    ctx->base.is_jmp = DISAS_NORETURN;
> +    gen_exception_err_nip(ctx, excp, error, ctx->cia);
>  }
>  
>  static void gen_exception_nip(DisasContext *ctx, uint32_t excp,
> @@ -336,6 +329,15 @@ static void gen_exception_nip(DisasContext *ctx, uint32_t excp,
>      ctx->base.is_jmp = DISAS_NORETURN;
>  }
>  
> +static inline void gen_exception(DisasContext *ctx, uint32_t excp)
> +{
> +    /*
> +     * These are all synchronous exceptions, we set the PC back to the
> +     * faulting instruction
> +     */
> +    gen_exception_nip(ctx, excp, ctx->cia);
> +}
> +
>  #if !defined(CONFIG_USER_ONLY)
>  static void gen_ppc_maybe_interrupt(DisasContext *ctx)
>  {



  reply	other threads:[~2024-03-12 12:29 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-27 15:08 [PATCH v7 00/10] Misc clean ups to target/ppc exception handling BALATON Zoltan
2024-02-27 15:08 ` [PATCH v7 01/10] target/ppc: Use env_cpu for cpu_abort in excp_helper BALATON Zoltan
2024-02-27 15:08 ` [PATCH v7 02/10] target/ppc: Readability improvements in exception handlers BALATON Zoltan
2024-02-27 15:32   ` Peter Maydell
2024-02-27 16:51     ` BALATON Zoltan
2024-02-27 20:24       ` BALATON Zoltan
2024-02-29  3:04         ` Nicholas Piggin
2024-03-09 11:35           ` BALATON Zoltan
2024-02-27 15:08 ` [PATCH v7 03/10] target/ppc: Add gen_exception_err_nip() function BALATON Zoltan
2024-03-12 12:29   ` Nicholas Piggin [this message]
2024-02-27 15:08 ` [PATCH v7 04/10] target/ppc: Fix gen_sc to use correct nip BALATON Zoltan
2024-03-12 12:29   ` Nicholas Piggin
2024-03-12 16:40   ` Nicholas Piggin
2024-02-27 15:08 ` [PATCH v7 05/10] target/ppc: Move patching nip from exception handler to helper_scv BALATON Zoltan
2024-02-27 15:08 ` [PATCH v7 06/10] target/ppc: Simplify syscall exception handlers BALATON Zoltan
2024-02-27 15:08 ` [PATCH v7 07/10] target/ppc: Clean up ifdefs in excp_helper.c, part 1 BALATON Zoltan
2024-02-27 15:08 ` [PATCH v7 08/10] target/ppc: Clean up ifdefs in excp_helper.c, part 2 BALATON Zoltan
2024-02-27 15:08 ` [PATCH v7 09/10] target/ppc: Clean up ifdefs in excp_helper.c, part 3 BALATON Zoltan
2024-02-27 20:21 ` [PATCH v7 10/10] target/ppc: Remove interrupt handler wrapper functions BALATON Zoltan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CZRRSXGJFPR8.L006RCIUY2U@wheely \
    --to=npiggin@gmail.com \
    --cc=balaton@eik.bme.hu \
    --cc=clg@kaod.org \
    --cc=danielhb413@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.