This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils 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]

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


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


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