summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Maydell2021-09-01 10:02:37 +0200
committerPeter Maydell2021-09-01 12:08:17 +0200
commit2c8cb5888e998d7ba8e36c312644a11d832dbe9c (patch)
treedb34dc7ee6185aed7938c8e44b065da1d8b4c9c5
parenttarget/arm: Implement MVE fp-with-scalar VFMA, VFMAS (diff)
downloadqemu-2c8cb5888e998d7ba8e36c312644a11d832dbe9c.tar.gz
qemu-2c8cb5888e998d7ba8e36c312644a11d832dbe9c.tar.xz
qemu-2c8cb5888e998d7ba8e36c312644a11d832dbe9c.zip
softfloat: Remove assertion preventing silencing of NaN in default-NaN mode
In commit a777d6033447a we added an assertion to parts_silence_nan() that prohibits calling float*_silence_nan() when in default-NaN mode. This ties together a property of the output ("do we generate a default NaN when the result is a NaN?") with an operation on an input ("silence this input NaN"). It's true that most of the time when in default-NaN mode you won't need to silence an input NaN, because you can just produce the default NaN as the result instead. But some functions like float*_maxnum() are defined to be able to work with quiet NaNs, so silencing an input SNaN is still reasonable. In particular, the upcoming implementation of MVE VMAXNMV would fall over this assertion if we didn't delete it. Delete the assertion. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r--fpu/softfloat-specialize.c.inc1
1 files changed, 0 insertions, 1 deletions
diff --git a/fpu/softfloat-specialize.c.inc b/fpu/softfloat-specialize.c.inc
index 12467bb9bb..f2ad0f335e 100644
--- a/fpu/softfloat-specialize.c.inc
+++ b/fpu/softfloat-specialize.c.inc
@@ -198,7 +198,6 @@ static void parts128_default_nan(FloatParts128 *p, float_status *status)
static uint64_t parts_silence_nan_frac(uint64_t frac, float_status *status)
{
g_assert(!no_signaling_nans(status));
- 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)) {