From a7af95ad76a63c0c39a30c196100974bbeddde0f Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 11 May 2007 03:10:10 +0000 Subject: [PATCH] include/elf/ * spu.h (R_SPU_PPU32, R_SPU_PPU64): Define. bfd/ * reloc.c (BFD_RELOC_SPU_PPU32, BFD_RELOC_SPU_PPU64): Define. * elf-bfd.h (struct elf_backend_data): Change return type of elf_backend_relocate_section to int. * elf32-spu.c (elf_howto_table): Add howtos for R_SPU_PPU32 and R_SPU_PPU64. (spu_elf_bfd_to_reloc_type): Convert new relocs. (spu_elf_count_relocs): New function. (elf_backend_count_relocs): Define. (spu_elf_relocate_section): Arrange to emit R_SPU_PPU32 and R_SPU_PPU64 relocs. * elflink.c (elf_link_input_bfd): Emit relocs if relocate_section returns 2. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. gas/ * config/tc-spu.c (md_pseudo_table): Add int, long, quad. Call spu_cons for word. (md_assemble): Tidy use of insn.flag. (get_imm): Likewise. Handle uppercase input too. (spu_cons): New function. * config/tc-spu.h (tc_fix_adjustable): Don't adjust SPU_PPU relocs. (TC_FORCE_RELOCATION): Don't resolve them either. binutils/ * embedspu.sh (find_prog): Prefer prog in same dir as embedspu over one found on the users path. (main): Generate .reloc for each R_SPU_PPU* reloc. --- include/elf/ChangeLog | 4 ++++ include/elf/spu.h | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index c21400973..3169065b0 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,7 @@ +2007-05-11 Alan Modra + + * spu.h (R_SPU_PPU32, R_SPU_PPU64): Define. + 2007-05-02 Alan Modra * internal.h (ELF_IS_SECTION_IN_SEGMENT): Check both file offset diff --git a/include/elf/spu.h b/include/elf/spu.h index 2e3f0500d..2ae80c598 100644 --- a/include/elf/spu.h +++ b/include/elf/spu.h @@ -1,6 +1,6 @@ /* SPU ELF support for BFD. - Copyright 2006 Free Software Foundation, Inc. + Copyright 2006, 2007 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -39,6 +39,8 @@ 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) END_RELOC_NUMBERS (R_SPU_max) /* Program header extensions */