SPU relocs for PPU syms

Alan Modra amodra@bigpond.net.au
Sat May 12 06:43:00 GMT 2007


On Fri, May 11, 2007 at 12:33:22PM +0930, Alan Modra wrote:
> 	* spu.h (R_SPU_PPU32, R_SPU_PPU64): Define.

Andrew Pinski pointed out that I broke the ABI with this patch, since
reloc 14 was already defined by the ABI doc, but unused in GNU
binutils.  Oops.

include/elf/
	* spu.h (R_SPU_ADDR16X): Define.
	(R_SPU_PPU32, R_SPU_PPU64): Renumber.
bfd/
	* elf32-spu.c (elf_howto_table): Add howto for R_SPU_ADDR16X.

Index: include/elf/spu.h
===================================================================
RCS file: /cvs/src/src/include/elf/spu.h,v
retrieving revision 1.2
diff -u -p -r1.2 spu.h
--- include/elf/spu.h	11 May 2007 03:10:10 -0000	1.2
+++ include/elf/spu.h	12 May 2007 04:53:05 -0000
@@ -39,8 +39,9 @@ START_RELOC_NUMBERS (elf_spu_reloc_type)
      RELOC_NUMBER (R_SPU_ADDR10I,	11)
      RELOC_NUMBER (R_SPU_ADDR16I,	12)
      RELOC_NUMBER (R_SPU_REL32,		13)
-     RELOC_NUMBER (R_SPU_PPU32,		14)
-     RELOC_NUMBER (R_SPU_PPU64,		15)
+     RELOC_NUMBER (R_SPU_ADDR16X,	14)
+     RELOC_NUMBER (R_SPU_PPU32,		15)
+     RELOC_NUMBER (R_SPU_PPU64,		16)
 END_RELOC_NUMBERS (R_SPU_max)
 
 /* Program header extensions */
Index: bfd/elf32-spu.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-spu.c,v
retrieving revision 1.16
diff -u -p -r1.16 elf32-spu.c
--- bfd/elf32-spu.c	11 May 2007 03:10:11 -0000	1.16
+++ bfd/elf32-spu.c	12 May 2007 04:52:47 -0000
@@ -78,6 +78,9 @@ static reloc_howto_type elf_howto_table[
   HOWTO (R_SPU_REL32,   0, 2, 32, TRUE,  0, complain_overflow_dont,
 	 bfd_elf_generic_reloc, "SPU_REL32",
 	 FALSE, 0, 0xffffffff, TRUE),
+  HOWTO (R_SPU_ADDR16X,    0, 2, 16, FALSE,  7, complain_overflow_bitfield,
+	 bfd_elf_generic_reloc, "SPU_ADDR16X",
+	 FALSE, 0, 0x007fff80, FALSE),
   HOWTO (R_SPU_PPU32,   0, 2, 32, FALSE,  0, complain_overflow_dont,
 	 bfd_elf_generic_reloc, "SPU_PPU32",
 	 FALSE, 0, 0xffffffff, FALSE),

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre



More information about the Binutils mailing list