summaryrefslogtreecommitdiff
path: root/bfd/elf32-spu.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2009-03-17 12:46:19 +0000
committerAlan Modra <amodra@bigpond.net.au>2009-03-17 12:46:19 +0000
commit53b4afedf2a6209845984bb7828ebb28b8b8fa27 (patch)
treefcbdf27332a0a4cb3b9b0de420850dc0b416b4af /bfd/elf32-spu.h
parent2ca504c4f5bd85e89a04fde55f47f2992ade021c (diff)
downloadbinutils-redhat-53b4afedf2a6209845984bb7828ebb28b8b8fa27.tar.gz
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.
Diffstat (limited to 'bfd/elf32-spu.h')
-rw-r--r--bfd/elf32-spu.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/bfd/elf32-spu.h b/bfd/elf32-spu.h
index 0e69555364..c8567919a5 100644
--- a/bfd/elf32-spu.h
+++ b/bfd/elf32-spu.h
@@ -35,7 +35,8 @@ struct spu_elf_params
#define OVERLAY_RODATA 4
/* Type of overlays, enum _ovly_flavour. */
- unsigned int ovly_flavour : 2;
+ unsigned int ovly_flavour : 1;
+ unsigned int compact_stub : 1;
/* Set if we should emit symbols for stubs. */
unsigned int emit_stub_syms : 1;
@@ -98,10 +99,8 @@ struct _spu_elf_section_data
enum _ovly_flavour
{
- ovly_compact,
ovly_normal,
- ovly_soft_icache,
- ovly_none
+ ovly_soft_icache
};
struct _ovl_stream