binutils-2.15.90.1 and up don't like glibc-2.3.2 on sparc64? (was: newbie problem with sparc64 architecture)

Dan Kegel dank@kegel.com
Mon Apr 26 11:52:00 GMT 2004


Dan Kegel wrote:
> I'm having trouble cross-building glibc-2.3.2 for sparc64-linux.

Here's the patch that exposes the problem:
http://sources.redhat.com/ml/binutils/2004-01/msg00289.html
binutils-2.15.90.0.1 is probably the first with the patch,
and the first that would run into the problem.

Rereading the sparc64 architecture manual, I see that there
really *are* only 32 single precision fp registers (in case
anyone doubted Jakub's word!)

The two instructions that gas now complains about are
         fqtoi %f52, %f60         Convert quad to 32 bit integer
         st %f60, [%g1]           Store low 32 bits?
$ sparc64-unknown-linux-gnu-as -Av9a -64 qp_qtoi.s
qp_qtoi.s:261: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
qp_qtoi.s:262: Error: Illegal operands: There are only 32 single precision f registers; [0-31]

These come straight from inline assembly in
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c?rev=1.3&cvsroot=glibc

Is this a minor glibc coding error, or was the binutils patch overzealous?
I don't know sparc64 assembly well enough to see yet.
However, since Jakub probably wrote both the line in glibc and the
patch in question, perhaps he could comment :-)

Thanks,
Dan

-- 
My technical stuff: http://kegel.com
My politics: see http://www.misleader.org for examples of why I'm for regime change



More information about the Binutils mailing list