cd4a7468c9
* elf32-spu.c (struct spu_link_hash_table): Add init, line_size_log2, num_lines_log2. (struct got_entry): Add br_addr. (struct call_info): Add priority. (struct function_info): Add lr_store and sp_adjust. (spu_elf_setup): Init line_size_log2 and num_lines_log2. (spu_elf_find_overlays): For soft-icache, mark any section within cache area as an overlay, and check that no other overlays exist. Look up icache overlay manager entry sym. (BRA_STUBS, BRA, BRASL): Define. (enum _stub_type): Replace ovl_stub with call_ovl_stub and br*_ovl_stub. (needs_ovl_stub): Adjust for soft-icache. Return priority encoded in branch insn. (count_stub, build_stub): Support soft-icache. (build_spuear_stubs, process_stubs): Adjust build_stub call. (spu_elf_size_stubs): Size soft-icache stubs. (overlay_index): New function. (spu_elf_build_stubs): Make static. Support soft-icache. (spu_elf_check_vma): Don't turn off auto_overlay if soft-icache. (find_function_stack_adjust): Save lr store and stack adjust insn offsets. (maybe_insert_function): Adjust find_function_stack_adjust call. (mark_functions_via_relocs): Retrieve priority. (remove_cycles): Only warn about pruned arcs when stack_analysis. (sort_calls): Sort by priority first. (mark_overlay_section): Ignore .ovl.init. (sum_stack): Only print when stack_analysis. (print_one_overlay_section): New function, extracted from.. (spu_elf_auto_overlay): ..here. Support soft-icache overlays. (spu_elf_stack_analysis): Only print when htab->stack_analysis. (spu_elf_final_link): Call spu_elf_stack_analysis for lrlive analysis. Call spu_elf_build_stubs. (spu_elf_relocate_section): For soft-icache encode overlay index into addresses. (spu_elf_output_symbol_hook): Support soft-icache. (spu_elf_modify_program_headers: Likewise. * elf32-spu.h (struct spu_elf_params): Add lrlive_analysis. Rename num_regions to num_lines. Add line_size and max_branch. (enum _ovly_flavour): Add ovly_soft_icache. (spu_elf_build_stubs): Delete. gas/ * config/tc-spu.c (md_pseudo_table): Add "brinfo". (brinfo): New var. (md_assemble): Poke brinfo into branch instructions. (spu_brinfo): New function. (md_apply_fix): Don't assume insn fields start off at zero, mask them to remove possible brinfo. ld/ * emultempl/spuelf.em (params): Init new fields. (num_lines_set, line_size_set, icache_mgr, icache_mgr_stream): New vars. (spu_place_special_section): Adjust placement for soft-icache. Pad soft-icache section to a fixed size. Clear addr_tree. (spu_elf_load_ovl_mgr): Support soft-icache. Map overlay manager sections a little more intelligently. (gld${EMULATION_NAME}_finish): Don't call spu_elf_build_stubs. (OPTION_SPU_NUM_LINES): Rename from OPTION_SPU_NUM_REGIONS. (OPTION_SPU_SOFT_ICACHE, OPTION_SPU_LINE_SIZE): Define. (OPTION_SPU_LRLIVE): Define. (PARSE_AND_LIST_LONGOPTS): Add new soft-icache options. (PARSE_AND_LIST_OPTIONS): Likewise. (PARSE_AND_LIST_ARGS_CASES): Handle them. * emultempl/spu_icache.S: Dummy file. * emultempl/spu_icache.o_c: Regenerate. * Makefile.am (eelf32_spu.c): Depend on spu_icache.o_c. (spu_icache.o_c): Add rule to build. (CLEANFILES): Zap temp files. (EXTRA_DIST): Add spu_icache.o_c. * Makefile.in: Regenerate. ld/testsuite/ * ld-spu/ovl.d: Allow for absolute branches in stubs. * ld-spu/ovl2.d: Likewise.
93 lines
3.9 KiB
Plaintext
93 lines
3.9 KiB
Plaintext
2009-01-12 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* emultempl/spuelf.em (params): Init new fields.
|
||
(num_lines_set, line_size_set, icache_mgr, icache_mgr_stream): New vars.
|
||
(spu_place_special_section): Adjust placement for soft-icache. Pad
|
||
soft-icache section to a fixed size. Clear addr_tree.
|
||
(spu_elf_load_ovl_mgr): Support soft-icache. Map overlay manager
|
||
sections a little more intelligently.
|
||
(gld${EMULATION_NAME}_finish): Don't call spu_elf_build_stubs.
|
||
(OPTION_SPU_NUM_LINES): Rename from OPTION_SPU_NUM_REGIONS.
|
||
(OPTION_SPU_SOFT_ICACHE, OPTION_SPU_LINE_SIZE): Define.
|
||
(OPTION_SPU_LRLIVE): Define.
|
||
(PARSE_AND_LIST_LONGOPTS): Add new soft-icache options.
|
||
(PARSE_AND_LIST_OPTIONS): Likewise.
|
||
(PARSE_AND_LIST_ARGS_CASES): Handle them.
|
||
* emultempl/spu_icache.S: Dummy file.
|
||
* emultempl/spu_icache.o_c: Regenerate.
|
||
* Makefile.am (eelf32_spu.c): Depend on spu_icache.o_c.
|
||
(spu_icache.o_c): Add rule to build.
|
||
(CLEANFILES): Zap temp files.
|
||
(EXTRA_DIST): Add spu_icache.o_c.
|
||
* Makefile.in: Regenerate.
|
||
|
||
2009-01-08 Kai Tietz <kai.tietz@onevision.com>
|
||
|
||
* pe.em (OPTION_USE_NUL_PREFIXED_IMPORT_TABLES): New.
|
||
(gld..._add_options): Add new option
|
||
--use-nul-prefixed-import-tables.
|
||
(gld..._handle_option): Likewise.
|
||
* pep.em: Same as for pe.em.
|
||
* ld.texinfo: Add new option documentation for
|
||
--use-nul-prefixed-import-tables.
|
||
* pe-dll.c (pe_use_nul_prefixed_import_tables): New.
|
||
(make_head): Make prefix leading zero prefix element for
|
||
idata$4 and idata$5 dependent to new flag.
|
||
(make_import_fixup_entry): Remove idata4/5 prefix.
|
||
* pe-dll.h (pe_use_nul_prefixed_import_tables): New.
|
||
* pep-dll.c (pe_use_nul_prefixed_import_tables): New.
|
||
* pep-dll.h (pep_use_nul_prefixed_import_tables): New.
|
||
* NEWS: Add new option.
|
||
|
||
2009-01-05 Kai Tietz <kai.tietz@onevision.com>
|
||
|
||
* emultempl/pe.em: Prefix dollar characters to be outputed in
|
||
generated C file.
|
||
* emultempl/pep.em: Likewise.
|
||
|
||
2009-01-03 Dave Korn <dave.korn.cygwin@gmail.com>
|
||
|
||
* NEWS: Mention new feature --exclude-modules-for-implib.
|
||
* ld.texinfo: Document new --exclude-modules-for-implib option.
|
||
* pe-dll.c (exclude_list_struct): Change type member from int to
|
||
new enumeration exclude_type.
|
||
(pe_dll_add_excludes): Accept exclude_type instead of int param.
|
||
(auto_export): Replace magic constants by exclude_type values and
|
||
handle new choice EXCLUDEFORIMPLIB.
|
||
(pe_dll_generate_implib): Accept a pointer to the link_info and
|
||
iterate all input BFDs looking for EXCLUDEFORIMPLIB modules; re-open
|
||
fresh BFDs for any found and link into import lib archive chain.
|
||
* pe-dll.h (exclude_type): Add new enumerated type to replace magic
|
||
constants previously used for exclude_list_struct type member.
|
||
(pe_dll_add_excludes, pe_dll_generate_implib): Update prototypes.
|
||
* pep-dll.h (exclude_type, pe_dll_add_excludes,
|
||
pe_dll_generate_implib): Likewise to all the above.
|
||
* emultempl/pe.em (OPTION_EXCLUDE_MODULES_FOR_IMPLIB): Define new
|
||
getopts long option code for new --exclude-modules-for-implib option.
|
||
(gld${EMULATION_NAME}_add_options): Add new entry to xtra_long[].
|
||
(gld_${EMULATION_NAME}_list_options): List usage for it.
|
||
(gld${EMULATION_NAME}_handle_option): Use exclude_type enumerated
|
||
values when calling pe_dll_add_excludes, and handle EXCLUDEFORIMPLIB.
|
||
(gld_${EMULATION_NAME}_finish): Pass pointer to link_info when
|
||
calling pe_dll_generate_implib.
|
||
* emultempl/pep.em (options): Define new enumerated value for getopts
|
||
long option code for new --exclude-modules-for-implib option.
|
||
(gld${EMULATION_NAME}_add_options, gld_${EMULATION_NAME}_list_options,
|
||
gld${EMULATION_NAME}_handle_option, gld_${EMULATION_NAME}_finish):
|
||
Again, likewise to all the above.
|
||
|
||
2009-01-03 Dave Korn <dave.korn.cygwin@gmail.com>
|
||
|
||
* pe-dll.c (autofilter_liblist): Add entry for shared libgcc.
|
||
(libnamencmp): New function.
|
||
(auto_export): Use it in place of strncmp when filtering libraries.
|
||
|
||
For older changes see ChangeLog-2008
|
||
|
||
Local Variables:
|
||
mode: change-log
|
||
left-margin: 8
|
||
fill-column: 74
|
||
version-control: never
|
||
End:
|