This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB 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]

Re: [patch] Fix power7 ppc64 binaries loading


On Tue, Mar 03, 2009 at 02:54:59PM -0600, Peter Bergner wrote:
> On Tue, 2009-03-03 at 15:30 -0500, Daniel Jacobowitz wrote:
> > On Tue, Mar 03, 2009 at 05:24:41PM -0300, Thiago Jung Bauermann wrote:
> > > Does apuinfo get generated for every binary in every platform? Why
> > > wasn't this an issue before? It just started being generated recently?
> > 
> > I assume it is only generated for specific ISA extensions - and that
> > both POWER7 and e500 have them.  GAS says:
> > 
> >   if (ppc_cpu & (PPC_OPCODE_SPE
> >                | PPC_OPCODE_ISEL | PPC_OPCODE_EFS
> >                | PPC_OPCODE_BRLOCK | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK
> >                | PPC_OPCODE_RFMCI))
> 
> With Power ISA 2.06 which was just recently announced on power.org, the
> isel instruction has now moved from an optional instruction to a required
> instruction.  The POWER7 processor is ISA 2.06 compliant, so it has the
> PPC_OPCODE_ISEL flag set which triggers this...as will all future Power
> processors.
> 
> That said, I have no idea what the apuinfo section is being used for.

Google for E500 ABI.  It should only be enabled when you are
assembling for e500.  I've committed the following to mainline
and 2.19 branch.

       * config/tc-ppc.c (md_assemble): APUinfo only for e500.

Index: gas/config/tc-ppc.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-ppc.c,v
retrieving revision 1.147
diff -u -p -r1.147 tc-ppc.c
--- gas/config/tc-ppc.c	26 Feb 2009 22:07:32 -0000	1.147
+++ gas/config/tc-ppc.c	3 Mar 2009 22:54:35 -0000
@@ -2965,10 +3038,7 @@ md_assemble (char *str)
 
 #ifdef OBJ_ELF
   /* Do we need/want a APUinfo section? */
-  if (ppc_cpu & (PPC_OPCODE_SPE
-   	       | PPC_OPCODE_ISEL | PPC_OPCODE_EFS
-	       | PPC_OPCODE_BRLOCK | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK
-	       | PPC_OPCODE_RFMCI))
+  if ((ppc_cpu & PPC_OPCODE_E500MC) != 0)
     {
       /* These are all version "1".  */
       if (opcode->flags & PPC_OPCODE_SPE)


-- 
Alan Modra
Australia Development Lab, IBM


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