]> git.saurik.com Git - apple/objc4.git/blob - runtime/objc-sel-table.s
objc4-818.2.tar.gz
[apple/objc4.git] / runtime / objc-sel-table.s
1 #include <TargetConditionals.h>
2 #include <mach/vm_param.h>
3
4 #if __LP64__
5 #if __arm64e__
6 // 0x6AE1
7 # define PTR(x) .quad x@AUTH(da, 27361, addr)
8 #else
9 # define PTR(x) .quad x
10 #endif
11 #else
12 # define PTR(x) .long x
13 #endif
14
15 // These offsets are populated by the dyld shared cache builder.
16 // They point to memory allocatd elsewhere in the shared cache.
17
18 .section __TEXT,__objc_opt_ro
19 .align 3
20 .private_extern __objc_opt_data
21 __objc_opt_data:
22 .long 15 /* table.version */
23 .long 0 /* table.flags */
24 .long 0 /* table.selopt_offset */
25 .long 0 /* table.headeropt_ro_offset */
26 .long 0 /* table.clsopt_offset */
27 .long 0 /* table.protocolopt_offset */
28 .long 0 /* table.headeropt_rw_offset */
29 .space PAGE_MAX_SIZE-28
30
31
32 /* section of pointers that the shared cache optimizer wants to know about */
33 .section __DATA,__objc_opt_ptrs
34 .align 3
35
36 #if TARGET_OS_OSX && __i386__
37 // old ABI
38 .globl .objc_class_name_Protocol
39 PTR(.objc_class_name_Protocol)
40 #else
41 // new ABI
42 .globl _OBJC_CLASS_$_Protocol
43 PTR(_OBJC_CLASS_$_Protocol)
44 #endif