On 1/28/25 04:35, Peter Maydell wrote:
On Sat, 25 Jan 2025 at 15:16, Richard Henderson
<richard.hender...@linaro.org> wrote:

On 1/24/25 08:27, Peter Maydell wrote:
@@ -2808,7 +2808,7 @@ bool is_ebf(CPUARMState *env, float_status *statusp, 
float_status *oddstatusp)
        */
       bool ebf = is_a64(env) && env->vfp.fpcr & FPCR_EBF;

-    *statusp = env->vfp.fp_status;
+    *statusp = env->vfp.fp_status_a64;
       set_default_nan_mode(true, statusp);

       if (ebf) {

Is this really correct?  !ebf includes aa32.

Whoops, yes. I'll drop this hunk of the patch and put in this
patch afterwards:

Author: Peter Maydell <peter.mayd...@linaro.org>
Date:   Tue Jan 28 11:40:13 2025 +0000

     target/arm: Use fp_status_a64 or fp_status_a32 in is_ebf()

     In is_ebf(), we might be called for A64 or A32, but we have
     the CPUARMState* so we can select fp_status_a64 or
     fp_status_a32 accordingly.

     Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>

diff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c
index 011726a72d4..2ba1f7cb32e 100644
--- a/target/arm/tcg/vec_helper.c
+++ b/target/arm/tcg/vec_helper.c
@@ -2808,7 +2808,7 @@ bool is_ebf(CPUARMState *env, float_status
*statusp, float_status *oddstatusp)
       */
      bool ebf = is_a64(env) && env->vfp.fpcr & FPCR_EBF;

-    *statusp = env->vfp.fp_status;
+    *statusp = is_a64(env) ? env->vfp.fp_status_a64 : env->vfp.fp_status_a32;
      set_default_nan_mode(true, statusp);

That'll do.

Reviewed-by: Richard Henderson <richard.hender...@linaro.org>


r~

Reply via email to