Date: Sun, 12 Feb 1995 20:21:18 +0100 From: "Christoph P. Kukulies" <kuku@gilberto.physik.rwth-aachen.de> To: freebsd-hackers@freefall.cdrom.com Subject: Re: fp inline code Message-ID: <199502121921.UAA04742@gilberto.physik.rwth-aachen.de>
next in thread | raw e-mail | index | archive | help
> > I want to have gcc produce inline sin, cos, log etc. functions as
> > 387 instructions. Is this possible? I always thought -ffast-math
> > would do that but it still generates call _sin etc.
>
> You have to use -ffast-math -mfancy-math-387 under FreeBSD to get
> inlined sin, cos and sqrt. See gcc.info*; this is not documented
> in the manpage. Other 387 functions are not handled by gcc.
>
> Bruce
I tried the following:
Script started on Sun Feb 12 20:13:43 1995
blues> cat d.c
main()
{
int i;
double sin(),sqrt();
double a = sin(3.14);
for (i = 0; i < 1000000; i++)
a = sin(sqrt(a) + 1.0);
printf("a=%lf\n", a);
}
blues>
blues> gcc -S -ffast-math -mfancy-math-387 d.
blues> cat d.
.file "d.c"
gcc2_compiled.:
___gnu_compiled_c:
.text
LC0:
.ascii "a=%lf\12\0"
.align 2
.globl _main
.type _main,@function
_main:
pushl %ebp
movl %esp,%ebp
subl $12,%esp
call ___main
pushl $1074339512
pushl $1374389535
call _sin
addl $8,%esp
fstpl -12(%ebp)
movl $0,-4(%ebp)
L2:
cmpl $999999,-4(%ebp)
jle L5
jmp L3
.align 2,0x90
L5:
pushl -8(%ebp)
pushl -12(%ebp)
call _sqrt
addl $8,%esp
fld1
faddp %st,%st(1)
subl $8,%esp
fstpl (%esp)
call _sin
addl $8,%esp
fstpl -12(%ebp)
L4:
incl -4(%ebp)
jmp L2
.align 2,0x90
L3:
pushl -8(%ebp)
pushl -12(%ebp)
pushl $LC0
call _printf
addl $12,%esp
L1:
leave
ret
Lfe1:
.size _main,Lfe1-_main
blues>
Script done on Sun Feb 12 20:14:28 1995
I don't see sin, sqrt being inlined by fpu instructions. Am I missing
something?
--Chris Christoph P. U. Kukulies kuku@gil.physik.rwth-aachen.de
FreeBSD blues 2.1.0-Development FreeBSD 2.1.0-Development #0: Tue Feb 7
09:56:53 1995 kuku@blues:/sys/compile/BLUES i386
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199502121921.UAA04742>
