123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- #if __arm64__
- #if __LP64__
- #define SUPPORT_TAGGED_POINTERS 1
- #define PTR .quad
- #define PTRSIZE 8
- #define PTRSHIFT 3
- #define UXTP UXTX
- #define p0 x0
- #define p1 x1
- #define p2 x2
- #define p3 x3
- #define p4 x4
- #define p5 x5
- #define p6 x6
- #define p7 x7
- #define p8 x8
- #define p9 x9
- #define p10 x10
- #define p11 x11
- #define p12 x12
- #define p13 x13
- #define p14 x14
- #define p15 x15
- #define p16 x16
- #define p17 x17
- #else
- #define SUPPORT_TAGGED_POINTERS 0
- #define PTR .long
- #define PTRSIZE 4
- #define PTRSHIFT 2
- #define UXTP UXTW
- #define p0 w0
- #define p1 w1
- #define p2 w2
- #define p3 w3
- #define p4 w4
- #define p5 w5
- #define p6 w6
- #define p7 w7
- #define p8 w8
- #define p9 w9
- #define p10 w10
- #define p11 w11
- #define p12 w12
- #define p13 w13
- #define p14 w14
- #define p15 w15
- #define p16 w16
- #define p17 w17
- #endif
- #if __has_feature(ptrauth_returns)
- # define SignLR pacibsp
- # define AuthenticateLR autibsp
- #else
- # define SignLR
- # define AuthenticateLR
- #endif
- #if __has_feature(ptrauth_calls)
- .macro TailCallFunctionPointer
-
- braaz $0
- .endmacro
- .macro TailCallCachedImp
-
- brab $0, $1
- .endmacro
- .macro TailCallMethodListImp
-
- braa $0, $1
- .endmacro
- .macro TailCallBlockInvoke
-
- braa $0, $1
- .endmacro
- .macro AuthAndResignAsIMP
-
- autib $0, $1
- paciza $0
- .endmacro
- #else
- .macro TailCallFunctionPointer
-
- br $0
- .endmacro
- .macro TailCallCachedImp
-
- br $0
- .endmacro
- .macro TailCallMethodListImp
-
- br $0
- .endmacro
- .macro TailCallBlockInvoke
-
- br $0
- .endmacro
- .macro AuthAndResignAsIMP
-
- .endmacro
- #endif
- #define TailCallBlockInvoke TailCallMethodListImp
- #endif
|