[PATCH 14/72] softfloat: Do not produce a default_nan from parts_silence_nan

Richard Henderson posted 72 patches 4 years, 9 months ago
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Richard Henderson <richard.henderson@linaro.org>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>, Eduardo Habkost <ehabkost@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Laurent Vivier <laurent@vivier.eu>, Aurelien Jarno <aurelien@aurel32.net>, Paolo Bonzini <pbonzini@redhat.com>
There is a newer version of this series
[PATCH 14/72] softfloat: Do not produce a default_nan from parts_silence_nan
Posted by Richard Henderson 4 years, 9 months ago
Require default_nan_mode to be set instead.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 fpu/softfloat-specialize.c.inc | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/fpu/softfloat-specialize.c.inc b/fpu/softfloat-specialize.c.inc
index 487b29155c..5988830c16 100644
--- a/fpu/softfloat-specialize.c.inc
+++ b/fpu/softfloat-specialize.c.inc
@@ -180,16 +180,15 @@ static FloatParts parts_default_nan(float_status *status)
 static FloatParts parts_silence_nan(FloatParts a, float_status *status)
 {
     g_assert(!no_signaling_nans(status));
-#if defined(TARGET_HPPA)
-    a.frac &= ~(1ULL << (DECOMPOSED_BINARY_POINT - 1));
-    a.frac |= 1ULL << (DECOMPOSED_BINARY_POINT - 2);
-#else
+    g_assert(!status->default_nan_mode);
+
+    /* The only snan_bit_is_one target without default_nan_mode is HPPA. */
     if (snan_bit_is_one(status)) {
-        return parts_default_nan(status);
+        a.frac &= ~(1ULL << (DECOMPOSED_BINARY_POINT - 1));
+        a.frac |= 1ULL << (DECOMPOSED_BINARY_POINT - 2);
     } else {
         a.frac |= 1ULL << (DECOMPOSED_BINARY_POINT - 1);
     }
-#endif
     a.cls = float_class_qnan;
     return a;
 }
-- 
2.25.1


Re: [PATCH 14/72] softfloat: Do not produce a default_nan from parts_silence_nan
Posted by David Hildenbrand 4 years, 9 months ago
On 08.05.21 03:47, Richard Henderson wrote:
> Require default_nan_mode to be set instead.
> 
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>   fpu/softfloat-specialize.c.inc | 11 +++++------
>   1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/fpu/softfloat-specialize.c.inc b/fpu/softfloat-specialize.c.inc
> index 487b29155c..5988830c16 100644
> --- a/fpu/softfloat-specialize.c.inc
> +++ b/fpu/softfloat-specialize.c.inc
> @@ -180,16 +180,15 @@ static FloatParts parts_default_nan(float_status *status)
>   static FloatParts parts_silence_nan(FloatParts a, float_status *status)
>   {
>       g_assert(!no_signaling_nans(status));
> -#if defined(TARGET_HPPA)
> -    a.frac &= ~(1ULL << (DECOMPOSED_BINARY_POINT - 1));
> -    a.frac |= 1ULL << (DECOMPOSED_BINARY_POINT - 2);
> -#else
> +    g_assert(!status->default_nan_mode);
> +
> +    /* The only snan_bit_is_one target without default_nan_mode is HPPA. */
>       if (snan_bit_is_one(status)) {
> -        return parts_default_nan(status);
> +        a.frac &= ~(1ULL << (DECOMPOSED_BINARY_POINT - 1));
> +        a.frac |= 1ULL << (DECOMPOSED_BINARY_POINT - 2);
>       } else {
>           a.frac |= 1ULL << (DECOMPOSED_BINARY_POINT - 1);
>       }
> -#endif
>       a.cls = float_class_qnan;
>       return a;
>   }
> 

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Thanks,

David / dhildenb


Re: [PATCH 14/72] softfloat: Do not produce a default_nan from parts_silence_nan
Posted by Alex Bennée 4 years, 9 months ago
Richard Henderson <richard.henderson@linaro.org> writes:

> Require default_nan_mode to be set instead.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>


-- 
Alex Bennée