[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 17/19] target-ppc: fix SPE comparison functions
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH 17/19] target-ppc: fix SPE comparison functions |
Date: |
Wed, 13 Apr 2011 20:11:48 +0200 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Tue, Apr 12, 2011 at 07:40:33PM -0700, Nathan Froyd wrote:
> On Tue, Apr 12, 2011 at 11:59:29PM +0200, Aurelien Jarno wrote:
> > Given that float32_*() functions are IEEE754 compliant, the efscmp*()
> > functions are correctly implemented, while efstst*() are not. This
> > patch reverse the implementation of this two groups of functions and
> > fix the comments. It also use float32_eq() instead of float32_eq_quiet()
> > as qNaNs should not be ignored.
>
> Thanks for addressing this; the E500 emulation in QEMU is more like how
> we wish the hardware acted, rather than how it actually acts. :)
>
> It's late here, but I think this change:
>
> > -static inline uint32_t efscmplt(uint32_t op1, uint32_t op2)
> > +static inline uint32_t efststlt(uint32_t op1, uint32_t op2)
> > {
> > - /* XXX: TODO: test special values (NaN, infinites, ...) */
> > + /* XXX: TODO: ignore special values (NaN, infinites, ...) */
> > return efststlt(op1, op2);
> > }
>
> is not correct, as you've just turned this into an infinite (inlined!)
> loop. You'd want to change the efststlt call into an efscmplt call.
> Similarly for efstst{gt,eq}.
>
Thanks for catching that, I'll fix that in the next version.
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net
- [Qemu-devel] [PATCH 19/19] target-mips: don't hardcode softfloat exception bits, (continued)
- [Qemu-devel] [PATCH 19/19] target-mips: don't hardcode softfloat exception bits, Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 13/19] softfloat: move float*_eq and float*_eq_quiet, Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 18/19] target-mips: simplify FP comparisons, Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 09/19] target-mips: use new float*_unordered*() functions, Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 16/19] target-alpha: fix wrong usage of float64_eq_quiet(), Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 10/19] target-i386: fix CMPUNORDPS/D and CMPORDPS/D instructions, Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 14/19] softfloat: improve description of comparison functions, Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 17/19] target-ppc: fix SPE comparison functions, Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 01/19] softfloat: use GCC builtins to count the leading zeros, Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 12/19] softfloat: rename float*_eq_signaling() into float*_eq(), Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 04/19] target-i386: use float unions from cpu-all.h, Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 02/19] cpu-all.h: define CPU_LDoubleU, Aurelien Jarno, 2011/04/12
- [Qemu-devel] [PATCH 03/19] target-i386: use CPU_LDoubleU instead of a private union, Aurelien Jarno, 2011/04/12
- Re: [Qemu-devel] [PATCH 00/19] softfloat and FPU fixes/improvements, Peter Maydell, 2011/04/13