qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC PATCH for 2.11 12/23] target/arm/translate-a64.c:


From: Aurelien Jarno
Subject: Re: [Qemu-devel] [RFC PATCH for 2.11 12/23] target/arm/translate-a64.c: add FP16 FAGCT to AdvSIMD 3 Same
Date: Fri, 21 Jul 2017 15:21:40 +0200
User-agent: NeoMutt/20170113 (1.7.2)

On 2017-07-21 10:56, Alex Bennée wrote:
> 
> Richard Henderson <address@hidden> writes:
> 
> > On 07/20/2017 05:04 AM, Alex Bennée wrote:
> >> +static softfloat_flags softfloat_mapping_table[] = {
> >> +    { float_flag_inexact  , softfloat_flag_inexact },
> >> +    { float_flag_underflow, softfloat_flag_underflow },
> >> +    { float_flag_overflow , softfloat_flag_overflow },
> >> +    { float_flag_invalid  , softfloat_flag_invalid },
> >> +};
> >> +/* FIXME: 2a has no infinite flag */
> >> +
> >> +static uint8_t sync_softfloat_flags_from_2a(float_status *flags2a)
> >> +{
> >> +    uint8_t flags = flags2a->float_exception_flags;
> >> +    int i;
> >> +    if (flags) {
> >> +        for (i = 0; i < ARRAY_SIZE(softfloat_mapping_table); i++) {
> >> +            struct softfloat_flags *map = &softfloat_mapping_table[i];
> >> +            if (flags & map->float2a_flag) {
> >> +                softfloat_raiseFlags(map->float3c_flag);
> >> +            }
> >> +        }
> >> +    } else {
> >> +        softfloat_exceptionFlags = 0;
> >> +    }
> >> +
> >> +    return softfloat_exceptionFlags;
> >> +}
> >> +
> >
> > For conversions like this IMO it's better to make the compiler do the
> > work. C.f. target/alpha/fpu_helper.c and CONVERT_BIT.
> 
> Cool, I'll look at that.
> 
> > BTW, I think these TLS variables that softfloat3a are using are going
> > to be a real problem.  It's one thing to do it temporarily like you
> > are here, coordinating between 2a and 3c, but later, when the front
> > end is fully converted?  That's just nonsense.
> 
> Wouldn't the other option to be to drop float_status out of the guests
> CPUEnv and grab it from the TLS variable instead? Of course all guests
> would need to be MTTCG enabled for that to work.

As said in another email, some architectures actually use more than one
float_status. We therefore need to implement a solution like the one
proposed by Richard.

Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
address@hidden                 http://www.aurel32.net



reply via email to

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