bfd/
authorAlan Modra <amodra@gmail.com>
Tue, 17 Mar 2009 12:46:19 +0000 (12:46 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 17 Mar 2009 12:46:19 +0000 (12:46 +0000)
commita7e11ee1d2e57a66740e940cb511ddba421fac47
treecbf7e7c6bf82272b80cd8bbcb3f1f0d208e06726
parent9efe6174dc55b401321d1b53cdd04888e470b4c2
bfd/
* elf32-spu.h (struct spu_elf_params): ovly_flavour now only 1 bit.
Add compact_stub.
(emum _ovly_flavour): Delete ovly_compact, ovly_none.
* elf32-spu.c (struct spu_link_hash_table): Replace ovly_load and
ovly_return fields with ovly_entry[2].  Adjust all users.
(spu_elf_find_overlays): Set ovly_entry[1] from __icache_call_handler
when soft-icache.
(spu_elf_build_stubs): Likewise.
(ovl_stub_size): Change arg to spu_elf_params pointer.  Adjust for
ovly_flavour changes.  Update all callers.
(ovl_stub_size_log2): New function.
(build_stub): Handle compact icache stubs.  Use different manager
entry point for stubs in non-icache area.
(spu_elf_size_stubs): Don't allocate space for indirect branch
descriptors.
(spu_elf_build_stubs): And don't built them.
ld/
* emultempl/spu_icache.S: Add new entry to dummy handler.
* emultempl/spu_icache.o_c: Regenerate.
* emultempl/spuelf.em (params): Init new field.
(no_overlays): New static var.
(spu_before_allocation): Use it.
(OPTION_SPU_COMPACT_STUBS): Define.
(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add compact-stubs.
(PARSE_AND_LIST_ARGS_CASES): Handle compact-stubs.  Adjust no-overlays
handling.
ld/testsuite/
* ld-spu/icache1.d: Update for fixed set_id, new manager entry, and
reduced data.
bfd/ChangeLog
bfd/elf32-spu.c
bfd/elf32-spu.h
ld/ChangeLog
ld/emultempl/spu_icache.S
ld/emultempl/spu_icache.o_c
ld/emultempl/spuelf.em
ld/testsuite/ChangeLog
ld/testsuite/ld-spu/icache1.d