xref: /aosp_15_r20/external/llvm/test/tools/llvm-readobj/ARM/unwind.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc -triple armv7-linux-eabi -filetype obj -o - %s \
2*9880d681SAndroid Build Coastguard Worker@ RUN:    | llvm-readobj -u | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker	.syntax unified
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker	.cpu cortex-a8
7*9880d681SAndroid Build Coastguard Worker	.fpu neon
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker	.section .personality
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Worker	.type __personality,%function
12*9880d681SAndroid Build Coastguard Worker__personality:
13*9880d681SAndroid Build Coastguard Worker	.fnstart
14*9880d681SAndroid Build Coastguard Worker	bkpt
15*9880d681SAndroid Build Coastguard Worker	.fnend
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker	.section .personality0
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Worker	.type personality0,%function
21*9880d681SAndroid Build Coastguard Workerpersonality0:
22*9880d681SAndroid Build Coastguard Worker	.fnstart
23*9880d681SAndroid Build Coastguard Worker	bx lr
24*9880d681SAndroid Build Coastguard Worker	.fnend
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker	.section .personality1
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker	.type personality1,%function
30*9880d681SAndroid Build Coastguard Workerpersonality1:
31*9880d681SAndroid Build Coastguard Worker	.fnstart
32*9880d681SAndroid Build Coastguard Worker	.pad #0x100
33*9880d681SAndroid Build Coastguard Worker	sub sp, sp, #0x100
34*9880d681SAndroid Build Coastguard Worker	.save {r0-r11}
35*9880d681SAndroid Build Coastguard Worker	push {r0-r11}
36*9880d681SAndroid Build Coastguard Worker	pop {r0-r11}
37*9880d681SAndroid Build Coastguard Worker	add sp, sp, #0x100
38*9880d681SAndroid Build Coastguard Worker	bx lr
39*9880d681SAndroid Build Coastguard Worker	.fnend
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Worker	.section .custom_personality
43*9880d681SAndroid Build Coastguard Worker
44*9880d681SAndroid Build Coastguard Worker	.type custom_personality,%function
45*9880d681SAndroid Build Coastguard Workercustom_personality:
46*9880d681SAndroid Build Coastguard Worker	.fnstart
47*9880d681SAndroid Build Coastguard Worker	.personality __personality
48*9880d681SAndroid Build Coastguard Worker	bx lr
49*9880d681SAndroid Build Coastguard Worker	.fnend
50*9880d681SAndroid Build Coastguard Worker
51*9880d681SAndroid Build Coastguard Worker
52*9880d681SAndroid Build Coastguard Worker	.section .opcodes
53*9880d681SAndroid Build Coastguard Worker
54*9880d681SAndroid Build Coastguard Worker	.type opcodes,%function
55*9880d681SAndroid Build Coastguard Workeropcodes:
56*9880d681SAndroid Build Coastguard Worker	.fnstart
57*9880d681SAndroid Build Coastguard Worker	.vsave {d8-d12}
58*9880d681SAndroid Build Coastguard Worker	vpush {d8-d12}
59*9880d681SAndroid Build Coastguard Worker	vpop {d8-d12}
60*9880d681SAndroid Build Coastguard Worker	bx lr
61*9880d681SAndroid Build Coastguard Worker	.fnend
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Worker	.section .multiple
65*9880d681SAndroid Build Coastguard Worker
66*9880d681SAndroid Build Coastguard Worker	.type function0,%function
67*9880d681SAndroid Build Coastguard Workerfunction0:
68*9880d681SAndroid Build Coastguard Worker	.fnstart
69*9880d681SAndroid Build Coastguard Worker	bx lr
70*9880d681SAndroid Build Coastguard Worker	.fnend
71*9880d681SAndroid Build Coastguard Worker
72*9880d681SAndroid Build Coastguard Worker	.type function1,%function
73*9880d681SAndroid Build Coastguard Workerfunction1:
74*9880d681SAndroid Build Coastguard Worker	.fnstart
75*9880d681SAndroid Build Coastguard Worker	.personality __personality
76*9880d681SAndroid Build Coastguard Worker	bx lr
77*9880d681SAndroid Build Coastguard Worker	.fnend
78*9880d681SAndroid Build Coastguard Worker
79*9880d681SAndroid Build Coastguard Worker	.type function2,%function
80*9880d681SAndroid Build Coastguard Workerfunction2:
81*9880d681SAndroid Build Coastguard Worker	.fnstart
82*9880d681SAndroid Build Coastguard Worker	bx lr
83*9880d681SAndroid Build Coastguard Worker	.fnend
84*9880d681SAndroid Build Coastguard Worker
85*9880d681SAndroid Build Coastguard Worker	.section .raw
86*9880d681SAndroid Build Coastguard Worker
87*9880d681SAndroid Build Coastguard Worker	.type raw,%function
88*9880d681SAndroid Build Coastguard Worker	.thumb_func
89*9880d681SAndroid Build Coastguard Workerraw:
90*9880d681SAndroid Build Coastguard Worker	.fnstart
91*9880d681SAndroid Build Coastguard Worker	.unwind_raw 12, 0x02
92*9880d681SAndroid Build Coastguard Worker	.unwind_raw -12, 0x42
93*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0x80, 0x00
94*9880d681SAndroid Build Coastguard Worker	.unwind_raw 4, 0x81, 0x00
95*9880d681SAndroid Build Coastguard Worker	.unwind_raw 4, 0x80, 0x01
96*9880d681SAndroid Build Coastguard Worker	.unwind_raw 8, 0x80, 0xc0
97*9880d681SAndroid Build Coastguard Worker	.unwind_raw 12, 0x84, 0xc0
98*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0x91
99*9880d681SAndroid Build Coastguard Worker	.unwind_raw 8, 0xa1
100*9880d681SAndroid Build Coastguard Worker	.unwind_raw 12, 0xa9
101*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0xb0
102*9880d681SAndroid Build Coastguard Worker	.unwind_raw 4, 0xb1, 0x01
103*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0xa04, 0xb2, 0x80, 0x04
104*9880d681SAndroid Build Coastguard Worker	.unwind_raw 24, 0xb3, 0x12
105*9880d681SAndroid Build Coastguard Worker	.unwind_raw 24, 0xba
106*9880d681SAndroid Build Coastguard Worker	.unwind_raw 24, 0xc2
107*9880d681SAndroid Build Coastguard Worker	.unwind_raw 24, 0xc6, 0x02
108*9880d681SAndroid Build Coastguard Worker	.unwind_raw 8, 0xc7, 0x03
109*9880d681SAndroid Build Coastguard Worker	.unwind_raw 24, 0xc8, 0x02
110*9880d681SAndroid Build Coastguard Worker	.unwind_raw 24, 0xc9, 0x02
111*9880d681SAndroid Build Coastguard Worker	.unwind_raw 64, 0xd7
112*9880d681SAndroid Build Coastguard Worker	.fnend
113*9880d681SAndroid Build Coastguard Worker
114*9880d681SAndroid Build Coastguard Worker	.section .spare
115*9880d681SAndroid Build Coastguard Worker
116*9880d681SAndroid Build Coastguard Worker	.type spare,%function
117*9880d681SAndroid Build Coastguard Workerspare:
118*9880d681SAndroid Build Coastguard Worker	.fnstart
119*9880d681SAndroid Build Coastguard Worker	.unwind_raw 4, 0x00
120*9880d681SAndroid Build Coastguard Worker	.unwind_raw -4, 0x40
121*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0x80, 0x00
122*9880d681SAndroid Build Coastguard Worker	.unwind_raw 4, 0x88, 0x00
123*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0x91
124*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0x9d
125*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0x9f
126*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0xa0
127*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0xa8
128*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0xb0
129*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0xb1, 0x00
130*9880d681SAndroid Build Coastguard Worker	.unwind_raw 4, 0xb1, 0x01
131*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0xb1, 0x10
132*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0x204, 0xb2, 0x00
133*9880d681SAndroid Build Coastguard Worker	.unwind_raw 16, 0xb3, 0x00
134*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0xb4
135*9880d681SAndroid Build Coastguard Worker	.unwind_raw 16, 0xb8
136*9880d681SAndroid Build Coastguard Worker	.unwind_raw 4, 0xc0
137*9880d681SAndroid Build Coastguard Worker	.unwind_raw 4, 0xc6, 0x00
138*9880d681SAndroid Build Coastguard Worker	.unwind_raw 4, 0xc7, 0x00
139*9880d681SAndroid Build Coastguard Worker	.unwind_raw 4, 0xc7, 0x01
140*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0xc7, 0x10
141*9880d681SAndroid Build Coastguard Worker	.unwind_raw 16, 0xc8, 0x00
142*9880d681SAndroid Build Coastguard Worker	.unwind_raw 16, 0xc9, 0x00
143*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0xca
144*9880d681SAndroid Build Coastguard Worker	.unwind_raw 16, 0xd0
145*9880d681SAndroid Build Coastguard Worker	.unwind_raw 0, 0xd8
146*9880d681SAndroid Build Coastguard Worker	.fnend
147*9880d681SAndroid Build Coastguard Worker
148*9880d681SAndroid Build Coastguard Worker@ CHECK: UnwindInformation {
149*9880d681SAndroid Build Coastguard Worker@ CHECK:   UnwindIndexTable {
150*9880d681SAndroid Build Coastguard Worker@ CHECK:     SectionName: .ARM.exidx.personality
151*9880d681SAndroid Build Coastguard Worker@ CHECK:     Entries [
152*9880d681SAndroid Build Coastguard Worker@ CHECK:       Entry {
153*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionAddress: 0x0
154*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionName: __personality
155*9880d681SAndroid Build Coastguard Worker@ CHECK:         Model: Compact (Inline)
156*9880d681SAndroid Build Coastguard Worker@ CHECK:         PersonalityIndex: 0
157*9880d681SAndroid Build Coastguard Worker@ CHECK:         Opcodes [
158*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0       ; finish
159*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0       ; finish
160*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0       ; finish
161*9880d681SAndroid Build Coastguard Worker@ CHECK:         ]
162*9880d681SAndroid Build Coastguard Worker@ CHECK:       }
163*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
164*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
165*9880d681SAndroid Build Coastguard Worker@ CHECK:   UnwindIndexTable {
166*9880d681SAndroid Build Coastguard Worker@ CHECK:     SectionName: .ARM.exidx.personality0
167*9880d681SAndroid Build Coastguard Worker@ CHECK:     Entries [
168*9880d681SAndroid Build Coastguard Worker@ CHECK:       Entry {
169*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionAddress: 0x0
170*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionName: personality0
171*9880d681SAndroid Build Coastguard Worker@ CHECK:         Model: Compact (Inline)
172*9880d681SAndroid Build Coastguard Worker@ CHECK:         PersonalityIndex: 0
173*9880d681SAndroid Build Coastguard Worker@ CHECK:         Opcodes [
174*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0       ; finish
175*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0       ; finish
176*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0       ; finish
177*9880d681SAndroid Build Coastguard Worker@ CHECK:         ]
178*9880d681SAndroid Build Coastguard Worker@ CHECK:       }
179*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
180*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
181*9880d681SAndroid Build Coastguard Worker@ CHECK:   UnwindIndexTable {
182*9880d681SAndroid Build Coastguard Worker@ CHECK:     SectionName: .ARM.exidx.personality1
183*9880d681SAndroid Build Coastguard Worker@ CHECK:     Entries [
184*9880d681SAndroid Build Coastguard Worker@ CHECK:       Entry {
185*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionAddress: 0x0
186*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionName: personality1
187*9880d681SAndroid Build Coastguard Worker@ CHECK:         ExceptionHandlingTable: .ARM.extab.personality1
188*9880d681SAndroid Build Coastguard Worker@ CHECK:         TableEntryOffset: 0x0
189*9880d681SAndroid Build Coastguard Worker@ CHECK:         Model: Compact
190*9880d681SAndroid Build Coastguard Worker@ CHECK:         PersonalityIndex: 1
191*9880d681SAndroid Build Coastguard Worker@ CHECK:         Opcodes [
192*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB1 0x0F ; pop {r0, r1, r2, r3}
193*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xA7      ; pop {r4, r5, r6, r7, r8, r9, r10, fp}
194*9880d681SAndroid Build Coastguard Worker@ CHECK:           0x3F      ; vsp = vsp + 256
195*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0      ; finish
196*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0      ; finish
197*9880d681SAndroid Build Coastguard Worker@ CHECK:         ]
198*9880d681SAndroid Build Coastguard Worker@ CHECK:       }
199*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
200*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
201*9880d681SAndroid Build Coastguard Worker@ CHECK:   UnwindIndexTable {
202*9880d681SAndroid Build Coastguard Worker@ CHECK:     SectionName: .ARM.exidx.custom_personality
203*9880d681SAndroid Build Coastguard Worker@ CHECK:     Entries [
204*9880d681SAndroid Build Coastguard Worker@ CHECK:       Entry {
205*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionAddress: 0x0
206*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionName: custom_personality
207*9880d681SAndroid Build Coastguard Worker@ CHECK:         ExceptionHandlingTable: .ARM.extab.custom_personality
208*9880d681SAndroid Build Coastguard Worker@ CHECK:         TableEntryOffset: 0x0
209*9880d681SAndroid Build Coastguard Worker@ CHECK:         Model: Generic
210*9880d681SAndroid Build Coastguard Worker@ CHECK:         PersonalityRoutineAddress: 0x0
211*9880d681SAndroid Build Coastguard Worker@ CHECK:       }
212*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
213*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
214*9880d681SAndroid Build Coastguard Worker@ CHECK:   UnwindIndexTable {
215*9880d681SAndroid Build Coastguard Worker@ CHECK:     SectionName: .ARM.exidx.opcodes
216*9880d681SAndroid Build Coastguard Worker@ CHECK:     Entries [
217*9880d681SAndroid Build Coastguard Worker@ CHECK:       Entry {
218*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionAddress: 0x0
219*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionName: opcodes
220*9880d681SAndroid Build Coastguard Worker@ CHECK:         Model: Compact (Inline)
221*9880d681SAndroid Build Coastguard Worker@ CHECK:         PersonalityIndex: 0
222*9880d681SAndroid Build Coastguard Worker@ CHECK:         Opcodes [
223*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xC9 0x84 ; pop {d8, d9, d10, d11, d12}
224*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0      ; finish
225*9880d681SAndroid Build Coastguard Worker@ CHECK:         ]
226*9880d681SAndroid Build Coastguard Worker@ CHECK:       }
227*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
228*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
229*9880d681SAndroid Build Coastguard Worker@ CHECK:   UnwindIndexTable {
230*9880d681SAndroid Build Coastguard Worker@ CHECK:     SectionName: .ARM.exidx.multiple
231*9880d681SAndroid Build Coastguard Worker@ CHECK:     Entries [
232*9880d681SAndroid Build Coastguard Worker@ CHECK:       Entry {
233*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionAddress: 0x0
234*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionName: function0
235*9880d681SAndroid Build Coastguard Worker@ CHECK:         Model: Compact (Inline)
236*9880d681SAndroid Build Coastguard Worker@ CHECK:         PersonalityIndex: 0
237*9880d681SAndroid Build Coastguard Worker@ CHECK:         Opcodes [
238*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0     ; finish
239*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0     ; finish
240*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0     ; finish
241*9880d681SAndroid Build Coastguard Worker@ CHECK:         ]
242*9880d681SAndroid Build Coastguard Worker@ CHECK:       }
243*9880d681SAndroid Build Coastguard Worker@ CHECK:       Entry {
244*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionAddress: 0x4
245*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionName: function1
246*9880d681SAndroid Build Coastguard Worker@ CHECK:         ExceptionHandlingTable: .ARM.extab.multiple
247*9880d681SAndroid Build Coastguard Worker@ CHECK:         Model: Generic
248*9880d681SAndroid Build Coastguard Worker@ CHECK:         PersonalityRoutineAddress: 0x0
249*9880d681SAndroid Build Coastguard Worker@ CHECK:       }
250*9880d681SAndroid Build Coastguard Worker@ CHECK:       Entry {
251*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionAddress: 0x8
252*9880d681SAndroid Build Coastguard Worker@ CHECK:         FunctionName: function2
253*9880d681SAndroid Build Coastguard Worker@ CHECK:         Model: Compact (Inline)
254*9880d681SAndroid Build Coastguard Worker@ CHECK:         PersonalityIndex: 0
255*9880d681SAndroid Build Coastguard Worker@ CHECK:         Opcodes [
256*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0     ; finish
257*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0     ; finish
258*9880d681SAndroid Build Coastguard Worker@ CHECK:           0xB0     ; finish
259*9880d681SAndroid Build Coastguard Worker@ CHECK:         ]
260*9880d681SAndroid Build Coastguard Worker@ CHECK:       }
261*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
262*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
263*9880d681SAndroid Build Coastguard Worker@ CHECK:   UnwindIndexTable {
264*9880d681SAndroid Build Coastguard Worker@ CHECK:     SectionName: .ARM.exidx.raw
265*9880d681SAndroid Build Coastguard Worker@ CHECK:     Entries [
266*9880d681SAndroid Build Coastguard Worker@ CHECK:       Opcodes [
267*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xD7      ; pop {d8, d9, d10, d11, d12, d13, d14, d15}
268*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC9 0x02 ; pop {d0, d1, d2}
269*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC8 0x02 ; pop {d16, d17, d18}
270*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC7 0x03 ; pop {wCGR0, wCGR1}
271*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC6 0x02 ; pop {wR0, wR1, wR2}
272*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC2      ; pop {wR10, wR11, wR12}
273*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xBA      ; pop {d8, d9, d10}
274*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB3 0x12 ; pop {d1, d2, d3}
275*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB2 0x80 0x04 ; vsp = vsp + 2564
276*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB1 0x01 ; pop {r0}
277*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB0      ; finish
278*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xA9      ; pop {r4, r5, lr}
279*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xA1      ; pop {r4, r5}
280*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x91      ; vsp = r1
281*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x84 0xC0 ; pop {r10, fp, lr}
282*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x80 0xC0 ; pop {r10, fp}
283*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x80 0x01 ; pop {r4}
284*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x81 0x00 ; pop {ip}
285*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x80 0x00 ; refuse to unwind
286*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x42      ; vsp = vsp - 12
287*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x02      ; vsp = vsp + 12
288*9880d681SAndroid Build Coastguard Worker@ CHECK:       ]
289*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
290*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
291*9880d681SAndroid Build Coastguard Worker@ CHECK:   UnwindIndexTable {
292*9880d681SAndroid Build Coastguard Worker@ CHECK:     SectionName: .ARM.exidx.spare
293*9880d681SAndroid Build Coastguard Worker@ CHECK:     Entries [
294*9880d681SAndroid Build Coastguard Worker@ CHECK:       Opcodes [
295*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xD8      ; spare
296*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xD0      ; pop {d8}
297*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xCA      ; spare
298*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC9 0x00 ; pop {d0}
299*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC8 0x00 ; pop {d16}
300*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC7 0x10 ; spare
301*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC7 0x01 ; pop {wCGR0}
302*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC7 0x00 ; spare
303*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC6 0x00 ; pop {wR0}
304*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xC0      ; pop {wR10}
305*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB8      ; pop {d8}
306*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB4      ; spare
307*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB3 0x00 ; pop {d0}
308*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB2 0x00 ; vsp = vsp + 516
309*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB1 0x10 ; spare
310*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB1 0x01 ; pop {r0}
311*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB1 0x00 ; spare
312*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xB0      ; finish
313*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xA8      ; pop {r4, lr}
314*9880d681SAndroid Build Coastguard Worker@ CHECK:         0xA0      ; pop {r4}
315*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x9F      ; reserved (WiMMX MOVrr)
316*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x9D      ; reserved (ARM MOVrr)
317*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x91      ; vsp = r1
318*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x88 0x00 ; pop {pc}
319*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x80 0x00 ; refuse to unwind
320*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x40      ; vsp = vsp - 4
321*9880d681SAndroid Build Coastguard Worker@ CHECK:         0x00      ; vsp = vsp + 4
322*9880d681SAndroid Build Coastguard Worker@ CHECK:       ]
323*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
324*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
325*9880d681SAndroid Build Coastguard Worker@ CHECK: }
326*9880d681SAndroid Build Coastguard Worker
327