This is the mail archive of the
gas2@sourceware.cygnus.com
mailing list for the binutils project.
Re: ppc instructions in gas
Date: Thu, 6 May 1999 20:13:22 -0700
From: Richard Henderson <rth@cygnus.com>
On Fri, May 07, 1999 at 03:05:30AM -0000, Ian Lance Taylor wrote:
> I don't have the context of the original message. The addis/lis
> instruction is documented to take a signed operand. I don't know why
> it makes sense to remove PPC_OPERAND_SIGNED.
Context is that gcc doesn't emit signed, and some of the ppc linux
kernel sources don't use signed values either. This worked for
ppc32 due to the PPC_OPERAND_SIGNOPT hack, and only showed up when
Cort started work on ppc64.
We iterated enough to conclude that we should in fact fix gcc, and
the kernel sources. The one remaining question is whether to continue
to silently accept unsigned values for ppc32, or whether we should
warn for them.
Thoughts on that last?
I believe we should continue to silently accept them. The patch was
put in there because of existing code which should continue to work.
I now remember that I opposed it at the time, and argued David
Edelsohn (I believe it was) into only accepting unsigned values in 32
bit mode, and requiring people to fix their code as they upgraded to
64 bits.
I even have a vague recollection that the Power liu instruction was
documented to load an unsigned value. The Power was only 32 bits, so
of course it didn't really matter. The PowerPC renamed liu to lis,
and made it signed for the 64 bit version. Power code and Power
programmers naturally used unsigned values, so we made gas permit
unsigned values for lis.
Ian