cvs commit: src/lib/libc/amd64/gen fabs.S modf.S

Peter Wemm peter at wemm.org
Mon May 5 16:30:48 PDT 2003


Bruce Evans wrote:
> On Thu, 1 May 2003, David O'Brien wrote:
> 
> > On Thu, May 01, 2003 at 02:24:23AM +0300, Maxim Sobolev wrote:
> > > Does this mean that it is theoretically possible to use those
> > > and other similar functions on SSE2-capable ia32 processors, such
> > > as p4, instead of x87 FPU ones?
> >
> > Probably.  You'll have to do a little /%r/%e/ action.
> 
> Not to mention changing the i386 calling convention.  But you wouldn't
> want to use these and other similar functions on SSEn-capable ia32
> processors, since they don't use SSEn except for using SSE1 registers
> to pessimize the function call protocol a little for at least the
> callee (the callee has to do extra work to move values from wrong
> registers via the stack).  Perhaps other unsimilar functions get
> more benefits from SSE.
> 
> BTW, is it really safe to use negative stack offsets for scratch
> variables ?  Where is the signal stack?  fabs() and some other functions
> use negative stack offsets, but modf() uses a normal frame pointer.

Yes.  There is a 128 byte 'red zone' below the stack pointer that may be
used by leaf functions.  Signals delivery is supposed to skip that space,
but I haven't done that yet.  

Cheers,
-Peter
--
Peter Wemm - peter at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5



More information about the cvs-all mailing list