[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 02/19] fpu/softfloat: Split floatXX_silence_nan
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH 02/19] fpu/softfloat: Split floatXX_silence_nan from floatXX_maybe_silence_nan |
Date: |
Fri, 11 May 2018 16:06:54 +0100 |
User-agent: |
mu4e 1.1.0; emacs 26.1 |
Alex Bennée <address@hidden> writes:
> Richard Henderson <address@hidden> writes:
>
>> The new function assumes that the input is an SNaN and
>> does not double-check.
>>
>> Signed-off-by: Richard Henderson <address@hidden>
>
> Reviewed-by: Alex Bennée <address@hidden>
but...but...
>> -float16 float16_maybe_silence_nan(float16 a_, float_status *status)
>> +
>> +float16 float16_maybe_silence_nan(float16 a, float_status *status)
>> {
>> - if (float16_is_signaling_nan(a_, status)) {
>> - if (status->snan_bit_is_one) {
>> - return float16_default_nan(status);
>> - } else {
>> - uint16_t a = float16_val(a_);
>> - a |= (1 << 9);
>> - return make_float16(a);
>> - }
>> + if (float16_is_signaling_nan(a, status)) {
>> + float16_silence_nan(a, status);
You need a return here.
>>
>> -float32 float32_maybe_silence_nan(float32 a_, float_status *status)
>> +float32 float32_maybe_silence_nan(float32 a, float_status *status)
>> {
>> - if (float32_is_signaling_nan(a_, status)) {
>> - if (status->snan_bit_is_one) {
>> -#ifdef TARGET_HPPA
>> - uint32_t a = float32_val(a_);
>> - a &= ~0x00400000;
>> - a |= 0x00200000;
>> - return make_float32(a);
>> -#else
>> - return float32_default_nan(status);
>> -#endif
>> - } else {
>> - uint32_t a = float32_val(a_);
>> - a |= (1 << 22);
>> - return make_float32(a);
>> - }
>> + if (float32_is_signaling_nan(a, status)) {
>> + float32_silence_nan(a, status);
And here.
Amazing what tests pass with those in, but RISU picked them up.
--
Alex Bennée
- [Qemu-devel] [PATCH 00/19] softfloat: Clean up NaN handling, Richard Henderson, 2018/05/10
- [Qemu-devel] [PATCH 04/19] fpu/softfloat: Canonicalize NaN fraction, Richard Henderson, 2018/05/10
- [Qemu-devel] [PATCH 03/19] fpu/softfloat: Move softfloat-specialize.h below FloatParts definition, Richard Henderson, 2018/05/10
- [Qemu-devel] [PATCH 05/19] fpu/softfloat: Introduce parts_is_snan_frac, Richard Henderson, 2018/05/10
- [Qemu-devel] [PATCH 06/19] fpu/softfloat: Replace float_class_dnan with parts_default_nan, Richard Henderson, 2018/05/10
- [Qemu-devel] [PATCH 08/19] target/arm: Use floatX_silence_nan when we have already checked for SNaN, Richard Henderson, 2018/05/10
- [Qemu-devel] [PATCH 09/19] target/arm: Remove floatX_maybe_silence_nan from conversions, Richard Henderson, 2018/05/10