This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [patch] MIPS gas problems with gcc's explicit relocs
- From: Richard Sandiford <rsandifo at redhat dot com>
- To: "Maciej W. Rozycki" <macro at ds2 dot pg dot gda dot pl>
- Cc: binutils at sources dot redhat dot com
- Date: Sat, 29 May 2004 07:10:46 +0100
- Subject: Re: [patch] MIPS gas problems with gcc's explicit relocs
- References: <Pine.LNX.4.55.0405281900120.7804@jurand.ds.pg.gda.pl>
Hi Maciej,
"Maciej W. Rozycki" <macro@ds2.pg.gda.pl> writes:
> The recent addition of explicit relocation generation to gcc triggered
> failures for inline assembly under certain conditions.
Thanks for sticking up for the new gcc behaviour ;).
I just wanted to point out that using %lo(...) in "m" constraints
isn't in itself a new thing. And that includes "m" constraints in
inline asms, since gcc doesn't treat them any differently from "m"
constraints in its own internal patterns. For example, if you
select non-abicalls o32 or o64 code, I think it's been possible
for "m" to use %lo(...) for some time. (Unless of course you
disabled it via -mno-split-addresses.)
If allowing %lo(...) in dla isn't acceptable (I've no opinion either
way really), then we'll just have to call:
> asm("dla\t%0,%1" : "=r" (result) : "m" (foo));
ill-formed. You should only use "m" if the instruction can handle
every valid memory reference.
Richard