aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-spu.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2009-03-17 12:46:19 +0000
committerAlan Modra <amodra@gmail.com>2009-03-17 12:46:19 +0000
commita7e11ee1d2e57a66740e940cb511ddba421fac47 (patch)
treecbf7e7c6bf82272b80cd8bbcb3f1f0d208e06726 /bfd/elf32-spu.h
parent9efe6174dc55b401321d1b53cdd04888e470b4c2 (diff)
downloadgdb-a7e11ee1d2e57a66740e940cb511ddba421fac47.zip
gdb-a7e11ee1d2e57a66740e940cb511ddba421fac47.tar.gz
gdb-a7e11ee1d2e57a66740e940cb511ddba421fac47.tar.bz2
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 0e69555..c856791 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