mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
fbd9ad907d
bfd/ * bfd-in.h (elf32_tic6x_fix_exidx_coverage): Add prototype. * bfd-in2.h: Regenerate. * elf32-tic6x.c: Include limits.h. (tic6x_unwind_edit_type, tic6x_unwind_table_edit, _tic6x_elf_section_data): New. (elf32_tic6x_section_data): Define. (elf32_tic6x_new_section_hook): Allocate target specific data. (elf32_tic6x_add_unwind_table_edit): New function. (get_tic6x_elf_section_data, elf32_tic6x_adjust_exidx_size, elf32_tic6x_insert_cantunwind_after, elf32_tic6x_add_low31, elf32_tic6x_copy_exidx_entry): New functions. (elf_backend_write_section): Define. ld/ * emultempl/tic6xdsbt.em (merge_exidx_entries): New. (compare_output_sec_vma): New function. (gld${EMULATION_NAME}_after_allocation): New function. (OPTION_NO_MERGE_EXIDX_ENTRIES): Define. (PARSE_AND_LIST_OPTIONS): Add --no-merge-exidx-entries. (PARSE_AND_LIST_ARGS_CASES): Add OPTION_NO_MERGE_EXIDX_ENTRIES. (LDEMUL_AFTER_ALLOCATION): Set. * ld.texinfo: Document c6x --no-merge-exidx-entries. ld/testsuite/ * ld-tic6x/discard-unwind.ld: New. * ld-tic6x/unwind.ld: New. * ld-tic6x/unwind-1.d: New test. * ld-tic6x/unwind-1.s: New test. * ld-tic6x/unwind-2.d: New test. * ld-tic6x/unwind-2.s: New test. * ld-tic6x/unwind-3.d: New test. * ld-tic6x/unwind-3.s: New test. * ld-tic6x/unwind-4.d: New test. * ld-tic6x/unwind-4.s: New test. * ld-tic6x/unwind-5.d: New test. * ld-tic6x/unwind-5.s: New test. * ld-tic6x/unwind-6.d: New test.
69 lines
1.1 KiB
ArmAsm
69 lines
1.1 KiB
ArmAsm
.cfi_sections .c6xabi.exidx
|
|
.text
|
|
# out of line table entry
|
|
.global _start
|
|
.type _start, %function
|
|
_start:
|
|
.cfi_startproc
|
|
.cfi_offset B3, 0
|
|
.cfi_def_cfa_offset 8
|
|
nop
|
|
.p2align 6
|
|
.cfi_endproc
|
|
.personalityindex 3
|
|
.handlerdata
|
|
.word 0
|
|
.endp
|
|
|
|
# entry that can be merged
|
|
.cfi_startproc
|
|
.cfi_offset B3, 0
|
|
.cfi_def_cfa_offset 8
|
|
nop
|
|
.p2align 6
|
|
.cfi_endproc
|
|
.personalityindex 3
|
|
.endp
|
|
|
|
# Section that will be placed first
|
|
.section .before, "xa"
|
|
.type _before, %function
|
|
_before:
|
|
.cfi_startproc
|
|
.cfi_offset B3, 0
|
|
.cfi_def_cfa_offset 8
|
|
nop
|
|
.p2align 6
|
|
.cfi_endproc
|
|
.personalityindex 3
|
|
.endp
|
|
|
|
# section that will be placed last
|
|
.section .after, "xa"
|
|
.global __c6xabi_unwind_cpp_pr3
|
|
.type __c6xabi_unwind_cpp_pr3, %function
|
|
__c6xabi_unwind_cpp_pr3:
|
|
# entry that can be merged
|
|
.cfi_startproc
|
|
.cfi_offset B3, 0
|
|
.cfi_def_cfa_offset 8
|
|
nop
|
|
.cfi_endproc
|
|
.personalityindex 3
|
|
.endp
|
|
|
|
# final function is cantunwind, so output table size is smaller
|
|
# than sum of input sections
|
|
.global foo
|
|
.type foo, %function
|
|
foo:
|
|
.cfi_startproc
|
|
nop
|
|
.p2align 6
|
|
.cfi_endproc
|
|
.cantunwind
|
|
.endp
|
|
|
|
.section .far
|
|
.word 0
|