[docs] Fix build-docs.sh
[llvm-project.git] / compiler-rt / test / orc / TestCases / Darwin / x86-64 / trivial-objc-methods.S
blob8e5f95cd27e56c9c4ac7f775f6fa53f4bc9ac523
1 // RUN: %clang -c -o %t %s
2 // RUN: %llvm_jitlink -preload libobjc.A.dylib %t
3 //
4 // Test that Objective-C class and instance methods work.
6         .section        __TEXT,__text,regular,pure_instructions
7         .build_version macos, 11, 0     sdk_version 11, 5
8         .p2align        4, 0x90
9 "-[ZeroGen objZero]":
10         pushq   %rbp
11         movq    %rsp, %rbp
12         xorl    %eax, %eax
13         popq    %rbp
14         retq
16         .p2align        4, 0x90
17 "+[ZeroGen classZero]":
18         pushq   %rbp
19         movq    %rsp, %rbp
20         xorl    %eax, %eax
21         popq    %rbp
22         retq
24         .globl  _main
25         .p2align        4, 0x90
26 _main:
27         pushq   %rbp
28         movq    %rsp, %rbp
29         movq    _OBJC_CLASSLIST_REFERENCES_$_(%rip), %rdi
30         callq   _objc_alloc_init
31         movq    _OBJC_SELECTOR_REFERENCES_(%rip), %rsi
32         movq    %rax, %rdi
33         callq   *_objc_msgSend@GOTPCREL(%rip)
34         testl   %eax, %eax
35         jne     LBB2_3
37         movq    _OBJC_CLASSLIST_REFERENCES_$_(%rip), %rdi
38         movq    _OBJC_SELECTOR_REFERENCES_.2(%rip), %rsi
39         callq   *_objc_msgSend@GOTPCREL(%rip)
40         testl   %eax, %eax
41         je      LBB2_2
42 LBB2_3:
43         movl    $1, %eax
44         popq    %rbp
45         retq
46 LBB2_2:
47         xorl    %eax, %eax
48         popq    %rbp
49         retq
51         .section        __TEXT,__objc_classname,cstring_literals
52 L_OBJC_CLASS_NAME_:
53         .asciz  "ZeroGen"
55         .section        __TEXT,__objc_methname,cstring_literals
56 L_OBJC_METH_VAR_NAME_:
57         .asciz  "classZero"
59         .section        __TEXT,__objc_methtype,cstring_literals
60 L_OBJC_METH_VAR_TYPE_:
61         .asciz  "i16@0:8"
63         .section        __DATA,__objc_const
64         .p2align        3
65 __OBJC_$_CLASS_METHODS_ZeroGen:
66         .long   24
67         .long   1
68         .quad   L_OBJC_METH_VAR_NAME_
69         .quad   L_OBJC_METH_VAR_TYPE_
70         .quad   "+[ZeroGen classZero]"
72         .p2align        3
73 __OBJC_METACLASS_RO_$_ZeroGen:
74         .long   1
75         .long   40
76         .long   40
77         .space  4
78         .quad   0
79         .quad   L_OBJC_CLASS_NAME_
80         .quad   __OBJC_$_CLASS_METHODS_ZeroGen
81         .quad   0
82         .quad   0
83         .quad   0
84         .quad   0
86         .section        __DATA,__objc_data
87         .globl  _OBJC_METACLASS_$_ZeroGen
88         .p2align        3
89 _OBJC_METACLASS_$_ZeroGen:
90         .quad   _OBJC_METACLASS_$_NSObject
91         .quad   _OBJC_METACLASS_$_NSObject
92         .quad   __objc_empty_cache
93         .quad   0
94         .quad   __OBJC_METACLASS_RO_$_ZeroGen
96         .section        __TEXT,__objc_methname,cstring_literals
97 L_OBJC_METH_VAR_NAME_.1:
98         .asciz  "objZero"
100         .section        __DATA,__objc_const
101         .p2align        3
102 __OBJC_$_INSTANCE_METHODS_ZeroGen:
103         .long   24
104         .long   1
105         .quad   L_OBJC_METH_VAR_NAME_.1
106         .quad   L_OBJC_METH_VAR_TYPE_
107         .quad   "-[ZeroGen objZero]"
109         .p2align        3
110 __OBJC_CLASS_RO_$_ZeroGen:
111         .long   0
112         .long   8
113         .long   8
114         .space  4
115         .quad   0
116         .quad   L_OBJC_CLASS_NAME_
117         .quad   __OBJC_$_INSTANCE_METHODS_ZeroGen
118         .quad   0
119         .quad   0
120         .quad   0
121         .quad   0
123         .section        __DATA,__objc_data
124         .globl  _OBJC_CLASS_$_ZeroGen
125         .p2align        3
126 _OBJC_CLASS_$_ZeroGen:
127         .quad   _OBJC_METACLASS_$_ZeroGen
128         .quad   _OBJC_CLASS_$_NSObject
129         .quad   __objc_empty_cache
130         .quad   0
131         .quad   __OBJC_CLASS_RO_$_ZeroGen
133         .section        __DATA,__objc_classrefs,regular,no_dead_strip
134         .p2align        3
135 _OBJC_CLASSLIST_REFERENCES_$_:
136         .quad   _OBJC_CLASS_$_ZeroGen
138         .section        __DATA,__objc_selrefs,literal_pointers,no_dead_strip
139         .p2align        3
140 _OBJC_SELECTOR_REFERENCES_:
141         .quad   L_OBJC_METH_VAR_NAME_.1
143         .p2align        3
144 _OBJC_SELECTOR_REFERENCES_.2:
145         .quad   L_OBJC_METH_VAR_NAME_
147         .section        __DATA,__objc_classlist,regular,no_dead_strip
148         .p2align        3
149 L_OBJC_LABEL_CLASS_$:
150         .quad   _OBJC_CLASS_$_ZeroGen
152         .section        __DATA,__objc_imageinfo,regular,no_dead_strip
153 L_OBJC_IMAGE_INFO:
154         .long   0
155         .long   64
157 .subsections_via_symbols