[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 16/22] fpu/softfloat: re-factor round_to_int
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH v3 16/22] fpu/softfloat: re-factor round_to_int |
Date: |
Wed, 24 Jan 2018 09:51:04 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
On 01/24/2018 05:13 AM, Alex Bennée wrote:
> +static FloatParts round_to_int(FloatParts a, int rounding_mode, float_status
> *s)
> +{
> +
> + switch (a.cls) {
> + case float_class_snan:
> + a.cls = s->default_nan_mode ? float_class_dnan : float_class_msnan;
> + s->float_exception_flags |= float_flag_invalid;
> + break;
> + case float_class_zero:
> + case float_class_inf:
> + case float_class_qnan:
> + /* already "integral" */
> + break;
This mishandles float_class_qnan + default_nan_mode.
Consider how this would pass though pick_nan_parts(a, a, s).
I suspect a single-argument version of pick_nan_parts would be helpful:
static FloatParts return_nan(FloatParts a, float_status *s)
{
switch (a.cls) {
case float_class_snan:
s->float_exception_flags |= float_flag_invalid;
a.cls = float_class_msnan;
/* FALLTHRU */
case float_class_qnan:
if (s->default_nan_mode) {
a.cls = float_class_dnan;
}
break;
default:
g_assert_not_reached();
}
}
and use this in round_to_int, scalbn, and sqrt.
r~
- Re: [Qemu-devel] [PATCH v3 12/22] fpu/softfloat: re-factor add/sub, (continued)
- [Qemu-devel] [PATCH v3 14/22] fpu/softfloat: re-factor div, Alex Bennée, 2018/01/24
- [Qemu-devel] [PATCH v3 11/22] fpu/softfloat: define decompose structures, Alex Bennée, 2018/01/24
- [Qemu-devel] [PATCH v3 18/22] fpu/softfloat: re-factor int/uint to float, Alex Bennée, 2018/01/24
- [Qemu-devel] [PATCH v3 20/22] fpu/softfloat: re-factor minmax, Alex Bennée, 2018/01/24
- [Qemu-devel] [PATCH v3 16/22] fpu/softfloat: re-factor round_to_int, Alex Bennée, 2018/01/24
- Re: [Qemu-devel] [PATCH v3 16/22] fpu/softfloat: re-factor round_to_int,
Richard Henderson <=
- [Qemu-devel] [PATCH v3 21/22] fpu/softfloat: re-factor compare, Alex Bennée, 2018/01/24
- [Qemu-devel] [PATCH v3 19/22] fpu/softfloat: re-factor scalbn, Alex Bennée, 2018/01/24
[Qemu-devel] [PATCH v3 22/22] fpu/softfloat: re-factor sqrt, Alex Bennée, 2018/01/24
[Qemu-devel] [PATCH v3 15/22] fpu/softfloat: re-factor muladd, Alex Bennée, 2018/01/24