This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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...)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]