blob: 793d357bac76c49eac69e63d761536a7a6a10801 [file] [log] [blame]
Logan Chien4ea23b52013-05-10 16:17:24 +00001@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
2@ RUN: | llvm-readobj -s -sd -sr | FileCheck %s
3
4@ Check the .handlerdata directive (without .personality directive)
5
6 .syntax unified
7
8@-------------------------------------------------------------------------------
9@ TEST1
10@-------------------------------------------------------------------------------
11 .section .TEST1
12 .globl func1
13 .align 2
14 .type func1,%function
15 .fnstart
16func1:
17 bx lr
18 .handlerdata
19 .fnend
20
21
22@ CHECK:Section {
23@ CHECK: Name: .TEST1
24@ CHECK: SectionData (
25@ CHECK: 0000: 1EFF2FE1 |../.|
26@ CHECK: )
27@ CHECK:}
28
29@ CHECK:Section {
30@ CHECK: Name: .ARM.extab.TEST1
31@ CHECK: SectionData (
32@ CHECK: 0000: B0B0B080 |....|
33@ CHECK: )
34@ CHECK:}
35
36@ CHECK:Section {
37@ CHECK: Name: .ARM.exidx.TEST1
Rafael Espindola4f60a382013-05-30 03:05:14 +000038@ CHECK: SectionData (
39@ CHECK: 0000: 00000000 00000000 |........|
40@ CHECK: )
41@ CHECK:}
Logan Chien4ea23b52013-05-10 16:17:24 +000042@-------------------------------------------------------------------------------
43@ We should see a relocation entry to __aeabi_unwind_cpp_pr0, so that the
44@ linker can keep __aeabi_unwind_cpp_pr0.
45@-------------------------------------------------------------------------------
46@ CHECK: Relocations [
47@ CHECK: 0x0 R_ARM_PREL31 .TEST1 0x0
48@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
49@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
50@ CHECK: ]
Logan Chien4ea23b52013-05-10 16:17:24 +000051
52
53
54@-------------------------------------------------------------------------------
55@ TEST2
56@-------------------------------------------------------------------------------
57 .section .TEST2
58 .globl func2
59 .align 2
60 .type func2,%function
61 .fnstart
62func2:
63@-------------------------------------------------------------------------------
64@ Use a lot of unwind opcdes to get __aeabi_unwind_cpp_pr1.
65@-------------------------------------------------------------------------------
66 .save {r4, r5, r6, r7, r8, r9, r10, r11, r12}
67 push {r4, r5, r6, r7, r8, r9, r10, r11, r12}
68 pop {r4, r5, r6, r7, r8, r9, r10, r11, r12}
69 .pad #0x240
70 sub sp, sp, #0x240
71 add sp, sp, #0x240
72 bx lr
73 .handlerdata
74 .fnend
75
76
77
78@ CHECK:Section {
79@ CHECK: Name: .TEST2
80@ CHECK: SectionData (
81@ CHECK: 0000: F01F2DE9 F01FBDE8 09DD4DE2 09DD8DE2 |..-.......M.....|
82@ CHECK: 0010: 1EFF2FE1 |../.|
83@ CHECK: )
84@ CHECK:}
85
86@ CHECK:Section {
87@ CHECK: Name: .ARM.extab.TEST2
88@ CHECK: SectionData (
89@ CHECK: 0000: 0FB20181 B0B0FF81 |........|
90@ CHECK: )
91@ CHECK:}
92
93@ CHECK:Section {
94@ CHECK: Name: .ARM.exidx.TEST2
Rafael Espindola4f60a382013-05-30 03:05:14 +000095@ CHECK: SectionData (
96@ CHECK: 0000: 00000000 00000000 |........|
97@ CHECK: )
98@ CHECK:}
Logan Chien4ea23b52013-05-10 16:17:24 +000099@-------------------------------------------------------------------------------
100@ We should see a relocation entry to __aeabi_unwind_cpp_pr0, so that the
101@ linker can keep __aeabi_unwind_cpp_pr0.
102@-------------------------------------------------------------------------------
103@ CHECK: Relocations [
104@ CHECK: 0x0 R_ARM_PREL31 .TEST2 0x0
105@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0
106@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.TEST2 0x0
107@ CHECK: ]