This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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