[gn] port afa8aeeeec (RISCVGenExegesis.inc)
[llvm-project.git] / llvm / test / tools / llvm-readobj / COFF / arm-unwind-packed.s
blob385f33c81ea330e8c9269e6e92f4ab491323d8b0
1 // REQUIRES: arm-registered-target
2 // RUN: llvm-mc -filetype=obj -triple thumbv7-windows-gnu %s -o %t.o
3 // RUN: llvm-readobj --unwind %t.o | FileCheck --strict-whitespace %s
5 // CHECK: RuntimeFunction {
6 // CHECK-NEXT: Function: func6
7 // CHECK-NEXT: Fragment: No
8 // CHECK-NEXT: FunctionLength: 8
9 // CHECK-NEXT: ReturnType: bx <reg>
10 // CHECK-NEXT: HomedParameters: No
11 // CHECK-NEXT: Reg: 7
12 // CHECK-NEXT: R: 1
13 // CHECK-NEXT: LinkRegister: No
14 // CHECK-NEXT: Chaining: No
15 // CHECK-NEXT: StackAdjustment: 0
16 // CHECK-NEXT: Prologue [
17 // CHECK-NEXT: ]
18 // CHECK-NEXT: Epilogue [
19 // CHECK-NEXT: bx <reg>
20 // CHECK-NEXT: ]
21 // CHECK-NEXT: }
22 // CHECK-NEXT: RuntimeFunction {
23 // CHECK-NEXT: Function: func7
24 // CHECK-NEXT: Fragment: No
25 // CHECK-NEXT: FunctionLength: 8
26 // CHECK-NEXT: ReturnType: bx <reg>
27 // CHECK-NEXT: HomedParameters: No
28 // CHECK-NEXT: Reg: 0
29 // CHECK-NEXT: R: 0
30 // CHECK-NEXT: LinkRegister: No
31 // CHECK-NEXT: Chaining: No
32 // CHECK-NEXT: StackAdjustment: 0
33 // CHECK-NEXT: Prologue [
34 // CHECK-NEXT: push {r4}
35 // CHECK-NEXT: ]
36 // CHECK-NEXT: Epilogue [
37 // CHECK-NEXT: pop {r4}
38 // CHECK-NEXT: bx <reg>
39 // CHECK-NEXT: ]
40 // CHECK-NEXT: }
41 // CHECK-NEXT: RuntimeFunction {
42 // CHECK-NEXT: Function: func8
43 // CHECK-NEXT: Fragment: No
44 // CHECK-NEXT: FunctionLength: 10
45 // CHECK-NEXT: ReturnType: bx <reg>
46 // CHECK-NEXT: HomedParameters: No
47 // CHECK-NEXT: Reg: 0
48 // CHECK-NEXT: R: 0
49 // CHECK-NEXT: LinkRegister: Yes
50 // CHECK-NEXT: Chaining: No
51 // CHECK-NEXT: StackAdjustment: 0
52 // CHECK-NEXT: Prologue [
53 // CHECK-NEXT: push {r4, lr}
54 // CHECK-NEXT: ]
55 // CHECK-NEXT: Epilogue [
56 // CHECK-NEXT: pop {r4, lr}
57 // CHECK-NEXT: bx <reg>
58 // CHECK-NEXT: ]
59 // CHECK-NEXT: }
60 // CHECK-NEXT: RuntimeFunction {
61 // CHECK-NEXT: Function: func9
62 // CHECK-NEXT: Fragment: No
63 // CHECK-NEXT: FunctionLength: 24
64 // CHECK-NEXT: ReturnType: b.w <target>
65 // CHECK-NEXT: HomedParameters: No
66 // CHECK-NEXT: Reg: 0
67 // CHECK-NEXT: R: 1
68 // CHECK-NEXT: LinkRegister: Yes
69 // CHECK-NEXT: Chaining: No
70 // CHECK-NEXT: StackAdjustment: 32
71 // CHECK-NEXT: Prologue [
72 // CHECK-NEXT: sub sp, sp, #32
73 // CHECK-NEXT: vpush {d8}
74 // CHECK-NEXT: push {lr}
75 // CHECK-NEXT: ]
76 // CHECK-NEXT: Epilogue [
77 // CHECK-NEXT: add sp, sp, #32
78 // CHECK-NEXT: vpop {d8}
79 // CHECK-NEXT: pop {lr}
80 // CHECK-NEXT: b.w <target>
81 // CHECK-NEXT: ]
82 // CHECK-NEXT: }
83 // CHECK-NEXT: RuntimeFunction {
84 // CHECK-NEXT: Function: func10
85 // CHECK-NEXT: Fragment: No
86 // CHECK-NEXT: FunctionLength: 26
87 // CHECK-NEXT: ReturnType: bx <reg>
88 // CHECK-NEXT: HomedParameters: No
89 // CHECK-NEXT: Reg: 1
90 // CHECK-NEXT: R: 1
91 // CHECK-NEXT: LinkRegister: Yes
92 // CHECK-NEXT: Chaining: Yes
93 // CHECK-NEXT: StackAdjustment: 16
94 // CHECK-NEXT: Prologue [
95 // CHECK-NEXT: sub sp, sp, #16
96 // CHECK-NEXT: vpush {d8-d9}
97 // CHECK-NEXT: mov r11, sp
98 // CHECK-NEXT: push {r11, lr}
99 // CHECK-NEXT: ]
100 // CHECK-NEXT: Epilogue [
101 // CHECK-NEXT: add sp, sp, #16
102 // CHECK-NEXT: vpop {d8-d9}
103 // CHECK-NEXT: pop {r11, lr}
104 // CHECK-NEXT: bx <reg>
105 // CHECK-NEXT: ]
106 // CHECK-NEXT: }
107 // CHECK-NEXT: RuntimeFunction {
108 // CHECK-NEXT: Function: func11
109 // CHECK-NEXT: Fragment: No
110 // CHECK-NEXT: FunctionLength: 24
111 // CHECK-NEXT: ReturnType: pop {pc}
112 // CHECK-NEXT: HomedParameters: No
113 // CHECK-NEXT: Reg: 1
114 // CHECK-NEXT: R: 1
115 // CHECK-NEXT: LinkRegister: Yes
116 // CHECK-NEXT: Chaining: Yes
117 // CHECK-NEXT: StackAdjustment: 16
118 // CHECK-NEXT: Prologue [
119 // CHECK-NEXT: sub sp, sp, #16
120 // CHECK-NEXT: vpush {d8-d9}
121 // CHECK-NEXT: mov r11, sp
122 // CHECK-NEXT: push {r11, lr}
123 // CHECK-NEXT: ]
124 // CHECK-NEXT: Epilogue [
125 // CHECK-NEXT: add sp, sp, #16
126 // CHECK-NEXT: vpop {d8-d9}
127 // CHECK-NEXT: pop {r11, pc}
128 // CHECK-NEXT: ]
129 // CHECK-NEXT: }
130 // CHECK-NEXT: RuntimeFunction {
131 // CHECK-NEXT: Function: func12
132 // CHECK-NEXT: Fragment: No
133 // CHECK-NEXT: FunctionLength: 18
134 // CHECK-NEXT: ReturnType: b.w <target>
135 // CHECK-NEXT: HomedParameters: No
136 // CHECK-NEXT: Reg: 6
137 // CHECK-NEXT: R: 1
138 // CHECK-NEXT: LinkRegister: No
139 // CHECK-NEXT: Chaining: No
140 // CHECK-NEXT: StackAdjustment: 16
141 // CHECK-NEXT: Prologue [
142 // CHECK-NEXT: sub sp, sp, #16
143 // CHECK-NEXT: vpush {d8-d14}
144 // CHECK-NEXT: ]
145 // CHECK-NEXT: Epilogue [
146 // CHECK-NEXT: add sp, sp, #16
147 // CHECK-NEXT: vpop {d8-d14}
148 // CHECK-NEXT: b.w <target>
149 // CHECK-NEXT: ]
150 // CHECK-NEXT: }
151 // CHECK-NEXT: RuntimeFunction {
152 // CHECK-NEXT: Function: func13
153 // CHECK-NEXT: Fragment: No
154 // CHECK-NEXT: FunctionLength: 18
155 // CHECK-NEXT: ReturnType: pop {pc}
156 // CHECK-NEXT: HomedParameters: No
157 // CHECK-NEXT: Reg: 6
158 // CHECK-NEXT: R: 0
159 // CHECK-NEXT: LinkRegister: Yes
160 // CHECK-NEXT: Chaining: Yes
161 // CHECK-NEXT: StackAdjustment: 20
162 // CHECK-NEXT: Prologue [
163 // CHECK-NEXT: sub sp, sp, #20
164 // CHECK-NEXT: add.w r11, sp, #28
165 // CHECK-NEXT: push {r4-r11, lr}
166 // CHECK-NEXT: ]
167 // CHECK-NEXT: Epilogue [
168 // CHECK-NEXT: add sp, sp, #20
169 // CHECK-NEXT: pop {r4-r11, pc}
170 // CHECK-NEXT: ]
171 // CHECK-NEXT: }
172 // CHECK-NEXT: RuntimeFunction {
173 // CHECK-NEXT: Function: func14
174 // CHECK-NEXT: Fragment: No
175 // CHECK-NEXT: FunctionLength: 14
176 // CHECK-NEXT: ReturnType: pop {pc}
177 // CHECK-NEXT: HomedParameters: No
178 // CHECK-NEXT: Reg: 7
179 // CHECK-NEXT: R: 0
180 // CHECK-NEXT: LinkRegister: Yes
181 // CHECK-NEXT: Chaining: No
182 // CHECK-NEXT: StackAdjustment: 20
183 // CHECK-NEXT: Prologue [
184 // CHECK-NEXT: sub sp, sp, #20
185 // CHECK-NEXT: push {r4-r11, lr}
186 // CHECK-NEXT: ]
187 // CHECK-NEXT: Epilogue [
188 // CHECK-NEXT: add sp, sp, #20
189 // CHECK-NEXT: pop {r4-r11, pc}
190 // CHECK-NEXT: ]
191 // CHECK-NEXT: }
192 // CHECK-NEXT: RuntimeFunction {
193 // CHECK-NEXT: Function: func15
194 // CHECK-NEXT: Fragment: No
195 // CHECK-NEXT: FunctionLength: 20
196 // CHECK-NEXT: ReturnType: pop {pc}
197 // CHECK-NEXT: HomedParameters: Yes
198 // CHECK-NEXT: Reg: 0
199 // CHECK-NEXT: R: 0
200 // CHECK-NEXT: LinkRegister: Yes
201 // CHECK-NEXT: Chaining: No
202 // CHECK-NEXT: StackAdjustment: 512
203 // CHECK-NEXT: Prologue [
204 // CHECK-NEXT: sub sp, sp, #512
205 // CHECK-NEXT: push {r4, lr}
206 // CHECK-NEXT: push {r0-r3}
207 // CHECK-NEXT: ]
208 // CHECK-NEXT: Epilogue [
209 // CHECK-NEXT: add sp, sp, #512
210 // CHECK-NEXT: pop {r4}
211 // CHECK-NEXT: ldr pc, [sp], #20
212 // CHECK-NEXT: ]
213 // CHECK-NEXT: }
214 // CHECK-NEXT: RuntimeFunction {
215 // CHECK-NEXT: Function: func16
216 // CHECK-NEXT: Fragment: No
217 // CHECK-NEXT: FunctionLength: 20
218 // CHECK-NEXT: ReturnType: b.w <target>
219 // CHECK-NEXT: HomedParameters: Yes
220 // CHECK-NEXT: Reg: 7
221 // CHECK-NEXT: R: 1
222 // CHECK-NEXT: LinkRegister: Yes
223 // CHECK-NEXT: Chaining: Yes
224 // CHECK-NEXT: StackAdjustment: 0
225 // CHECK-NEXT: Prologue [
226 // CHECK-NEXT: mov r11, sp
227 // CHECK-NEXT: push {r11, lr}
228 // CHECK-NEXT: push {r0-r3}
229 // CHECK-NEXT: ]
230 // CHECK-NEXT: Epilogue [
231 // CHECK-NEXT: pop {r11, lr}
232 // CHECK-NEXT: add sp, sp, #16
233 // CHECK-NEXT: b.w <target>
234 // CHECK-NEXT: ]
235 // CHECK-NEXT: }
236 // CHECK-NEXT: RuntimeFunction {
237 // CHECK-NEXT: Function: func17
238 // CHECK-NEXT: Fragment: No
239 // CHECK-NEXT: FunctionLength: 20
240 // CHECK-NEXT: ReturnType: bx <reg>
241 // CHECK-NEXT: HomedParameters: Yes
242 // CHECK-NEXT: Reg: 0
243 // CHECK-NEXT: R: 0
244 // CHECK-NEXT: LinkRegister: No
245 // CHECK-NEXT: Chaining: No
246 // CHECK-NEXT: StackAdjustment: 512
247 // CHECK-NEXT: Prologue [
248 // CHECK-NEXT: sub sp, sp, #512
249 // CHECK-NEXT: push {r4}
250 // CHECK-NEXT: push {r0-r3}
251 // CHECK-NEXT: ]
252 // CHECK-NEXT: Epilogue [
253 // CHECK-NEXT: add sp, sp, #512
254 // CHECK-NEXT: pop {r4}
255 // CHECK-NEXT: add sp, sp, #16
256 // CHECK-NEXT: bx <reg>
257 // CHECK-NEXT: ]
258 // CHECK-NEXT: }
259 // CHECK-NEXT: RuntimeFunction {
260 // CHECK-NEXT: Function: func18
261 // CHECK-NEXT: Fragment: No
262 // CHECK-NEXT: FunctionLength: 6
263 // CHECK-NEXT: ReturnType: pop {pc}
264 // CHECK-NEXT: HomedParameters: No
265 // CHECK-NEXT: Reg: 7
266 // CHECK-NEXT: R: 1
267 // CHECK-NEXT: LinkRegister: Yes
268 // CHECK-NEXT: Chaining: No
269 // CHECK-NEXT: StackAdjustment: 4
270 // CHECK-NEXT: Prologue [
271 // CHECK-NEXT: push {r3, lr}
272 // CHECK-NEXT: ]
273 // CHECK-NEXT: Epilogue [
274 // CHECK-NEXT: pop {r3, pc}
275 // CHECK-NEXT: ]
276 // CHECK-NEXT: }
277 // CHECK-NEXT: RuntimeFunction {
278 // CHECK-NEXT: Function: func19
279 // CHECK-NEXT: Fragment: No
280 // CHECK-NEXT: FunctionLength: 12
281 // CHECK-NEXT: ReturnType: bx <reg>
282 // CHECK-NEXT: HomedParameters: Yes
283 // CHECK-NEXT: Reg: 0
284 // CHECK-NEXT: R: 0
285 // CHECK-NEXT: LinkRegister: No
286 // CHECK-NEXT: Chaining: No
287 // CHECK-NEXT: StackAdjustment: 16
288 // CHECK-NEXT: Prologue [
289 // CHECK-NEXT: push {r0-r4}
290 // CHECK-NEXT: push {r0-r3}
291 // CHECK-NEXT: ]
292 // CHECK-NEXT: Epilogue [
293 // CHECK-NEXT: pop {r0-r4}
294 // CHECK-NEXT: add sp, sp, #16
295 // CHECK-NEXT: bx <reg>
296 // CHECK-NEXT: ]
297 // CHECK-NEXT: }
298 // CHECK-NEXT: RuntimeFunction {
299 // CHECK-NEXT: Function: func20
300 // CHECK-NEXT: Fragment: No
301 // CHECK-NEXT: FunctionLength: 14
302 // CHECK-NEXT: ReturnType: bx <reg>
303 // CHECK-NEXT: HomedParameters: Yes
304 // CHECK-NEXT: Reg: 0
305 // CHECK-NEXT: R: 0
306 // CHECK-NEXT: LinkRegister: No
307 // CHECK-NEXT: Chaining: No
308 // CHECK-NEXT: StackAdjustment: 16
309 // CHECK-NEXT: Prologue [
310 // CHECK-NEXT: push {r0-r4}
311 // CHECK-NEXT: push {r0-r3}
312 // CHECK-NEXT: ]
313 // CHECK-NEXT: Epilogue [
314 // CHECK-NEXT: add sp, sp, #16
315 // CHECK-NEXT: pop {r4}
316 // CHECK-NEXT: add sp, sp, #16
317 // CHECK-NEXT: bx <reg>
318 // CHECK-NEXT: ]
319 // CHECK-NEXT: }
320 // CHECK-NEXT: RuntimeFunction {
321 // CHECK-NEXT: Function: func21
322 // CHECK-NEXT: Fragment: No
323 // CHECK-NEXT: FunctionLength: 14
324 // CHECK-NEXT: ReturnType: bx <reg>
325 // CHECK-NEXT: HomedParameters: Yes
326 // CHECK-NEXT: Reg: 0
327 // CHECK-NEXT: R: 0
328 // CHECK-NEXT: LinkRegister: No
329 // CHECK-NEXT: Chaining: No
330 // CHECK-NEXT: StackAdjustment: 16
331 // CHECK-NEXT: Prologue [
332 // CHECK-NEXT: sub sp, sp, #16
333 // CHECK-NEXT: push {r4}
334 // CHECK-NEXT: push {r0-r3}
335 // CHECK-NEXT: ]
336 // CHECK-NEXT: Epilogue [
337 // CHECK-NEXT: pop {r0-r4}
338 // CHECK-NEXT: add sp, sp, #16
339 // CHECK-NEXT: bx <reg>
340 // CHECK-NEXT: ]
341 // CHECK-NEXT: }
342 // CHECK-NEXT: RuntimeFunction {
343 // CHECK-NEXT: Function: func22
344 // CHECK-NEXT: Fragment: Yes
345 // CHECK-NEXT: FunctionLength: 14
346 // CHECK-NEXT: ReturnType: pop {pc}
347 // CHECK-NEXT: HomedParameters: Yes
348 // CHECK-NEXT: Reg: 0
349 // CHECK-NEXT: R: 0
350 // CHECK-NEXT: LinkRegister: Yes
351 // CHECK-NEXT: Chaining: No
352 // CHECK-NEXT: StackAdjustment: 512
353 // CHECK-NEXT: Prologue [
354 // CHECK-NEXT: sub sp, sp, #512
355 // CHECK-NEXT: push {r4, lr}
356 // CHECK-NEXT: push {r0-r3}
357 // CHECK-NEXT: ]
358 // CHECK-NEXT: Epilogue [
359 // CHECK-NEXT: add sp, sp, #512
360 // CHECK-NEXT: pop {r4}
361 // CHECK-NEXT: ldr pc, [sp], #20
362 // CHECK-NEXT: ]
363 // CHECK-NEXT: }
364 // CHECK-NEXT: RuntimeFunction {
365 // CHECK-NEXT: Function: func23
366 // CHECK-NEXT: Fragment: No
367 // CHECK-NEXT: FunctionLength: 12
368 // CHECK-NEXT: ReturnType: (no epilogue)
369 // CHECK-NEXT: HomedParameters: Yes
370 // CHECK-NEXT: Reg: 0
371 // CHECK-NEXT: R: 0
372 // CHECK-NEXT: LinkRegister: Yes
373 // CHECK-NEXT: Chaining: No
374 // CHECK-NEXT: StackAdjustment: 512
375 // CHECK-NEXT: Prologue [
376 // CHECK-NEXT: sub sp, sp, #512
377 // CHECK-NEXT: push {r4, lr}
378 // CHECK-NEXT: push {r0-r3}
379 // CHECK-NEXT: ]
380 // CHECK-NEXT: }
381 // CHECK-NEXT: RuntimeFunction {
382 // CHECK-NEXT: Function: func24
383 // CHECK-NEXT: Fragment: No
384 // CHECK-NEXT: FunctionLength: 16
385 // CHECK-NEXT: ReturnType: pop {pc}
386 // CHECK-NEXT: HomedParameters: No
387 // CHECK-NEXT: Reg: 3
388 // CHECK-NEXT: R: 0
389 // CHECK-NEXT: LinkRegister: Yes
390 // CHECK-NEXT: Chaining: Yes
391 // CHECK-NEXT: StackAdjustment: 8
392 // CHECK-NEXT: Prologue [
393 // CHECK-NEXT: add.w r11, sp, #24
394 // CHECK-NEXT: push {r2-r7, r11, lr}
395 // CHECK-NEXT: ]
396 // CHECK-NEXT: Epilogue [
397 // CHECK-NEXT: add sp, sp, #8
398 // CHECK-NEXT: pop {r4-r7, r11, pc}
399 // CHECK-NEXT: ]
400 // CHECK-NEXT: }
401 // CHECK-NEXT: RuntimeFunction {
402 // CHECK-NEXT: Function: func25
403 // CHECK-NEXT: Fragment: No
404 // CHECK-NEXT: FunctionLength: 16
405 // CHECK-NEXT: ReturnType: pop {pc}
406 // CHECK-NEXT: HomedParameters: No
407 // CHECK-NEXT: Reg: 3
408 // CHECK-NEXT: R: 0
409 // CHECK-NEXT: LinkRegister: Yes
410 // CHECK-NEXT: Chaining: Yes
411 // CHECK-NEXT: StackAdjustment: 8
412 // CHECK-NEXT: Prologue [
413 // CHECK-NEXT: sub sp, sp, #8
414 // CHECK-NEXT: add.w r11, sp, #16
415 // CHECK-NEXT: push {r4-r7, r11, lr}
416 // CHECK-NEXT: ]
417 // CHECK-NEXT: Epilogue [
418 // CHECK-NEXT: pop {r2-r7, r11, pc}
419 // CHECK-NEXT: ]
420 // CHECK-NEXT: }
421 // CHECK-NEXT: RuntimeFunction {
422 // CHECK-NEXT: Function: func26
423 // CHECK-NEXT: Fragment: No
424 // CHECK-NEXT: FunctionLength: 8
425 // CHECK-NEXT: ReturnType: bx <reg>
426 // CHECK-NEXT: HomedParameters: No
427 // CHECK-NEXT: Reg: 7
428 // CHECK-NEXT: R: 1
429 // CHECK-NEXT: LinkRegister: No
430 // CHECK-NEXT: Chaining: No
431 // CHECK-NEXT: StackAdjustment: 12
432 // CHECK-NEXT: Prologue [
433 // CHECK-NEXT: push {r1-r3}
434 // CHECK-NEXT: ]
435 // CHECK-NEXT: Epilogue [
436 // CHECK-NEXT: add sp, sp, #12
437 // CHECK-NEXT: bx <reg>
438 // CHECK-NEXT: ]
439 // CHECK-NEXT: }
440 // CHECK-NEXT: RuntimeFunction {
441 // CHECK-NEXT: Function: func27
442 // CHECK-NEXT: Fragment: No
443 // CHECK-NEXT: FunctionLength: 8
444 // CHECK-NEXT: ReturnType: bx <reg>
445 // CHECK-NEXT: HomedParameters: No
446 // CHECK-NEXT: Reg: 7
447 // CHECK-NEXT: R: 1
448 // CHECK-NEXT: LinkRegister: No
449 // CHECK-NEXT: Chaining: No
450 // CHECK-NEXT: StackAdjustment: 12
451 // CHECK-NEXT: Prologue [
452 // CHECK-NEXT: sub sp, sp, #12
453 // CHECK-NEXT: ]
454 // CHECK-NEXT: Epilogue [
455 // CHECK-NEXT: pop {r1-r3}
456 // CHECK-NEXT: bx <reg>
457 // CHECK-NEXT: ]
458 // CHECK-NEXT: }
459 // CHECK-NEXT: RuntimeFunction {
460 // CHECK-NEXT: Function: func28
461 // CHECK-NEXT: Fragment: No
462 // CHECK-NEXT: FunctionLength: 8
463 // CHECK-NEXT: ReturnType: bx <reg>
464 // CHECK-NEXT: HomedParameters: No
465 // CHECK-NEXT: Reg: 0
466 // CHECK-NEXT: R: 1
467 // CHECK-NEXT: LinkRegister: No
468 // CHECK-NEXT: Chaining: No
469 // CHECK-NEXT: StackAdjustment: 4
470 // CHECK-NEXT: Prologue [
471 // CHECK-NEXT: vpush {d8}
472 // CHECK-NEXT: push {r3}
473 // CHECK-NEXT: ]
474 // CHECK-NEXT: Epilogue [
475 // CHECK-NEXT: vpop {d8}
476 // CHECK-NEXT: pop {r3}
477 // CHECK-NEXT: bx <reg>
478 // CHECK-NEXT: ]
479 // CHECK-NEXT: }
480 // CHECK-NEXT: RuntimeFunction {
481 // CHECK-NEXT: Function: func29
482 // CHECK-NEXT: Fragment: Yes
483 // CHECK-NEXT: FunctionLength: 6
484 // CHECK-NEXT: ReturnType: pop {pc}
485 // CHECK-NEXT: HomedParameters: No
486 // CHECK-NEXT: Reg: 2
487 // CHECK-NEXT: R: 0
488 // CHECK-NEXT: LinkRegister: Yes
489 // CHECK-NEXT: Chaining: No
490 // CHECK-NEXT: StackAdjustment: 16
491 // CHECK-NEXT: Prologue [
492 // CHECK-NEXT: sub sp, sp, #16
493 // CHECK-NEXT: push {r4-r6, lr}
494 // CHECK-NEXT: ]
495 // CHECK-NEXT: Epilogue [
496 // CHECK-NEXT: add sp, sp, #16
497 // CHECK-NEXT: pop {r4-r6, pc}
498 // CHECK-NEXT: ]
499 // CHECK-NEXT: }
501 .thumb
502 .syntax unified
504 func6:
508 bx lr
510 func7:
511 push {r4}
513 pop {r4}
514 bx lr
516 func8:
517 push {r4,lr}
519 pop {r4,lr}
520 bx lr
522 func9:
523 push {lr}
524 vpush {d8}
525 sub sp, sp, #32
527 add sp, sp, #32
528 vpop {d8}
529 pop {lr}
530 b tailcall
532 func10:
533 push {r11,lr}
534 mov r11, sp
535 vpush {d8-d9}
536 sub sp, sp, #16
538 add sp, sp, #16
539 vpop {d8-d9}
540 pop {r11,lr}
541 bx lr
543 func11:
544 push {r11,lr}
545 mov r11, sp
546 vpush {d8-d9}
547 sub sp, sp, #16
549 add sp, sp, #16
550 vpop {d8-d9}
551 pop {r11,pc}
553 func12:
554 vpush {d8-d14}
555 sub sp, sp, #16
557 add sp, sp, #16
558 vpop {d8-d14}
559 b tailcall
561 func13:
562 push {r4-r11,lr}
563 add r11, sp, #0x1c
564 sub sp, sp, #20
566 add sp, sp, #20
567 pop {r4-r11,pc}
569 func14:
570 push {r4-r11,lr}
571 sub sp, sp, #20
573 add sp, sp, #20
574 pop {r4-r11,pc}
576 func15:
577 push {r0-r3}
578 push {r4,lr}
579 sub sp, sp, #512
581 add sp, sp, #512
582 pop {r4}
583 ldr pc, [sp], #20
585 func16:
586 push {r0-r3}
587 push {r11,lr}
588 mov r11, sp
590 pop {r11, lr}
591 add sp, sp, #16
592 b tailcall
594 func17:
595 push {r0-r3}
596 push {r4}
597 sub sp, sp, #512
599 add sp, sp, #512
600 pop {r4}
601 add sp, sp, #16
602 bx lr
604 func18:
605 push {r3,lr}
607 pop {r3,pc}
609 func19:
610 push {r0-r3}
611 push {r0-r4}
613 pop {r0-r4}
614 add sp, sp, #16
615 bx lr
617 func20:
618 push {r0-r3}
619 push {r0-r4}
621 add sp, sp, #16
622 pop {r4}
623 add sp, sp, #16
624 bx lr
626 func21:
627 push {r0-r3}
628 push {r4}
629 sub sp, sp, #16
631 pop {r0-r4}
632 add sp, sp, #16
633 bx lr
635 func22:
638 add sp, sp, #512
639 pop {r4}
640 ldr pc, [sp], #20
642 func23:
643 push {r0-r3}
644 push {r4,lr}
645 sub sp, sp, #512
649 func24:
650 push {r2-r7,r11,lr}
651 add r11, sp, #24
653 add sp, sp, #8
654 pop {r4-r7,r11,pc}
656 func25:
657 push {r4-r7,r11,lr}
658 add r11, sp, #16
659 sub sp, sp, #8
661 pop {r2-r7,r11,pc}
663 func26:
664 push {r1-r3}
666 add sp, sp, #12
667 bx lr
669 func27:
670 sub sp, sp, #12
672 pop {r1-r3}
673 bx lr
675 func28:
676 push {r3}
677 vpush {d8}
679 vpop {d8}
680 pop {r3}
681 bx lr
683 func29:
685 pop {r4-r11,pc}
687 .section .pdata,"dr"
688 .rva func6
689 .long 0x000f2011
690 .rva func7
691 .long 0x00002011
692 .rva func8
693 .long 0x00102015
694 .rva func9
695 .long 0x02184031
696 .rva func10
697 .long 0x01392035
698 .rva func11
699 .long 0x01390031
700 .rva func12
701 .long 0x010e4025
702 .rva func13
703 .long 0x01760025
704 .rva func14
705 .long 0x0157001d
706 .rva func15
707 .long 0x20108029
708 .rva func16
709 .long 0x003fc029
710 .rva func17
711 .long 0x2000a029
712 .rva func18
713 .long 0xff1f000d
714 .rva func19
715 .long 0xffc0a019
716 .rva func20
717 .long 0xfdc0a01d
718 .rva func21
719 .long 0xfec0a01d
720 .rva func22
721 .long 0x2010801e
722 .rva func23
723 .long 0x2010e019
724 .rva func24
725 .long 0xfd730021
726 .rva func25
727 .long 0xfe730021
728 .rva func26
729 .long 0xfd8f2011
730 .rva func27
731 .long 0xfe8f2011
732 .rva func28
733 .long 0xff082011
734 .rva func29
735 .long 0x0112000e