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