Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Dec 2012 19:19:07 -0800
From:      Steve Kargl <sgk@troutmask.apl.washington.edu>
To:        Stephen Montgomery-Smith <stephen@missouri.edu>
Cc:        freebsd-numerics@freebsd.org, Bruce Evans <brde@optusnet.com.au>
Subject:   Re: complex arc-trig etc
Message-ID:  <20121229031907.GA428@troutmask.apl.washington.edu>
In-Reply-To: <50DE5474.1070900@missouri.edu>
References:  <50CE9D0C.8080901@missouri.edu> <20121217191324.T1277@besplex.bde.org> <50DE5474.1070900@missouri.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Dec 28, 2012 at 08:24:52PM -0600, Stephen Montgomery-Smith wrote:
> On 12/17/2012 02:38 AM, Bruce Evans wrote:
> > On Sun, 16 Dec 2012, Stephen Montgomery-Smith wrote:
> > 
> >> Hey guys, my complex arc-trig functions at
> >> http://people.freebsd.org/~stephen/ have been sitting there a long time.
> >> Anyone want to commit them?
> > 
> > I was sort of waiting for the next rounds of changes:
> > 
> > 1. update the template to give similar code for float and long double
> > 2. make it work for i386 using ENTERI()
> 
> What is ENTERI()?
> 

For 'long double' on i386, the precision is
set to 53 bits in the kernel (see the file
sys/x86/include/fpu.h).  ENTERI() toggles
the fpu control word to use 64 bits for 
long double and you use RETURNI() instead
of 'return(val)' to return from the function.
You can see these being used in msun/src/ld80/
s_expl.c.  Also, note the ENTERI() and RETURNI()
are defined in msun/src/math_private.h.

Bruce can probably give a better explanation
and the history.

-- 
Steve



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121229031907.GA428>