[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 2/2] fpu/softfloat: raise float_invalid for NaN/I
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [PATCH v2 2/2] fpu/softfloat: raise float_invalid for NaN/Inf in round_to_int_and_pack |
Date: |
Fri, 13 Apr 2018 15:03:34 +0100 |
The re-factor broke the raising of INVALID when NaN/Inf is passed to
the float_to_int conversion functions. round_to_uint_and_pack got this
right for NaN but also missed out the Inf handling.
Fixes https://bugs.launchpad.net/qemu/+bug/1759264
Signed-off-by: Alex Bennée <address@hidden>
Cc: Bastian Koppelmann <address@hidden>
---
fpu/softfloat.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fpu/softfloat.c b/fpu/softfloat.c
index 9b99aa6ec8..fb8663f59e 100644
--- a/fpu/softfloat.c
+++ b/fpu/softfloat.c
@@ -1344,8 +1344,10 @@ static int64_t round_to_int_and_pack(FloatParts in, int
rmode,
case float_class_qnan:
case float_class_dnan:
case float_class_msnan:
+ s->float_exception_flags = orig_flags | float_flag_invalid;
return max;
case float_class_inf:
+ s->float_exception_flags = orig_flags | float_flag_invalid;
return p.sign ? min : max;
case float_class_zero:
return 0;
@@ -1437,6 +1439,7 @@ static uint64_t round_to_uint_and_pack(FloatParts in, int
rmode, uint64_t max,
s->float_exception_flags = orig_flags | float_flag_invalid;
return max;
case float_class_inf:
+ s->float_exception_flags = orig_flags | float_flag_invalid;
return p.sign ? 0 : max;
case float_class_zero:
return 0;
--
2.17.0
- [Qemu-devel] [PATCH v2 0/2] Softfloat Fixes for 2.12, Alex Bennée, 2018/04/13
- [Qemu-devel] [PATCH v2 1/2] softfloat: fix {min, max}nummag for same-abs-value inputs, Alex Bennée, 2018/04/13
- [Qemu-devel] [PATCH v2 2/2] fpu/softfloat: raise float_invalid for NaN/Inf in round_to_int_and_pack,
Alex Bennée <=
- Re: [Qemu-devel] [PATCH v2 2/2] fpu/softfloat: raise float_invalid for NaN/Inf in round_to_int_and_pack, Bastian Koppelmann, 2018/04/13
- Re: [Qemu-devel] [PATCH v2 2/2] fpu/softfloat: raise float_invalid for NaN/Inf in round_to_int_and_pack, Peter Maydell, 2018/04/13
- Re: [Qemu-devel] [PATCH v2 2/2] fpu/softfloat: raise float_invalid for NaN/Inf in round_to_int_and_pack, Bastian Koppelmann, 2018/04/13
- Re: [Qemu-devel] [PATCH v2 2/2] fpu/softfloat: raise float_invalid for NaN/Inf in round_to_int_and_pack, Peter Maydell, 2018/04/13
- Re: [Qemu-devel] [PATCH v2 2/2] fpu/softfloat: raise float_invalid for NaN/Inf in round_to_int_and_pack, Bastian Koppelmann, 2018/04/13
- Re: [Qemu-devel] [PATCH v2 2/2] fpu/softfloat: raise float_invalid for NaN/Inf in round_to_int_and_pack, Bastian Koppelmann, 2018/04/16
Re: [Qemu-devel] [PATCH v2 2/2] fpu/softfloat: raise float_invalid for NaN/Inf in round_to_int_and_pack, Peter Maydell, 2018/04/13
Re: [Qemu-devel] [PATCH v2 0/2] Softfloat Fixes for 2.12, Peter Maydell, 2018/04/16