From 53b4afedf2a6209845984bb7828ebb28b8b8fa27 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 17 Mar 2009 12:46:19 +0000 Subject: 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/elf32-spu.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'bfd/elf32-spu.h') 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 -- cgit v1.2.1