2626 ldp x1 , x2 , [ sp ], # 16
2727.endm
2828
29- .macro LOAD_HANDLER_ADDR reg handler
30- #if !defined(XRAY_PIC)
31- adrp \reg , ASM_SYMBOL(\handler)
32- ldr \reg , [ \reg , :lo12:ASM_SYMBOL(\handler) ]
33- #else
34- adrp \reg , :got:ASM_SYMBOL(\handler)
35- ldr \reg , [ \reg , :got_lo12:ASM_SYMBOL(\handler) ]
36- ldr \reg , [ \reg ]
37- #endif
38- .endm
39-
4029.text
4130.p2align 2
4231. global ASM_SYMBOL(__xray_FunctionEntry)
@@ -53,7 +42,8 @@ ASM_SYMBOL(__xray_FunctionEntry):
5342 SAVE_REGISTERS
5443
5544 // Load the handler function pointer.
56- LOAD_HANDLER_ADDR x2 , _ZN6__xray19XRayPatchedFunctionE
45+ adrp x2 , ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE)
46+ ldr x2 , [ x2 , #:lo12:ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE) ]
5747 cbz x2 , 1f
5848 // Set w0 to the function ID (w17). Set x1 to XRayEntryType::ENTRY = 0 .
5949 mov w0 , w17
@@ -79,7 +69,8 @@ ASM_SYMBOL(__xray_FunctionExit):
7969 SAVE_REGISTERS
8070
8171 // Load the handler function pointer into x2.
82- LOAD_HANDLER_ADDR x2 , _ZN6__xray19XRayPatchedFunctionE
72+ adrp x2 , ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE)
73+ ldr x2 , [ x2 , #:lo12:ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE) ]
8374 cbz x2 , 1f
8475 // Set w0 to the function ID (w17). Set x1 to XRayEntryType::EXIT = 1 .
8576 mov w0 , w17
@@ -105,7 +96,8 @@ ASM_SYMBOL(__xray_FunctionTailExit):
10596 // Save the registers which may be modified by the handler function.
10697 SAVE_REGISTERS
10798 // Load the handler function pointer into x2.
108- LOAD_HANDLER_ADDR x2 , _ZN6__xray19XRayPatchedFunctionE
99+ adrp x2 , ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE)
100+ ldr x2 , [ x2 , #:lo12:ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE) ]
109101 cbz x2 , 1f
110102 // Set w0 to the function ID (w17). Set x1 to XRayEntryType::TAIL = 2 .
111103 mov w0 , w17
@@ -126,11 +118,13 @@ ASM_SYMBOL(__xray_ArgLoggerEntry):
126118 // Push the registers which may be modified by the handler function.
127119 SAVE_REGISTERS
128120
129- LOAD_HANDLER_ADDR x8 , _ZN6__xray13XRayArgLoggerE
121+ adrp x8 , ASM_SYMBOL(_ZN6__xray13XRayArgLoggerE)
122+ ldr x8 , [ x8 , #:lo12:ASM_SYMBOL(_ZN6__xray13XRayArgLoggerE) ]
130123 cbnz x8 , 2f
131124
132125 // Load the handler function pointer.
133- LOAD_HANDLER_ADDR x8 , _ZN6__xray19XRayPatchedFunctionE
126+ adrp x8 , ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE)
127+ ldr x8 , [ x8 , #:lo12:ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE) ]
134128 cbz x8 , 1f
135129
1361302 :
@@ -150,7 +144,8 @@ ASM_SIZE(__xray_ArgLoggerEntry)
150144ASM_TYPE_FUNCTION(__xray_CustomEvent)
151145ASM_SYMBOL(__xray_CustomEvent):
152146 SAVE_REGISTERS
153- LOAD_HANDLER_ADDR x8 , _ZN6__xray22XRayPatchedCustomEventE
147+ adrp x8 , ASM_SYMBOL(_ZN6__xray22XRayPatchedCustomEventE)
148+ ldr x8 , [ x8 , #:lo12:ASM_SYMBOL(_ZN6__xray22XRayPatchedCustomEventE) ]
154149 cbz x8 , 1f
155150 blr x8
1561511 :
@@ -162,7 +157,8 @@ ASM_SIZE(__xray_CustomEvent)
162157ASM_TYPE_FUNCTION(__xray_TypedEvent)
163158ASM_SYMBOL(__xray_TypedEvent):
164159 SAVE_REGISTERS
165- LOAD_HANDLER_ADDR x8 , _ZN6__xray21XRayPatchedTypedEventE
160+ adrp x8 , ASM_SYMBOL(_ZN6__xray21XRayPatchedTypedEventE)
161+ ldr x8 , [ x8 , #:lo12:ASM_SYMBOL(_ZN6__xray21XRayPatchedTypedEventE) ]
166162 cbz x8 , 1f
167163 blr x8
1681641 :
0 commit comments