blob: c617aa37c497e82675decdbbb5ff7625cb3eabde [file] [log] [blame]
Saleem Abdulrasoold9f08602014-01-21 02:33:10 +00001@ RUN: llvm-mc -triple armv7-linux-eabi -filetype obj -o - %s | llvm-readobj -u \
2@ RUN: | FileCheck %s
3
4 .syntax unified
5
6 .type save,%function
7 .thumb_func
8save:
9 .fnstart
10 .unwind_raw 4, 0xb1, 0x01
11 push {r0}
12 pop {r0}
13 bx lr
14 .fnend
15
16 .type empty,%function
17 .thumb_func
18empty:
19 .fnstart
20 .unwind_raw 0, 0xb0
21 bx lr
22 .fnend
23
24 .type extended,%function
25 .thumb_func
26extended:
27 .fnstart
28 .unwind_raw 12, 0x9b, 0x40, 0x84, 0x80, 0xb0, 0xb0
29 @ .save {fp, lr}
30 stmfd sp!, {fp, lr}
31 @ .setfp fp, sp, #4
32 add fp, sp, #4
33 @ .pad #8
34 sub sp, sp, #8
35 add sp, sp, #8
36 sub fp, sp, #4
37 ldmfd sp!, {fp, lr}
38 bx lr
39 .fnend
40
41 .type refuse,%function
42 .thumb_func
43refuse:
44 .fnstart
45 .unwind_raw 0, 0x80, 0x00
46 bx lr
47 .fnend
48
49 .type stack_adjust,%function
50 .thumb_func
51stack_adjust:
52 .fnstart
53 .setfp fp, sp, #32
54 .unwind_raw 24, 0xc2
55 .fnend
56
57@ CHECK: UnwindInformation {
58@ CHECK: UnwindIndexTable {
59@ CHECK: SectionName: .ARM.exidx
60@ CHECK: Entries [
61@ CHECK: Entry {
62@ CHECK: Model: Compact (Inline)
63@ CHECK: PersonalityIndex: 0
64@ CHECK: Opcodes [
Saleem Abdulrasool9f0a21e2014-01-21 02:33:15 +000065@ CHECK: 0xB1 0x01 ; pop {r0}
66@ CHECK: 0xB0 ; finish
Saleem Abdulrasoold9f08602014-01-21 02:33:10 +000067@ CHECK: ]
68@ CHECK: }
69@ CHECK: Entry {
70@ CHECK: Model: Compact (Inline)
71@ CHECK: PersonalityIndex: 0
72@ CHECK: Opcodes [
Saleem Abdulrasool9f0a21e2014-01-21 02:33:15 +000073@ CHECK: 0xB0 ; finish
74@ CHECK: 0xB0 ; finish
75@ CHECK: 0xB0 ; finish
Saleem Abdulrasoold9f08602014-01-21 02:33:10 +000076@ CHECK: ]
77@ CHECK: }
78@ CHECK: Entry {
79@ CHECK: ExceptionHandlingTable: .ARM.extab
80@ CHECK: Model: Compact
81@ CHECK: PersonalityIndex: 1
82@ CHECK: Opcodes [
Saleem Abdulrasool9f0a21e2014-01-21 02:33:15 +000083@ CHECK: 0x9B ; vsp = r11
84@ CHECK: 0x40 ; vsp = vsp - 4
85@ CHECK: 0x84 0x80 ; pop {fp, lr}
86@ CHECK: 0xB0 ; finish
87@ CHECK: 0xB0 ; finish
Saleem Abdulrasoold9f08602014-01-21 02:33:10 +000088@ CHECK: ]
89@ CHECK: }
90@ CHECK: Entry {
91@ CHECK: Model: Compact (Inline)
92@ CHECK: PersonalityIndex: 0
93@ CHECK: Opcodes [
Saleem Abdulrasool9f0a21e2014-01-21 02:33:15 +000094@ CHECK: 0x80 0x00 ; refuse to unwind
95@ CHECK: 0xB0 ; finish
Saleem Abdulrasoold9f08602014-01-21 02:33:10 +000096@ CHECK: ]
97@ CHECK: }
98@ CHECK: Entry {
99@ CHECK: Model: Compact (Inline)
100@ CHECK: PersonalityIndex: 0
101@ CHECK: Opcodes [
Saleem Abdulrasool9f0a21e2014-01-21 02:33:15 +0000102@ CHECK: 0x9B ; vsp = r11
103@ CHECK: 0x4D ; vsp = vsp - 56
104@ CHECK: 0xC2 ; pop {wR10, wR11, wR12}
Saleem Abdulrasoold9f08602014-01-21 02:33:10 +0000105@ CHECK: ]
106@ CHECK: }
107@ CHECK: ]
108@ CHECK: }
109@ CHECK: }
110