This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ldq and stq on UltraSparc I and II


On Tue, Apr 30, 2002 at 11:54:17PM +0200, Jakub Jelinek wrote:
> On Tue, Apr 30, 2002 at 02:11:12PM -0700, David O'Brien wrote:
> > Dave/Richard,
> > 
> > I found that GCC 3.1 uses ldq and stq to load long doubles w/HARD_QUAD.
> > The problem is UltraSparc I and II CPU's do not have the instructions in
> > silicon.  FreeBSD has now emulated them, but of course there is a
> > performance hit.  Should the sparc description be changed to not use
> > these CPU's?  Or should -mcpu's possible values be expanded for greater
> > granularity on modern [UltraSparc] processors?
> 
> What I don't understand is if you emulate hard quad instructions
> in the kernel, what's the problem of just taking the emulation code, add
> wrappers to match the _Qp_* calling conventions and put it into libc.
> 

_Qp_* has nothing to do with load/store floating registers, so penalty
can be avoided only in compiler which should use ldd/std instructions instead.
OTOH 'long double' doesn't seem to be very popular type.

	Andrey Petrov


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]