[clang] Propagate -ftime-report to offload lto (#122143)
[llvm-project.git] / llvm / test / tools / llvm-readobj / COFF / arm64-packed-unwind.s
blobd9953ccc3f3d89d94ffc2bae8fad4aea7e305f87
1 ## Check interpretation of the packed unwind info format.
3 // REQUIRES: aarch64-registered-target
4 // RUN: llvm-mc -filetype=obj -triple aarch64-windows %s -o %t.o
5 // RUN: llvm-readobj --unwind %t.o | FileCheck %s
7 // CHECK: UnwindInformation [
8 // CHECK-NEXT: RuntimeFunction {
9 // CHECK-NEXT: Function: func1
10 // CHECK-NEXT: Fragment: No
11 // CHECK-NEXT: FunctionLength: 88
12 // CHECK-NEXT: RegF: 7
13 // CHECK-NEXT: RegI: 10
14 // CHECK-NEXT: HomedParameters: No
15 // CHECK-NEXT: CR: 0
16 // CHECK-NEXT: FrameSize: 160
17 // CHECK-NEXT: Prologue [
18 // CHECK-NEXT: sub sp, sp, #16
19 // CHECK-NEXT: stp d14, d15, [sp, #128]
20 // CHECK-NEXT: stp d12, d13, [sp, #112]
21 // CHECK-NEXT: stp d10, d11, [sp, #96]
22 // CHECK-NEXT: stp d8, d9, [sp, #80]
23 // CHECK-NEXT: stp x27, x28, [sp, #64]
24 // CHECK-NEXT: stp x25, x26, [sp, #48]
25 // CHECK-NEXT: stp x23, x24, [sp, #32]
26 // CHECK-NEXT: stp x21, x22, [sp, #16]
27 // CHECK-NEXT: stp x19, x20, [sp, #-144]!
28 // CHECK-NEXT: end
29 // CHECK-NEXT: ]
30 // CHECK-NEXT: }
31 // CHECK-NEXT: RuntimeFunction {
32 // CHECK-NEXT: Function: func2
33 // CHECK-NEXT: Fragment: No
34 // CHECK-NEXT: FunctionLength: 48
35 // CHECK-NEXT: RegF: 2
36 // CHECK-NEXT: RegI: 3
37 // CHECK-NEXT: HomedParameters: No
38 // CHECK-NEXT: CR: 0
39 // CHECK-NEXT: FrameSize: 48
40 // CHECK-NEXT: Prologue [
41 // CHECK-NEXT: str d10, [sp, #40]
42 // CHECK-NEXT: stp d8, d9, [sp, #24]
43 // CHECK-NEXT: str x21, [sp, #16]
44 // CHECK-NEXT: stp x19, x20, [sp, #-48]!
45 // CHECK-NEXT: end
46 // CHECK-NEXT: ]
47 // CHECK-NEXT: }
48 // CHECK-NEXT: RuntimeFunction {
49 // CHECK-NEXT: Function: func3
50 // CHECK-NEXT: Fragment: No
51 // CHECK-NEXT: FunctionLength: 40
52 // CHECK-NEXT: RegF: 3
53 // CHECK-NEXT: RegI: 1
54 // CHECK-NEXT: HomedParameters: No
55 // CHECK-NEXT: CR: 0
56 // CHECK-NEXT: FrameSize: 48
57 // CHECK-NEXT: Prologue [
58 // CHECK-NEXT: stp d10, d11, [sp, #24]
59 // CHECK-NEXT: stp d8, d9, [sp, #8]
60 // CHECK-NEXT: str x19, [sp, #-48]!
61 // CHECK-NEXT: end
62 // CHECK-NEXT: ]
63 // CHECK-NEXT: }
64 // CHECK-NEXT: RuntimeFunction {
65 // CHECK-NEXT: Function: func4
66 // CHECK-NEXT: Fragment: No
67 // CHECK-NEXT: FunctionLength: 24
68 // CHECK-NEXT: RegF: 1
69 // CHECK-NEXT: RegI: 0
70 // CHECK-NEXT: HomedParameters: No
71 // CHECK-NEXT: CR: 0
72 // CHECK-NEXT: FrameSize: 48
73 // CHECK-NEXT: Prologue [
74 // CHECK-NEXT: sub sp, sp, #32
75 // CHECK-NEXT: stp d8, d9, [sp, #-16]!
76 // CHECK-NEXT: end
77 // CHECK-NEXT: ]
78 // CHECK-NEXT: }
79 // CHECK-NEXT: RuntimeFunction {
80 // CHECK-NEXT: Function: func5
81 // CHECK-NEXT: Fragment: No
82 // CHECK-NEXT: FunctionLength: 56
83 // CHECK-NEXT: RegF: 0
84 // CHECK-NEXT: RegI: 1
85 // CHECK-NEXT: HomedParameters: Yes
86 // CHECK-NEXT: CR: 0
87 // CHECK-NEXT: FrameSize: 112
88 // CHECK-NEXT: Prologue [
89 // CHECK-NEXT: sub sp, sp, #32
90 // CHECK-NEXT: stp x6, x7, [sp, #64]
91 // CHECK-NEXT: stp x4, x5, [sp, #48]
92 // CHECK-NEXT: stp x2, x3, [sp, #32]
93 // CHECK-NEXT: stp x0, x1, [sp, #16]
94 // CHECK-NEXT: str x19, [sp, #-80]!
95 // CHECK-NEXT: end
96 // CHECK-NEXT: ]
97 // CHECK-NEXT: }
98 // CHECK-NEXT: RuntimeFunction {
99 // CHECK-NEXT: Function: func6
100 // CHECK-NEXT: Fragment: No
101 // CHECK-NEXT: FunctionLength: 48
102 // CHECK-NEXT: RegF: 0
103 // CHECK-NEXT: RegI: 0
104 // CHECK-NEXT: HomedParameters: Yes
105 // CHECK-NEXT: CR: 0
106 // CHECK-NEXT: FrameSize: 112
107 // CHECK-NEXT: Prologue [
108 // CHECK-NEXT: sub sp, sp, #48
109 // CHECK-NEXT: stp x6, x7, [sp, #48]
110 // CHECK-NEXT: stp x4, x5, [sp, #32]
111 // CHECK-NEXT: stp x2, x3, [sp, #16]
112 // CHECK-NEXT: stp x0, x1, [sp, #-64]!
113 // CHECK-NEXT: end
114 // CHECK-NEXT: ]
115 // CHECK-NEXT: }
116 // CHECK-NEXT: RuntimeFunction {
117 // CHECK-NEXT: Function: func7
118 // CHECK-NEXT: Fragment: No
119 // CHECK-NEXT: FunctionLength: 24
120 // CHECK-NEXT: RegF: 0
121 // CHECK-NEXT: RegI: 0
122 // CHECK-NEXT: HomedParameters: No
123 // CHECK-NEXT: CR: 1
124 // CHECK-NEXT: FrameSize: 32
125 // CHECK-NEXT: Prologue [
126 // CHECK-NEXT: sub sp, sp, #16
127 // CHECK-NEXT: str lr, [sp, #-16]!
128 // CHECK-NEXT: end
129 // CHECK-NEXT: ]
130 // CHECK-NEXT: }
131 // CHECK-NEXT: RuntimeFunction {
132 // CHECK-NEXT: Function: func8
133 // CHECK-NEXT: Fragment: No
134 // CHECK-NEXT: FunctionLength: 24
135 // CHECK-NEXT: RegF: 0
136 // CHECK-NEXT: RegI: 1
137 // CHECK-NEXT: HomedParameters: No
138 // CHECK-NEXT: CR: 1
139 // CHECK-NEXT: FrameSize: 32
140 // CHECK-NEXT: Prologue [
141 // CHECK-NEXT: sub sp, sp, #16
142 // CHECK-NEXT: INVALID!
143 // CHECK-NEXT: end
144 // CHECK-NEXT: ]
145 // CHECK-NEXT: }
146 // CHECK-NEXT: RuntimeFunction {
147 // CHECK-NEXT: Function: func9
148 // CHECK-NEXT: Fragment: No
149 // CHECK-NEXT: FunctionLength: 32
150 // CHECK-NEXT: RegF: 0
151 // CHECK-NEXT: RegI: 2
152 // CHECK-NEXT: HomedParameters: No
153 // CHECK-NEXT: CR: 1
154 // CHECK-NEXT: FrameSize: 32
155 // CHECK-NEXT: Prologue [
156 // CHECK-NEXT: str lr, [sp, #16]
157 // CHECK-NEXT: stp x19, x20, [sp, #-32]!
158 // CHECK-NEXT: end
159 // CHECK-NEXT: ]
160 // CHECK-NEXT: }
161 // CHECK-NEXT: RuntimeFunction {
162 // CHECK-NEXT: Function: func10
163 // CHECK-NEXT: Fragment: No
164 // CHECK-NEXT: FunctionLength: 32
165 // CHECK-NEXT: RegF: 0
166 // CHECK-NEXT: RegI: 3
167 // CHECK-NEXT: HomedParameters: No
168 // CHECK-NEXT: CR: 1
169 // CHECK-NEXT: FrameSize: 48
170 // CHECK-NEXT: Prologue [
171 // CHECK-NEXT: sub sp, sp, #16
172 // CHECK-NEXT: stp x21, lr, [sp, #16]
173 // CHECK-NEXT: stp x19, x20, [sp, #-32]!
174 // CHECK-NEXT: end
175 // CHECK-NEXT: ]
176 // CHECK-NEXT: }
177 // CHECK-NEXT: RuntimeFunction {
178 // CHECK-NEXT: Function: func11
179 // CHECK-NEXT: Fragment: No
180 // CHECK-NEXT: FunctionLength: 32
181 // CHECK-NEXT: RegF: 0
182 // CHECK-NEXT: RegI: 2
183 // CHECK-NEXT: HomedParameters: No
184 // CHECK-NEXT: CR: 3
185 // CHECK-NEXT: FrameSize: 48
186 // CHECK-NEXT: Prologue [
187 // CHECK-NEXT: mov x29, sp
188 // CHECK-NEXT: stp x29, lr, [sp, #-32]!
189 // CHECK-NEXT: stp x19, x20, [sp, #-16]!
190 // CHECK-NEXT: end
191 // CHECK-NEXT: ]
192 // CHECK-NEXT: }
193 // CHECK-NEXT: RuntimeFunction {
194 // CHECK-NEXT: Function: func12
195 // CHECK-NEXT: Fragment: No
196 // CHECK-NEXT: FunctionLength: 40
197 // CHECK-NEXT: RegF: 0
198 // CHECK-NEXT: RegI: 2
199 // CHECK-NEXT: HomedParameters: No
200 // CHECK-NEXT: CR: 3
201 // CHECK-NEXT: FrameSize: 544
202 // CHECK-NEXT: Prologue [
203 // CHECK-NEXT: mov x29, sp
204 // CHECK-NEXT: stp x29, lr, [sp, #0]
205 // CHECK-NEXT: sub sp, sp, #528
206 // CHECK-NEXT: stp x19, x20, [sp, #-16]!
207 // CHECK-NEXT: end
208 // CHECK-NEXT: ]
209 // CHECK-NEXT: }
210 // CHECK-NEXT: RuntimeFunction {
211 // CHECK-NEXT: Function: func13
212 // CHECK-NEXT: Fragment: No
213 // CHECK-NEXT: FunctionLength: 48
214 // CHECK-NEXT: RegF: 0
215 // CHECK-NEXT: RegI: 2
216 // CHECK-NEXT: HomedParameters: No
217 // CHECK-NEXT: CR: 3
218 // CHECK-NEXT: FrameSize: 4112
219 // CHECK-NEXT: Prologue [
220 // CHECK-NEXT: mov x29, sp
221 // CHECK-NEXT: stp x29, lr, [sp, #0]
222 // CHECK-NEXT: sub sp, sp, #16
223 // CHECK-NEXT: sub sp, sp, #4080
224 // CHECK-NEXT: stp x19, x20, [sp, #-16]!
225 // CHECK-NEXT: end
226 // CHECK-NEXT: ]
227 // CHECK-NEXT: }
228 // CHECK-NEXT: RuntimeFunction {
229 // CHECK-NEXT: Function: func14
230 // CHECK-NEXT: Fragment: No
231 // CHECK-NEXT: FunctionLength: 32
232 // CHECK-NEXT: RegF: 0
233 // CHECK-NEXT: RegI: 2
234 // CHECK-NEXT: HomedParameters: No
235 // CHECK-NEXT: CR: 0
236 // CHECK-NEXT: FrameSize: 4112
237 // CHECK-NEXT: Prologue [
238 // CHECK-NEXT: sub sp, sp, #16
239 // CHECK-NEXT: sub sp, sp, #4080
240 // CHECK-NEXT: stp x19, x20, [sp, #-16]!
241 // CHECK-NEXT: end
242 // CHECK-NEXT: ]
243 // CHECK-NEXT: }
244 // CHECK-NEXT: RuntimeFunction {
245 // CHECK-NEXT: Function: func15
246 // CHECK-NEXT: Fragment: No
247 // CHECK-NEXT: FunctionLength: 24
248 // CHECK-NEXT: RegF: 0
249 // CHECK-NEXT: RegI: 2
250 // CHECK-NEXT: HomedParameters: No
251 // CHECK-NEXT: CR: 0
252 // CHECK-NEXT: FrameSize: 560
253 // CHECK-NEXT: Prologue [
254 // CHECK-NEXT: sub sp, sp, #544
255 // CHECK-NEXT: stp x19, x20, [sp, #-16]!
256 // CHECK-NEXT: end
257 // CHECK-NEXT: ]
258 // CHECK-NEXT: }
259 // CHECK-NEXT: RuntimeFunction {
260 // CHECK-NEXT: Function: func16
261 // CHECK-NEXT: Fragment: No
262 // CHECK-NEXT: FunctionLength: 56
263 // CHECK-NEXT: RegF: 0
264 // CHECK-NEXT: RegI: 0
265 // CHECK-NEXT: HomedParameters: Yes
266 // CHECK-NEXT: CR: 1
267 // CHECK-NEXT: FrameSize: 112
268 // CHECK-NEXT: Prologue [
269 // CHECK-NEXT: sub sp, sp, #32
270 // CHECK-NEXT: stp x6, x7, [sp, #64]
271 // CHECK-NEXT: stp x4, x5, [sp, #48]
272 // CHECK-NEXT: stp x2, x3, [sp, #32]
273 // CHECK-NEXT: stp x0, x1, [sp, #16]
274 // CHECK-NEXT: str lr, [sp, #-80]!
275 // CHECK-NEXT: end
276 // CHECK-NEXT: ]
277 // CHECK-NEXT: }
278 // CHECK-NEXT: ]
280 .text
281 .globl func1
282 func1:
283 func2:
284 func3:
285 func4:
286 func5:
287 func6:
288 func7:
289 func8:
290 func9:
291 func10:
292 func11:
293 func12:
294 func13:
295 func14:
296 func15:
297 func16:
300 .section .pdata,"dr"
301 .long func1@IMGREL
302 .long 0x050ae059 // FunctionLength=22 RegF=7 RegI=10 H=0 CR=0 FrameSize=10
303 .long func2@IMGREL
304 .long 0x01834031 // FunctionLength=12 RegF=2 RegI=3 H=0 CR=0 FrameSize=3
305 .long func3@IMGREL
306 .long 0x01816029 // FunctionLength=10 RegF=3 RegI=1 H=0 CR=0 FrameSize=3
307 .long func4@IMGREL
308 .long 0x01802019 // FunctionLength=6 RegF=1 RegI=0 H=0 CR=0 FrameSize=3
309 .long func5@IMGREL
310 .long 0x03910039 // FunctionLength=14 RegF=0 RegI=1 H=1 CR=0 FrameSize=7
311 .long func6@IMGREL
312 .long 0x03900031 // FunctionLength=12 RegF=0 RegI=0 H=1 CR=0 FrameSize=7
313 .long func7@IMGREL
314 .long 0x01200019 // FunctionLength=6 RegF=0 RegI=0 H=0 CR=1 FrameSize=2
315 .long func8@IMGREL
316 .long 0x01210019 // FunctionLength=6 RegF=0 RegI=1 H=0 CR=1 FrameSize=2
317 .long func9@IMGREL
318 .long 0x01220021 // FunctionLength=8 RegF=0 RegI=2 H=0 CR=1 FrameSize=2
319 .long func10@IMGREL
320 .long 0x01a30021 // FunctionLength=8 RegF=0 RegI=3 H=0 CR=1 FrameSize=3
321 .long func11@IMGREL
322 .long 0x01e20021 // FunctionLength=8 RegF=0 RegI=2 H=0 CR=3 FrameSize=3
323 .long func12@IMGREL
324 .long 0x11620029 // FunctionLength=10 RegF=0 RegI=2 H=0 CR=3 FrameSize=34
325 .long func13@IMGREL
326 .long 0x80e20031 // FunctionLength=12 RegF=0 RegI=2 H=0 CR=3 FrameSize=257
327 .long func14@IMGREL
328 .long 0x80820021 // FunctionLength=8 RegF=0 RegI=2 H=0 CR=0 FrameSize=257
329 .long func15@IMGREL
330 .long 0x11820019 // FunctionLength=6 RegF=0 RegI=2 H=0 CR=0 FrameSize=34
331 .long func16@IMGREL
332 .long 0x03b00039 // FunctionLength=14 RegF=0 RegI=0 H=1 CR=1 FrameSize=7