Re: powerpc FPU emulation fails for single precision arithmetic (Was: kernel panic on ibm4xx-based powerpc box with DDB)
Rin Okuyama <[email protected]> Wed, 28 Dec 2016 19:49:42 +0900
| Newsgroups | gmane.os.netbsd.ports.powerpc,gmane.os.netbsd.devel.kernel |
|---|---|
| Message-ID | <[email protected]> |
On 2016/12/28 19:31, Simon Burge wrote:
> How exactly does single precision fail without this fix? I haven't
> looked, but is there any simple single precision IEEE test suite that
> shows this?
>
> I'm all for the fix BTW :)
>
> Cheers,
> Simon.
>
Without this fix, the calculation results are clearly wrong, e.g.:
% cat fp.c
#include <stdio.h>
int main(){
double dx = 1.0, dy = 2.0;
float sx = 1.0, sy = 2.0;
printf("DP: %f / %f = %f\n", dx, dy, dx / dy);
printf("SP: %f / %f = %f\n", sx, sy, sx / sy);
return 0;
}
% cc fp.c && ./a.out
DP: 1.000000 / 2.000000 = 0.500000
SP: 1.000000 / 2.000000 = 0.003906 <--- OOPS!!
Probably we need some ATF tests for FPU emulation, not only for
powerpc, but also for other archs.
Thanks,
Rin