Taints the non-acquire RMW's store address with the load part
[oota-llvm.git] / test / MC / ARM / eh-directive-section.s
1 @ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
2 @ RUN:   | llvm-readobj -s -sd -sr -t > %t
3 @ RUN: FileCheck %s < %t
4 @ RUN: FileCheck --check-prefix=RELOC %s < %t
5
6 @ Check the combination of .section, .fnstart, and .fnend directives.
7
8 @ For the functions in .text section, the exception handling index (EXIDX)
9 @ should be generated in .ARM.exidx, and the exception handling table (EXTAB)
10 @ should be generated in .ARM.extab.
11
12 @ For the functions in custom section specified by .section directives,
13 @ the EXIDX should be generated in ".ARM.exidx[[SECTION_NAME]]", and the EXTAB
14 @ should be generated in ".ARM.extab[[SECTION_NAME]]".
15
16         .syntax unified
17
18 @-------------------------------------------------------------------------------
19 @ .TEST1 section
20 @-------------------------------------------------------------------------------
21         .section        .TEST1
22         .globl  func1
23         .align  2
24         .type   func1,%function
25         .fnstart
26 func1:
27         bx      lr
28         .personality    __gxx_personality_v0
29         .handlerdata
30         .fnend
31
32
33 @-------------------------------------------------------------------------------
34 @ TEST2 section (without the dot in the beginning)
35 @-------------------------------------------------------------------------------
36         .section        TEST2
37         .globl  func2
38         .align  2
39         .type   func2,%function
40         .fnstart
41 func2:
42         bx      lr
43         .personality    __gxx_personality_v0
44         .handlerdata
45         .fnend
46
47
48 @-------------------------------------------------------------------------------
49 @ Check the .TEST1 section.
50 @-------------------------------------------------------------------------------
51 @ CHECK: Sections [
52 @ CHECK:   Section {
53 @ CHECK:     Index: 3
54 @ CHECK-NEXT:     Name: .TEST1
55 @ CHECK:     SectionData (
56 @ CHECK:       0000: 1EFF2FE1                             |../.|
57 @ CHECK:     )
58 @ CHECK:   }
59
60 @-------------------------------------------------------------------------------
61 @ Check the .ARM.extab.TEST1 section, the EXTAB of .TEST1 section.
62 @-------------------------------------------------------------------------------
63 @ CHECK:   Section {
64 @ CHECK:     Name: .ARM.extab.TEST1
65 @ CHECK:     SectionData (
66 @ CHECK:       0000: 00000000 B0B0B000                    |........|
67 @ CHECK:     )
68 @ CHECK:   }
69
70 @ RELOC:   Section {
71 @ RELOC:     Name: .rel.ARM.extab.TEST1
72 @ RELOC:     Relocations [
73 @ RELOC:       0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
74 @ RELOC:     ]
75 @ RELOC:   }
76
77
78 @-------------------------------------------------------------------------------
79 @ Check the.ARM.exidx.TEST1 section, the EXIDX of .TEST1 section.
80 @-------------------------------------------------------------------------------
81 @ CHECK:   Section {
82 @ CHECK:     Name: .ARM.exidx.TEST1
83
84 @-------------------------------------------------------------------------------
85 @ This section should linked with .TEST1 section.
86 @-------------------------------------------------------------------------------
87 @ CHECK:     Link: 3
88
89 @-------------------------------------------------------------------------------
90 @ The first word should be relocated to the code address in .TEST1 section.
91 @ The second word should be relocated to the EHTAB entry in .ARM.extab.TEST1
92 @ section.
93 @-------------------------------------------------------------------------------
94 @ CHECK:     SectionData (
95 @ CHECK:       0000: 00000000 00000000                    |........|
96 @ CHECK:     )
97 @ CHECK:   }
98
99 @ RELOC:   Section {
100 @ RELOC:     Name: .rel.ARM.exidx.TEST1
101 @ RELOC:     Relocations [
102 @ RELOC:       0x0 R_ARM_PREL31 .TEST1 0x0
103 @ RELOC:       0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
104 @ RELOC:     ]
105 @ RELOC:   }
106
107
108 @-------------------------------------------------------------------------------
109 @ Check the TEST2 section (without the dot in the beginning)
110 @-------------------------------------------------------------------------------
111 @ CHECK:   Section {
112 @ CHECK:     Index: 8
113 @ CHECK-NEXT:     Name: TEST2
114 @ CHECK:     SectionData (
115 @ CHECK:       0000: 1EFF2FE1                             |../.|
116 @ CHECK:     )
117 @ CHECK:   }
118
119 @-------------------------------------------------------------------------------
120 @ Check the .ARM.extabTEST2 section, the EXTAB of TEST2 section.
121 @-------------------------------------------------------------------------------
122 @ CHECK:   Section {
123 @ CHECK:     Name: .ARM.extabTEST2
124 @ CHECK:     SectionData (
125 @ CHECK:       0000: 00000000 B0B0B000                    |........|
126 @ CHECK:     )
127 @ CHECK:   }
128
129 @ RELOC:   Section {
130 @ RELOC:     Name: .rel.ARM.extabTEST2
131 @ RELOC:     Relocations [
132 @ RELOC:       0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
133 @ RELOC:     ]
134 @ RELOC:   }
135
136
137 @-------------------------------------------------------------------------------
138 @ Check the .ARM.exidxTEST2 section, the EXIDX of TEST2 section.
139 @-------------------------------------------------------------------------------
140 @ CHECK:   Section {
141 @ CHECK:     Name: .ARM.exidxTEST2
142
143 @-------------------------------------------------------------------------------
144 @ This section should linked with TEST2 section.
145 @-------------------------------------------------------------------------------
146 @ CHECK:     Link: 8
147
148 @-------------------------------------------------------------------------------
149 @ The first word should be relocated to the code address in TEST2 section.
150 @ The second word should be relocated to the EHTAB entry in .ARM.extabTEST2
151 @ section.
152 @-------------------------------------------------------------------------------
153 @ CHECK:     SectionData (
154 @ CHECK:       0000: 00000000 00000000                    |........|
155 @ CHECK:     )
156 @ CHECK:   }
157
158 @ RELOC:   Section {
159 @ RELOC:     Name: .rel.ARM.exidxTEST2
160 @ RELOC:     Relocations [
161 @ RELOC:       0x0 R_ARM_PREL31 TEST2 0x0
162 @ RELOC:       0x4 R_ARM_PREL31 .ARM.extabTEST2 0x0
163 @ RELOC:     ]
164 @ RELOC:   }
165
166
167
168 @-------------------------------------------------------------------------------
169 @ Check the symbols and the sections they belong to
170 @-------------------------------------------------------------------------------
171 @ CHECK: Symbols [
172 @ CHECK:   Symbol {
173 @ CHECK:     Name: func1
174 @ CHECK:     Section: .TEST1
175 @ CHECK:   }
176 @ CHECK:   Symbol {
177 @ CHECK:     Name: func2
178 @ CHECK:     Section: TEST2
179 @ CHECK:   }
180 @ CHECK: ]