This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: floating point inconsistency
Christoph Groth wrote:
Now the question remains whether this is a bug in gcc or not.
I doubt it.
----------------------------------------------------------
.text
.globl _start
_start:
fldl angle
fcos
fstpl result
mov $4, %eax
mov $1, %ebx
mov $result, %ecx
mov $8, %edx
int $0x80
movl $1, %eax
xorl %ebx, %ebx
int $0x80
.data
.align 8
.globl angle
.globl result
angle:
.byte 0x3f, 0x73, 0x11, 0xf7, 0xa3, 0x38, 0xe3, 0x3f
result:
.byte 0, 0, 0, 0, 0, 0, 0, 0
----------------------------------------------------------
gives that:
on the AMD:
/users/cro> ./a.out |od -tx1
0000000 75 d8 82 70 13 66 ea 3f
0000010
on the intel:
/users/cro> ./a.out |od -tx1
0000000 76 d8 82 70 13 66 ea 3f
0000010
on my 32b computer, it's same result as intel 64b.
Maybe a rounding issue on the AMD?
(one should do the computation by hand or with some
soft mathematical library to get more precision and
see what the next bit is so to know for sure what
truncation has to be done...)