binutils-gdb/ld/testsuite/ld-arm/unwind-4.s
Paul Brook 2468f9c95d 2009-05-05 Paul Brook <paul@codesourcery.com>
bfd/
	* bfd-in.h (elf32_arm_fix_exidx_coverage): Add prototype.
	* bfd-in2.h: Regenerate.
	* elf32-arm.c (arm_unwind_edit_type, arm_unwind_table_edit): Define.
	(_arm_elf_section_data): Add text and exidx fields.
	(add_unwind_table_edit, get_arm_elf_section_data, adjust_exidx_size,
	insert_cantunwind_after, elf32_arm_fix_exidx_coverage, offset_prel31,
	copy_exidx_entry): New functions.
	(elf32_arm_write_section): Fixup .ARM.exidx contents.

	ld/
	* emultempl/armelf.em (compare_output_sec_vma): New function.
	(gld${EMULATION_NAME}_finish): Add exidx munging code.

	ld/testsuite/
	* ld-arm/arm.ld: Add .ARM.exidx and .ARM.extab.
	* ld-arm/arm-elf.exp: Add unwind-[1-4].
	* ld-arm/unwind-1.d: New test.
	* ld-arm/unwind-1.s: New test.
	* ld-arm/unwind-2.d: New test.
	* ld-arm/unwind-2.s: New test.
	* ld-arm/unwind-3.d: New test.
	* ld-arm/unwind-3.s: New test.
	* ld-arm/unwind-4.d: New test.
	* ld-arm/unwind-4.s: New test.
2009-05-05 14:18:30 +00:00

50 lines
833 B
ArmAsm

.syntax unified
.text
@ out of line table entry
.global _start
.type _start, %function
_start:
.fnstart
.save {r4, lr}
.vsave {d0}
.vsave {d4}
bl _before
.fnend
@ entry that can be merged
.fnstart
.save {r4, lr}
bx lr
.fnend
@ Section that will be placed first
.section .before, "xa"
.type _before, %function
_before:
.fnstart
.save {r4, lr}
bx lr
.fnend
@ section that will be placed last
.section .after, "xa"
.global __aeabi_unwind_cpp_pr0
.type __aeabi_unwind_cpp_pr0, %function
__aeabi_unwind_cpp_pr0:
.fnstart
.save {r4, lr}
bx lr
.fnend
@ final function is cantunwind, so output table size is smaller
@ than sum of input sections
.global __aeabi_unwind_cpp_pr1
.type __aeabi_unwind_cpp_pr1, %function
__aeabi_unwind_cpp_pr1:
.fnstart
.cantunwind
bx lr
.fnend
.section .far
.word 0