]>
Commit | Line | Data |
---|---|---|
31875a97 | 1 | #include <TargetConditionals.h> |
7257e56c | 2 | #include <mach/vm_param.h> |
31875a97 A |
3 | |
4 | #if __LP64__ | |
34d5b5e8 A |
5 | #if __arm64e__ |
6 | // 0x6AE1 | |
7 | # define PTR(x) .quad x@AUTH(da, 27361, addr) | |
8 | #else | |
31875a97 | 9 | # define PTR(x) .quad x |
34d5b5e8 | 10 | #endif |
31875a97 A |
11 | #else |
12 | # define PTR(x) .long x | |
13 | #endif | |
14 | ||
1807f628 A |
15 | // These offsets are populated by the dyld shared cache builder. |
16 | // They point to memory allocatd elsewhere in the shared cache. | |
17 | ||
8972963c A |
18 | .section __TEXT,__objc_opt_ro |
19 | .align 3 | |
20 | .private_extern __objc_opt_data | |
21 | __objc_opt_data: | |
c1e772c4 A |
22 | .long 15 /* table.version */ |
23 | .long 0 /* table.flags */ | |
8972963c | 24 | .long 0 /* table.selopt_offset */ |
c1e772c4 A |
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 | |
8972963c | 30 | |
31875a97 A |
31 | |
32 | /* section of pointers that the shared cache optimizer wants to know about */ | |
33 | .section __DATA,__objc_opt_ptrs | |
34 | .align 3 | |
35 | ||
c1e772c4 | 36 | #if TARGET_OS_OSX && __i386__ |
31875a97 A |
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 |