Bug#148529: gnat-3.1: sin/cos is random exception/result generator
On Mon, 2002-06-03 at 09:28, Samuel Tardieu wrote:
> No. You can check that your assembler has been properly included by
> looking at the resulting assembly code (gcc-3.1 -S -o - testbug2.adb).
Curious.
It looks OK, but all it does is copy the input to the output (aux was
created by renaming ada.numerics.aux to aux):
.globl aux__sin
.type aux__sin,@function
aux__sin:
pushl %ebp
movl %esp, %ebp
subl $88, %esp
movl 8(%ebp), %eax
movl 12(%ebp), %edx
movl 16(%ebp), %ecx
movl %eax, -40(%ebp)
movl %edx, -36(%ebp)
movl %ecx, -32(%ebp)
movl -40(%ebp), %eax
movl %eax, -24(%ebp)
movl -36(%ebp), %eax
movl %eax, -20(%ebp)
movl -32(%ebp), %eax
movl %eax, -16(%ebp)
movl -28(%ebp), %eax
movl %eax, -12(%ebp)
.L66:
fldt -24(%ebp)
#APP
fsin
xorl %eax, %eax
fnstsw %ax
#NO_APP
fstp %st(0)
movw %ax, -42(%ebp)
movb -41(%ebp), %al
andl $4, %eax
testb %al, %al
jne .L69
jmp .L67
.L69:
subl $4, %esp
pushl -32(%ebp)
pushl -36(%ebp)
pushl -40(%ebp)
call aux__reduce
addl $16, %esp
fstpt -72(%ebp)
movl -72(%ebp), %eax
movl %eax, -24(%ebp)
movl -68(%ebp), %eax
movl %eax, -20(%ebp)
movl -64(%ebp), %eax
movl %eax, -16(%ebp)
movl -60(%ebp), %eax
movl %eax, -12(%ebp)
jmp .L66
.L67:
movl -40(%ebp), %eax
movl -36(%ebp), %edx
movl -32(%ebp), %ecx
movl %eax, -88(%ebp)
movl %edx, -84(%ebp)
movl %ecx, -80(%ebp)
fldt -88(%ebp)
leave
ret
>
> Sam
>
--
Brian May <bam@snoopy.apana.org.au>
--
To UNSUBSCRIBE, email to debian-gcc-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: