116 lines · plain
1@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \2@ RUN: | llvm-readobj -S --sd --sr - > %t3@ RUN: FileCheck %s < %t4@ RUN: FileCheck --check-prefix=RELOC %s < %t5 6@ Check the .handlerdata directive (without .personality directive)7 8 .syntax unified9 10@-------------------------------------------------------------------------------11@ TEST112@-------------------------------------------------------------------------------13 .section .TEST114 .globl func115 .align 216 .type func1,%function17 .fnstart18func1:19 bx lr20 .handlerdata21 .fnend22 23 24@ CHECK:Section {25@ CHECK: Name: .TEST126@ CHECK: SectionData (27@ CHECK: 0000: 1EFF2FE1 |../.|28@ CHECK: )29@ CHECK:}30 31@ CHECK:Section {32@ CHECK: Name: .ARM.extab.TEST133@ CHECK: SectionData (34@ CHECK: 0000: B0B0B080 |....|35@ CHECK: )36@ CHECK:}37 38@ CHECK:Section {39@ CHECK: Name: .ARM.exidx.TEST140@ CHECK: SectionData (41@ CHECK: 0000: 00000000 00000000 |........|42@ CHECK: )43@ CHECK:}44@-------------------------------------------------------------------------------45@ We should see a relocation entry to __aeabi_unwind_cpp_pr0, so that the46@ linker can keep __aeabi_unwind_cpp_pr0.47@-------------------------------------------------------------------------------48@ RELOC: Section {49@ RELOC: Name: .rel.ARM.exidx.TEST150@ RELOC: Relocations [51@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr052@ RELOC: 0x0 R_ARM_PREL31 .TEST153@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.TEST154@ RELOC: ]55@ RELOC: }56 57 58 59@-------------------------------------------------------------------------------60@ TEST261@-------------------------------------------------------------------------------62 .section .TEST263 .globl func264 .align 265 .type func2,%function66 .fnstart67func2:68@-------------------------------------------------------------------------------69@ Use a lot of unwind opcdes to get __aeabi_unwind_cpp_pr1.70@-------------------------------------------------------------------------------71 .save {r4, r5, r6, r7, r8, r9, r10, r11, r12}72 push {r4, r5, r6, r7, r8, r9, r10, r11, r12}73 pop {r4, r5, r6, r7, r8, r9, r10, r11, r12}74 .pad #0x24075 sub sp, sp, #0x24076 add sp, sp, #0x24077 bx lr78 .handlerdata79 .fnend80 81 82 83@ CHECK:Section {84@ CHECK: Name: .TEST285@ CHECK: SectionData (86@ CHECK: 0000: F01F2DE9 F01FBDE8 09DD4DE2 09DD8DE2 |..-.......M.....|87@ CHECK: 0010: 1EFF2FE1 |../.|88@ CHECK: )89@ CHECK:}90 91@ CHECK:Section {92@ CHECK: Name: .ARM.extab.TEST293@ CHECK: SectionData (94@ CHECK: 0000: 0FB20181 B0B0FF81 |........|95@ CHECK: )96@ CHECK:}97 98@ CHECK:Section {99@ CHECK: Name: .ARM.exidx.TEST2100@ CHECK: SectionData (101@ CHECK: 0000: 00000000 00000000 |........|102@ CHECK: )103@ CHECK:}104@-------------------------------------------------------------------------------105@ We should see a relocation entry to __aeabi_unwind_cpp_pr0, so that the106@ linker can keep __aeabi_unwind_cpp_pr0.107@-------------------------------------------------------------------------------108@ RELOC: Section {109@ RELOC: Name: .rel.ARM.exidx.TEST2110@ RELOC: Relocations [111@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1112@ RELOC: 0x0 R_ARM_PREL31 .TEST2113@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.TEST2114@ RELOC: ]115@ RELOC: }116