160 lines · plain
1// RUN: %clang -c -o %t %s2// RUN: %llvm_jitlink -preload libobjc.A.dylib %t3//4// REQUIRES: jit-compatible-osx-swift-runtime5//6// Test that Objective-C class and instance methods work.7 8 .section __TEXT,__text,regular,pure_instructions9 .build_version macos, 11, 0 sdk_version 11, 510 .p2align 4, 0x9011"-[ZeroGen objZero]":12 pushq %rbp13 movq %rsp, %rbp14 xorl %eax, %eax15 popq %rbp16 retq17 18 .p2align 4, 0x9019"+[ZeroGen classZero]":20 pushq %rbp21 movq %rsp, %rbp22 xorl %eax, %eax23 popq %rbp24 retq25 26 .globl _main27 .p2align 4, 0x9028_main:29 pushq %rbp30 movq %rsp, %rbp31 movq _OBJC_CLASSLIST_REFERENCES_$_(%rip), %rdi32 callq _objc_alloc_init33 movq _OBJC_SELECTOR_REFERENCES_(%rip), %rsi34 movq %rax, %rdi35 callq *_objc_msgSend@GOTPCREL(%rip)36 testl %eax, %eax37 jne LBB2_338 39 movq _OBJC_CLASSLIST_REFERENCES_$_(%rip), %rdi40 movq _OBJC_SELECTOR_REFERENCES_.2(%rip), %rsi41 callq *_objc_msgSend@GOTPCREL(%rip)42 testl %eax, %eax43 je LBB2_244LBB2_3:45 movl $1, %eax46 popq %rbp47 retq48LBB2_2:49 xorl %eax, %eax50 popq %rbp51 retq52 53 .section __TEXT,__objc_classname,cstring_literals54L_OBJC_CLASS_NAME_:55 .asciz "ZeroGen"56 57 .section __TEXT,__objc_methname,cstring_literals58L_OBJC_METH_VAR_NAME_:59 .asciz "classZero"60 61 .section __TEXT,__objc_methtype,cstring_literals62L_OBJC_METH_VAR_TYPE_:63 .asciz "i16@0:8"64 65 .section __DATA,__objc_const66 .p2align 367__OBJC_$_CLASS_METHODS_ZeroGen:68 .long 2469 .long 170 .quad L_OBJC_METH_VAR_NAME_71 .quad L_OBJC_METH_VAR_TYPE_72 .quad "+[ZeroGen classZero]"73 74 .p2align 375__OBJC_METACLASS_RO_$_ZeroGen:76 .long 177 .long 4078 .long 4079 .space 480 .quad 081 .quad L_OBJC_CLASS_NAME_82 .quad __OBJC_$_CLASS_METHODS_ZeroGen83 .quad 084 .quad 085 .quad 086 .quad 087 88 .section __DATA,__objc_data89 .globl _OBJC_METACLASS_$_ZeroGen90 .p2align 391_OBJC_METACLASS_$_ZeroGen:92 .quad _OBJC_METACLASS_$_NSObject93 .quad _OBJC_METACLASS_$_NSObject94 .quad __objc_empty_cache95 .quad 096 .quad __OBJC_METACLASS_RO_$_ZeroGen97 98 .section __TEXT,__objc_methname,cstring_literals99L_OBJC_METH_VAR_NAME_.1:100 .asciz "objZero"101 102 .section __DATA,__objc_const103 .p2align 3104__OBJC_$_INSTANCE_METHODS_ZeroGen:105 .long 24106 .long 1107 .quad L_OBJC_METH_VAR_NAME_.1108 .quad L_OBJC_METH_VAR_TYPE_109 .quad "-[ZeroGen objZero]"110 111 .p2align 3112__OBJC_CLASS_RO_$_ZeroGen:113 .long 0114 .long 8115 .long 8116 .space 4117 .quad 0118 .quad L_OBJC_CLASS_NAME_119 .quad __OBJC_$_INSTANCE_METHODS_ZeroGen120 .quad 0121 .quad 0122 .quad 0123 .quad 0124 125 .section __DATA,__objc_data126 .globl _OBJC_CLASS_$_ZeroGen127 .p2align 3128_OBJC_CLASS_$_ZeroGen:129 .quad _OBJC_METACLASS_$_ZeroGen130 .quad _OBJC_CLASS_$_NSObject131 .quad __objc_empty_cache132 .quad 0133 .quad __OBJC_CLASS_RO_$_ZeroGen134 135 .section __DATA,__objc_classrefs,regular,no_dead_strip136 .p2align 3137_OBJC_CLASSLIST_REFERENCES_$_:138 .quad _OBJC_CLASS_$_ZeroGen139 140 .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip141 .p2align 3142_OBJC_SELECTOR_REFERENCES_:143 .quad L_OBJC_METH_VAR_NAME_.1144 145 .p2align 3146_OBJC_SELECTOR_REFERENCES_.2:147 .quad L_OBJC_METH_VAR_NAME_148 149 .section __DATA,__objc_classlist,regular,no_dead_strip150 .p2align 3151L_OBJC_LABEL_CLASS_$:152 .quad _OBJC_CLASS_$_ZeroGen153 154 .section __DATA,__objc_imageinfo,regular,no_dead_strip155L_OBJC_IMAGE_INFO:156 .long 0157 .long 64158 159.subsections_via_symbols160