[MemProf] Use correct print_text value (#125793)
[llvm-project.git] / compiler-rt / test / orc / TestCases / Darwin / arm64 / trivial-objc-methods.S
blobbf3cb1ec91e8e36996d9afcc998830ed50ce485d
1 // RUN: %clang -c -o %t %s
2 // RUN: %llvm_jitlink -preload libobjc.A.dylib %t
3 //
4 // REQUIRES: jit-compatible-osx-swift-runtime
5 //
6 // Test that Objective-C class and instance methods work.
8         .section        __TEXT,__text,regular,pure_instructions
9         .build_version macos, 12, 0     sdk_version 12, 0
10         .p2align        2                               ; -- Begin function +[ZeroGen classZero]
11 "+[ZeroGen classZero]":                 ; @"\01+[ZeroGen classZero]"
12         .cfi_startproc
13 ; %bb.0:
14         sub     sp, sp, #16                     ; =16
15         .cfi_def_cfa_offset 16
16         str     x0, [sp, #8]
17         str     x1, [sp]
18         mov     w0, #0
19         add     sp, sp, #16                     ; =16
20         ret
21         .cfi_endproc
22                                         ; -- End function
23         .p2align        2                               ; -- Begin function -[ZeroGen objZero]
24 "-[ZeroGen objZero]":                   ; @"\01-[ZeroGen objZero]"
25         .cfi_startproc
26 ; %bb.0:
27         sub     sp, sp, #16                     ; =16
28         .cfi_def_cfa_offset 16
29         str     x0, [sp, #8]
30         str     x1, [sp]
31         mov     w0, #0
32         add     sp, sp, #16                     ; =16
33         ret
34         .cfi_endproc
35                                         ; -- End function
36         .globl  _main                           ; -- Begin function main
37         .p2align        2
38 _main:                                  ; @main
39         .cfi_startproc
40 ; %bb.0:
41         sub     sp, sp, #48                     ; =48
42         stp     x29, x30, [sp, #32]             ; 16-byte Folded Spill
43         add     x29, sp, #32                    ; =32
44         .cfi_def_cfa w29, 16
45         .cfi_offset w30, -8
46         .cfi_offset w29, -16
47         stur    wzr, [x29, #-4]
48         adrp    x8, _OBJC_CLASSLIST_REFERENCES_$_@PAGE
49         str     x8, [sp, #8]                    ; 8-byte Folded Spill
50         ldr     x0, [x8, _OBJC_CLASSLIST_REFERENCES_$_@PAGEOFF]
51         bl      _objc_alloc_init
52         ldr     x8, [sp, #8]                    ; 8-byte Folded Reload
53         str     x0, [sp, #16]
54         ldr     x0, [x8, _OBJC_CLASSLIST_REFERENCES_$_@PAGEOFF]
55         adrp    x8, _OBJC_SELECTOR_REFERENCES_@PAGE
56         ldr     x1, [x8, _OBJC_SELECTOR_REFERENCES_@PAGEOFF]
57         bl      _objc_msgSend
58         cbz     w0, LBB2_2
59 ; %bb.1:
60         mov     w8, #1
61         stur    w8, [x29, #-4]
62         b       LBB2_5
63 LBB2_2:
64         ldr     x0, [sp, #16]
65         adrp    x8, _OBJC_SELECTOR_REFERENCES_.2@PAGE
66         ldr     x1, [x8, _OBJC_SELECTOR_REFERENCES_.2@PAGEOFF]
67         bl      _objc_msgSend
68         cbz     w0, LBB2_4
69 ; %bb.3:
70         mov     w8, #1
71         stur    w8, [x29, #-4]
72         b       LBB2_5
73 LBB2_4:
74         stur    wzr, [x29, #-4]
75 LBB2_5:
76         ldur    w0, [x29, #-4]
77         ldp     x29, x30, [sp, #32]             ; 16-byte Folded Reload
78         add     sp, sp, #48                     ; =48
79         ret
80         .cfi_endproc
81                                         ; -- End function
82         .section        __TEXT,__objc_classname,cstring_literals
83 l_OBJC_CLASS_NAME_:                     ; @OBJC_CLASS_NAME_
84         .asciz  "ZeroGen"
86         .section        __TEXT,__objc_methname,cstring_literals
87 l_OBJC_METH_VAR_NAME_:                  ; @OBJC_METH_VAR_NAME_
88         .asciz  "classZero"
90         .section        __TEXT,__objc_methtype,cstring_literals
91 l_OBJC_METH_VAR_TYPE_:                  ; @OBJC_METH_VAR_TYPE_
92         .asciz  "i16@0:8"
94         .section        __DATA,__objc_const
95         .p2align        3                               ; @"_OBJC_$_CLASS_METHODS_ZeroGen"
96 __OBJC_$_CLASS_METHODS_ZeroGen:
97         .long   24                              ; 0x18
98         .long   1                               ; 0x1
99         .quad   l_OBJC_METH_VAR_NAME_
100         .quad   l_OBJC_METH_VAR_TYPE_
101         .quad   "+[ZeroGen classZero]"
103         .p2align        3                               ; @"_OBJC_METACLASS_RO_$_ZeroGen"
104 __OBJC_METACLASS_RO_$_ZeroGen:
105         .long   1                               ; 0x1
106         .long   40                              ; 0x28
107         .long   40                              ; 0x28
108         .space  4
109         .quad   0
110         .quad   l_OBJC_CLASS_NAME_
111         .quad   __OBJC_$_CLASS_METHODS_ZeroGen
112         .quad   0
113         .quad   0
114         .quad   0
115         .quad   0
117         .section        __DATA,__objc_data
118         .globl  _OBJC_METACLASS_$_ZeroGen       ; @"OBJC_METACLASS_$_ZeroGen"
119         .p2align        3
120 _OBJC_METACLASS_$_ZeroGen:
121         .quad   _OBJC_METACLASS_$_NSObject
122         .quad   _OBJC_METACLASS_$_NSObject
123         .quad   __objc_empty_cache
124         .quad   0
125         .quad   __OBJC_METACLASS_RO_$_ZeroGen
127         .section        __TEXT,__objc_methname,cstring_literals
128 l_OBJC_METH_VAR_NAME_.1:                ; @OBJC_METH_VAR_NAME_.1
129         .asciz  "objZero"
131         .section        __DATA,__objc_const
132         .p2align        3                               ; @"_OBJC_$_INSTANCE_METHODS_ZeroGen"
133 __OBJC_$_INSTANCE_METHODS_ZeroGen:
134         .long   24                              ; 0x18
135         .long   1                               ; 0x1
136         .quad   l_OBJC_METH_VAR_NAME_.1
137         .quad   l_OBJC_METH_VAR_TYPE_
138         .quad   "-[ZeroGen objZero]"
140         .p2align        3                               ; @"_OBJC_CLASS_RO_$_ZeroGen"
141 __OBJC_CLASS_RO_$_ZeroGen:
142         .long   0                               ; 0x0
143         .long   8                               ; 0x8
144         .long   8                               ; 0x8
145         .space  4
146         .quad   0
147         .quad   l_OBJC_CLASS_NAME_
148         .quad   __OBJC_$_INSTANCE_METHODS_ZeroGen
149         .quad   0
150         .quad   0
151         .quad   0
152         .quad   0
154         .section        __DATA,__objc_data
155         .globl  _OBJC_CLASS_$_ZeroGen           ; @"OBJC_CLASS_$_ZeroGen"
156         .p2align        3
157 _OBJC_CLASS_$_ZeroGen:
158         .quad   _OBJC_METACLASS_$_ZeroGen
159         .quad   _OBJC_CLASS_$_NSObject
160         .quad   __objc_empty_cache
161         .quad   0
162         .quad   __OBJC_CLASS_RO_$_ZeroGen
164         .section        __DATA,__objc_classrefs,regular,no_dead_strip
165         .p2align        3                               ; @"OBJC_CLASSLIST_REFERENCES_$_"
166 _OBJC_CLASSLIST_REFERENCES_$_:
167         .quad   _OBJC_CLASS_$_ZeroGen
169         .section        __DATA,__objc_selrefs,literal_pointers,no_dead_strip
170         .p2align        3                               ; @OBJC_SELECTOR_REFERENCES_
171 _OBJC_SELECTOR_REFERENCES_:
172         .quad   l_OBJC_METH_VAR_NAME_
174         .p2align        3                               ; @OBJC_SELECTOR_REFERENCES_.2
175 _OBJC_SELECTOR_REFERENCES_.2:
176         .quad   l_OBJC_METH_VAR_NAME_.1
178         .section        __DATA,__objc_classlist,regular,no_dead_strip
179         .p2align        3                               ; @"OBJC_LABEL_CLASS_$"
180 l_OBJC_LABEL_CLASS_$:
181         .quad   _OBJC_CLASS_$_ZeroGen
183         .section        __DATA,__objc_imageinfo,regular,no_dead_strip
184 L_OBJC_IMAGE_INFO:
185         .long   0
186         .long   64
188 .subsections_via_symbols