[PATCH v3 06/37] target/hexagon: Make gen_exception_end_tb non-static

Brian Cain posted 37 patches 2 days, 12 hours ago
Maintainers: Brian Cain <brian.cain@oss.qualcomm.com>, Pierrick Bouvier <pierrick.bouvier@linaro.org>, Laurent Vivier <laurent@vivier.eu>, Alessandro Di Federico <ale@rev.ng>, Anton Johansson <anjo@rev.ng>
[PATCH v3 06/37] target/hexagon: Make gen_exception_end_tb non-static
Posted by Brian Cain 2 days, 12 hours ago
From: Brian Cain <bcain@quicinc.com>

Reviewed-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
---
 target/hexagon/translate.h | 2 ++
 target/hexagon/translate.c | 6 +++---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h
index b37cb492381..2804e08ce57 100644
--- a/target/hexagon/translate.h
+++ b/target/hexagon/translate.h
@@ -282,6 +282,8 @@ extern TCGv hex_vstore_addr[VSTORES_MAX];
 extern TCGv hex_vstore_size[VSTORES_MAX];
 extern TCGv hex_vstore_pending[VSTORES_MAX];
 
+void hex_gen_exception_end_tb(DisasContext *ctx, int excp);
+
 void process_store(DisasContext *ctx, int slot_num);
 
 FIELD(PROBE_PKT_SCALAR_STORE_S0, MMU_IDX,       0, 2)
diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c
index 8a223f6e13e..877cb38ae77 100644
--- a/target/hexagon/translate.c
+++ b/target/hexagon/translate.c
@@ -189,7 +189,7 @@ static void gen_end_tb(DisasContext *ctx)
     ctx->base.is_jmp = DISAS_NORETURN;
 }
 
-static void gen_exception_end_tb(DisasContext *ctx, int excp)
+void hex_gen_exception_end_tb(DisasContext *ctx, int excp)
 {
     gen_exec_counters(ctx);
     tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->next_PC);
@@ -207,7 +207,7 @@ static void gen_exception_decode_fail(DisasContext *ctx, int nwords, int excp)
 
     gen_exec_counters(ctx);
     tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], fail_pc);
-    gen_exception_raw(excp);
+    gen_exception(excp, fail_pc);
     ctx->base.is_jmp = DISAS_NORETURN;
     ctx->base.pc_next = fail_pc;
 }
@@ -590,7 +590,7 @@ static void gen_insn(DisasContext *ctx)
         ctx->insn->generate(ctx);
         mark_store_width(ctx);
     } else {
-        gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE);
+        hex_gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE);
     }
 }
 
-- 
2.34.1

Re: [PATCH v3 06/37] target/hexagon: Make gen_exception_end_tb non-static
Posted by Philippe Mathieu-Daudé 2 days, 10 hours ago
Hi Brian,

On 27/2/26 21:35, Brian Cain wrote:
> From: Brian Cain <bcain@quicinc.com>
> 
> Reviewed-by: Taylor Simpson <ltaylorsimpson@gmail.com>
> Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
> ---
>   target/hexagon/translate.h | 2 ++
>   target/hexagon/translate.c | 6 +++---
>   2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h
> index b37cb492381..2804e08ce57 100644
> --- a/target/hexagon/translate.h
> +++ b/target/hexagon/translate.h
> @@ -282,6 +282,8 @@ extern TCGv hex_vstore_addr[VSTORES_MAX];
>   extern TCGv hex_vstore_size[VSTORES_MAX];
>   extern TCGv hex_vstore_pending[VSTORES_MAX];
>   
> +void hex_gen_exception_end_tb(DisasContext *ctx, int excp);
> +
>   void process_store(DisasContext *ctx, int slot_num);
>   
>   FIELD(PROBE_PKT_SCALAR_STORE_S0, MMU_IDX,       0, 2)
> diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c
> index 8a223f6e13e..877cb38ae77 100644
> --- a/target/hexagon/translate.c
> +++ b/target/hexagon/translate.c
> @@ -189,7 +189,7 @@ static void gen_end_tb(DisasContext *ctx)
>       ctx->base.is_jmp = DISAS_NORETURN;
>   }
>   
> -static void gen_exception_end_tb(DisasContext *ctx, int excp)
> +void hex_gen_exception_end_tb(DisasContext *ctx, int excp)
>   {
>       gen_exec_counters(ctx);
>       tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->next_PC);
> @@ -207,7 +207,7 @@ static void gen_exception_decode_fail(DisasContext *ctx, int nwords, int excp)
>   
>       gen_exec_counters(ctx);
>       tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], fail_pc);
> -    gen_exception_raw(excp);
> +    gen_exception(excp, fail_pc);

gen_exception() is not introduced in this series, future
commit https://github.com/quic/qemu/commit/ff8ac066dd8d
rename gen_exception_raw() to it. I don't expect this
commit to build.

Maybe keep the gen_exception_raw(excp) call in this
commit and convert to gen_exception(excp, fail_pc)
in ff8ac066dd8d?

>       ctx->base.is_jmp = DISAS_NORETURN;
>       ctx->base.pc_next = fail_pc;
>   }
> @@ -590,7 +590,7 @@ static void gen_insn(DisasContext *ctx)
>           ctx->insn->generate(ctx);
>           mark_store_width(ctx);
>       } else {
> -        gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE);
> +        hex_gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_OPCODE);
>       }
>   }
>