Alan Modra
bb57ddfeb7
bfd/
* elf32-spu.c (struct spu_link_hash_table): Add stack_analysis
and emit_stack_syms bitfields.
(get_sym_h): Read all symbols if stack analysis will be done.
(spu_elf_create_sections): Add stack_analysis and emit_stack_syms
params, and stash in hash table.
(is_hint): Split off from..
(is_branch): ..here. Adjust callers.
(spu_elf_size_stubs): Add stack_analysis param. Arrange to read
and keep all syms.
(write_one_stub): Fix mem leak.
(find_function_stack_adjust): New function.
(sort_syms_syms, sort_syms_psecs): New vars.
(sort_syms): New function.
(struct call_info, struct function_info): New.
(struct spu_elf_stack_info): New.
(alloc_stack_info, maybe_insert_function, func_name): New functions.
(is_nop, insns_at_end, check_function_ranges): Likewise.
(find_function, insert_callee, mark_functions_via_relocs): Likewise.
(pasted_function, interesting_section, discover_functions): Likewise.
(mark_non_root, call_graph_traverse, build_call_tree): Likewise.
(sum_stack, spu_elf_stack_analysis, spu_elf_final_link): Likewise.
(bfd_elf32_bfd_final_link): Define.
* elf32-spu.h (struct _spu_elf_section_data): Add stack_info field.
(spu_elf_create_sections, spu_elf_size_stubs): Update prototypes.
include/
* bfdlink.h (struct bfd_link_info): Add "info" and "minfo".
ld/
* ldmain.c (link_callbacks): Init info and minfo fields.
* ldmisc.c (minfo): Do nothing if no map file.
* emultempl/spuelf.em (stack_analysis, emit_stack_syms): New vars.
(spu_after_open): Adjust spu_elf_create_sections call.
(spu_before_allocation): Likewise for spu_elf_size_stubs.
(OPTION_SPU_STACK_ANALYSIS, OPTION_SPU_STACK_SYMS): Define.
(PARSE_AND_LIST_LONGOPTS): Add new entries.
(PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Likewise.
* gen-doc.texi: Add @set for SPU and other missing targets.
* ld.texinfo: Update man page selection to match gen-doc.texi.
Document SPU features.
2007-04-30 14:06:40 +00:00
..
2005-08-18 03:49:39 +00:00
2007-04-27 03:37:43 +00:00
2007-04-26 06:59:55 +00:00
2007-01-10 04:33:06 +00:00
2005-05-10 10:21:13 +00:00
2007-04-23 07:51:30 +00:00
2000-09-28 08:00:54 +00:00
2007-03-06 19:00:57 +00:00
2007-04-30 14:06:40 +00:00
2005-05-10 10:21:13 +00:00
2007-04-30 14:06:40 +00:00
2005-04-14 02:22:07 +00:00
2005-05-10 10:21:13 +00:00
2007-04-26 03:13:46 +00:00
2007-02-05 19:17:10 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2007-03-29 21:03:43 +00:00
2005-10-31 18:01:16 +00:00
2005-05-10 10:21:13 +00:00
1999-05-03 07:29:06 +00:00
1999-05-03 07:29:06 +00:00
1999-05-03 07:29:06 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2005-06-30 23:02:54 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2007-02-09 17:21:45 +00:00
2000-07-05 19:28:05 +00:00
2006-01-18 21:05:51 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2005-05-10 10:21:13 +00:00
2005-07-12 10:34:51 +00:00
2001-08-02 23:27:47 +00:00
2006-11-27 20:14:52 +00:00
2005-05-10 10:21:13 +00:00
2006-11-27 19:23:21 +00:00