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); if (ebf) { thanks -- PMM