[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 08/12] ARM: Return correct result for single<->d
From: |
Nathan Froyd |
Subject: |
Re: [Qemu-devel] [PATCH 08/12] ARM: Return correct result for single<->double conversion of NaN |
Date: |
Mon, 29 Nov 2010 09:49:28 -0800 |
User-agent: |
Mutt/1.5.17+20080114 (2008-01-14) |
On Tue, Nov 23, 2010 at 06:53:47PM +0000, Peter Maydell wrote:
> The ARM ARM defines that if the input to a single<->double conversion
> is a NaN then the output is always forced to be a quiet NaN by setting
> the most significant bit of the fraction part.
>
> Signed-off-by: Peter Maydell <address@hidden>
>
> @@ -2529,12 +2529,26 @@ float32 VFP_HELPER(tosiz, d)(float64 x, CPUState *env)
> /* floating point conversion */
> float64 VFP_HELPER(fcvtd, s)(float32 x, CPUState *env)
> {
> - return float32_to_float64(x, &env->vfp.fp_status);
> + float64 r = float32_to_float64(x, &env->vfp.fp_status);
> + /* ARM requires that S<->D conversion of any kind of NaN generates
> + * a quiet NaN by forcing the most significant frac bit to 1.
> + */
> + if (float64_is_signaling_nan(r)) {
> + return make_float64(float64_val(r) | (1LL << 51));
> + }
> + return r;
> }
As with other NaN-handling patches, I don't think the bit-twiddling here
is a good idea. Having a float*_maybe_silence_nan function in softfloat
would be a better approach.
-Nathan
- Re: [Qemu-devel] [PATCH 11/12] ARM: Implement VCVT to 16 bit integer using new softfloat routines, (continued)
- [Qemu-devel] [PATCH 02/12] target-arm: Fix mixup in decoding of saturating add and sub, Peter Maydell, 2010/11/23
- [Qemu-devel] [PATCH 09/12] ARM: Ignore top 16 bits when doing VCVT from 16 bit fixed point, Peter Maydell, 2010/11/23
- [Qemu-devel] [PATCH 05/12] ARM: Fix decoding of Neon forms of VCVT between float and fixed point, Peter Maydell, 2010/11/23
- [Qemu-devel] [PATCH 06/12] ARM: Fix sense of to_integer bit in Neon VCVT float/int conversion, Peter Maydell, 2010/11/23
- [Qemu-devel] [PATCH 08/12] ARM: Return correct result for single<->double conversion of NaN, Peter Maydell, 2010/11/23
- Re: [Qemu-devel] [PATCH 08/12] ARM: Return correct result for single<->double conversion of NaN,
Nathan Froyd <=
- [Qemu-devel] [PATCH 01/12] target-arm: Add support for PKHxx in thumb2, Peter Maydell, 2010/11/23
- [Qemu-devel] [PATCH 07/12] ARM: Return correct result for float-to-integer conversion of NaN, Peter Maydell, 2010/11/23