xref: /llvm-project/llvm/test/ExecutionEngine/JITLink/AArch64/MachO_ehframe.s (revision bfb0a518e73623732c6567916d066df817e0cb0c)
1# REQUIRES: asserts
2# RUN: llvm-mc -triple=arm64-apple-darwin11 -filetype=obj -o %t %s
3# RUN: llvm-jitlink -num-threads=0 -debug-only=jitlink -noexec \
4# RUN:              -phony-externals %t 2>&1 | FileCheck %s
5#
6# Check that splitting of eh-frame sections works.
7#
8# CHECK: DWARFRecordSectionSplitter: Processing __TEXT,__eh_frame...
9# CHECK:  Processing block at
10# CHECK:    Processing CFI record at
11# CHECK:    Processing CFI record at
12# CHECK: EHFrameEdgeFixer: Processing __TEXT,__eh_frame in "{{.*}}"...
13# CHECK:   Processing block at
14# CHECK:     Record is CIE
15# CHECK:   Processing block at
16# CHECK:     Record is FDE
17# CHECK:       Adding edge at {{.*}} to CIE at: {{.*}}
18# CHECK:       Existing edge at {{.*}} to PC begin at {{.*}}
19# CHECK:       Adding keep-alive edge from target at {{.*}} to FDE at {{.*}}
20# CHECK:       Existing edge at {{.*}} to LSDA at {{.*}}
21
22	.section	__TEXT,__text,regular,pure_instructions
23 	.globl	_main
24	.p2align	2
25_main:
26Lfunc_begin0:
27	.cfi_startproc
28	.cfi_personality 155, ___gxx_personality_v0
29	.cfi_lsda 16, Lexception0
30
31	stp	x20, x19, [sp, #-32]!
32	stp	x29, x30, [sp, #16]
33	.cfi_def_cfa_offset 32
34	.cfi_offset w30, -8
35	.cfi_offset w29, -16
36	.cfi_offset w19, -24
37	.cfi_offset w20, -32
38	mov	w0, #4
39	bl	___cxa_allocate_exception
40	mov	w8, #42
41	str	w8, [x0]
42Ltmp0:
43Lloh0:
44	adrp	x1, __ZTIi@GOTPAGE
45Lloh1:
46	ldr	x1, [x1, __ZTIi@GOTPAGEOFF]
47	mov	x2, #0
48	bl	___cxa_throw
49Ltmp1:
50
51	brk	#0x1
52LBB0_2:
53Ltmp2:
54	bl	___cxa_begin_catch
55	ldr	w19, [x0]
56	bl	___cxa_end_catch
57	mov	x0, x19
58	ldp	x29, x30, [sp, #16]
59	ldp	x20, x19, [sp], #32
60	ret
61	.loh AdrpLdrGot	Lloh0, Lloh1
62Lfunc_end0:
63	.cfi_endproc
64	.section	__TEXT,__gcc_except_tab
65	.p2align	2
66GCC_except_table0:
67Lexception0:
68	.byte	255
69	.byte	155
70	.uleb128 Lttbase0-Lttbaseref0
71Lttbaseref0:
72	.byte	1
73	.uleb128 Lcst_end0-Lcst_begin0
74Lcst_begin0:
75	.uleb128 Lfunc_begin0-Lfunc_begin0
76	.uleb128 Ltmp0-Lfunc_begin0
77	.byte	0
78	.byte	0
79	.uleb128 Ltmp0-Lfunc_begin0
80	.uleb128 Ltmp1-Ltmp0
81	.uleb128 Ltmp2-Lfunc_begin0
82	.byte	1
83	.uleb128 Ltmp1-Lfunc_begin0
84	.uleb128 Lfunc_end0-Ltmp1
85	.byte	0
86	.byte	0
87Lcst_end0:
88	.byte	1
89
90	.byte	0
91	.p2align	2
92
93Ltmp3:
94	.long	__ZTIi@GOT-Ltmp3
95Lttbase0:
96	.p2align	2
97
98.subsections_via_symbols
99