ppc instructions in gas

Ian Lance Taylor ian@airs.com
Thu May 6 20:43:00 GMT 1999


   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


More information about the Gas2 mailing list