[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/6] softfloat: fix float{32, 64}_maybe_silence_nan(
From: |
Aurelien Jarno |
Subject: |
[Qemu-devel] [PATCH 2/6] softfloat: fix float{32, 64}_maybe_silence_nan() for MIPS |
Date: |
Mon, 3 Jan 2011 15:34:29 +0100 |
On targets that define sNaN with the sNaN bit as one, simply clearing
this bit may correspond to an infinite value.
Convert it to a default NaN if SNAN_BIT_IS_ONE, as it corresponds to
the MIPS implementation, the only emulated CPU with SNAN_BIT_IS_ONE.
When other CPU of this type are added, this might be updated to include
more cases.
Signed-off-by: Aurelien Jarno <address@hidden>
---
fpu/softfloat-specialize.h | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/fpu/softfloat-specialize.h b/fpu/softfloat-specialize.h
index f23bd6a..31481e7 100644
--- a/fpu/softfloat-specialize.h
+++ b/fpu/softfloat-specialize.h
@@ -107,13 +107,13 @@ int float32_is_signaling_nan( float32 a_ )
float32 float32_maybe_silence_nan( float32 a_ )
{
if (float32_is_signaling_nan(a_)) {
- bits32 a = float32_val(a_);
#if SNAN_BIT_IS_ONE
- a &= ~(1 << 22);
+ return float32_default_nan;
#else
+ bits32 a = float32_val(a_);
a |= (1 << 22);
-#endif
return make_float32(a);
+#endif
}
return a_;
}
@@ -321,13 +321,13 @@ int float64_is_signaling_nan( float64 a_ )
float64 float64_maybe_silence_nan( float64 a_ )
{
if (float64_is_signaling_nan(a_)) {
- bits64 a = float64_val(a_);
#if SNAN_BIT_IS_ONE
- a &= ~LIT64( 0x0008000000000000 );
+ return float64_default_nan;
#else
+ bits64 a = float64_val(a_);
a |= LIT64( 0x0008000000000000 );
-#endif
return make_float64(a);
+#endif
}
return a_;
}
--
1.7.2.3
- Re: [Qemu-devel] [PATCH 1/6] softfloat: remove HPPA specific code, (continued)
- Re: [Qemu-devel] [PATCH 1/6] softfloat: remove HPPA specific code, Aurelien Jarno, 2011/01/06
- Re: [Qemu-devel] [PATCH 1/6] softfloat: remove HPPA specific code, Peter Maydell, 2011/01/06
- Re: [Qemu-devel] [PATCH 1/6] softfloat: remove HPPA specific code, Aurelien Jarno, 2011/01/06
- Re: [Qemu-devel] [PATCH 1/6] softfloat: remove HPPA specific code, Peter Maydell, 2011/01/06
- Re: [Qemu-devel] [PATCH 1/6] softfloat: remove HPPA specific code, Aurelien Jarno, 2011/01/06
- Re: [Qemu-devel] [PATCH 1/6] softfloat: remove HPPA specific code, Nathan Froyd, 2011/01/06
- Re: [Qemu-devel] [PATCH 1/6] softfloat: remove HPPA specific code, Andreas Färber, 2011/01/06
- Re: [Qemu-devel] [PATCH 1/6] softfloat: remove HPPA specific code, Aurelien Jarno, 2011/01/06
[Qemu-devel] [PATCH 2/6] softfloat: fix float{32, 64}_maybe_silence_nan() for MIPS,
Aurelien Jarno <=
[Qemu-devel] [PATCH 4/6] softfloat: use float{32, 64, x80, 128}_maybe_silence_nan(), Aurelien Jarno, 2011/01/03
[Qemu-devel] [PATCH 3/6] softfloat: add float{x80, 128}_maybe_silence_nan(), Aurelien Jarno, 2011/01/03
[Qemu-devel] [PATCH 5/6] target-mips: Implement correct NaN propagation rules, Aurelien Jarno, 2011/01/03
[Qemu-devel] [PATCH 6/6] target-ppc: Implement correct NaN propagation rules, Aurelien Jarno, 2011/01/03