qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 07/76] target/arm: Use vfp.fp_status_a64 in A64-only helper f


From: Peter Maydell
Subject: Re: [PATCH 07/76] target/arm: Use vfp.fp_status_a64 in A64-only helper functions
Date: Tue, 28 Jan 2025 12:35:59 +0000

On Sat, 25 Jan 2025 at 15:16, Richard Henderson
<richard.henderson@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.maydell@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.maydell@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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]