Date: Fri, 21 Jun 1996 19:41:19 +0200 (MET DST) From: "Christoph P. Kukulies" <kuku@gilberto.physik.rwth-aachen.de> To: bde@zeta.org.au (Bruce Evans) Cc: freebsd-hackers@FreeBSD.ORG, mrm@MARMOT.Mole.ORG Subject: Re: TARGET_NO_FANCY_MATH_387 Message-ID: <199606211741.TAA21575@gilberto.physik.rwth-aachen.de> In-Reply-To: <199605311508.BAA09743@godzilla.zeta.org.au> from Bruce Evans at "Jun 1, 96 01:08:37 am"
next in thread | previous in thread | raw e-mail | index | archive | help
> >Might it be a good thing now to change the default in gcc to enable > >FP sin, cos and sqrt. > > It would only give the inline sqrt. The inline sin and cos are disabled > in the FSF version of gcc-2.6.3 for other reasons. At least the i386 > versions of them were broken. You can use -mfancy-math-387 to get the > inline sqrt and -ffast-math to get the inline sin and cos together with > other fast and broken "math", or you can use inline assembler to get > inline math functions exactly where you want, or you can use the i387 > version of libm to get non-inline hardware math functions in more cases. Could you give an example showing that -ffancy-math-386 and -ffast-math have an effect? I tried with a small example and I'm always getting calls instead of fpu-inline statements. (gcc-2.6.3) #include <math.h> main() { double d=2500.; printf("%lf\n",sqrt(sin(d))); } gcc -ffast-math -m486 -mfancy-math-387 -S p.c ___gnu_compiled_c: .text LC0: .ascii "%lf\12\0" .align 4 .globl _main .type _main,@function _main: pushl %ebp movl %esp,%ebp subl $8,%esp call ___main movl $0,-8(%ebp) movl $1084459008,-4(%ebp) pushl -4(%ebp) pushl -8(%ebp) call _sin addl $8,%esp subl $8,%esp fstpl (%esp) call _sqrt > >for those of us with trusty '386/16's. Those still dependent upon > >FP simulation could use -mno-fancy-math-387... > > The price of an i386 sqrt() emulation (in milliPentiums :-) has gone > up. Those dependent on FP emulation would probably have difficulty > bootstrapping to use it. At least the following utilities use sqrt(), > so they might fail when their inline sqrt() doesn't work: as, awk, bc, > cc1, cc1plus, dc, gdb, groff (parts), perl. > > >and document > >-mfancy-math-387, -mno-fancy-math-387 in the man page for cc? ;-) > > They have been documented for 5 months in -current, and the changes were > merged into -stable a couple of days ago. > > Bruce > --Chris Christoph P. U. Kukulies kuku@gil.physik.rwth-aachen.de
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199606211741.TAA21575>