26
26
ldp x1 , x2 , [ sp ], # 16
27
27
.endm
28
28
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
-
40
29
.text
41
30
.p2align 2
42
31
. global ASM_SYMBOL(__xray_FunctionEntry)
@@ -53,7 +42,8 @@ ASM_SYMBOL(__xray_FunctionEntry):
53
42
SAVE_REGISTERS
54
43
55
44
// 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) ]
57
47
cbz x2 , 1f
58
48
// Set w0 to the function ID (w17). Set x1 to XRayEntryType::ENTRY = 0 .
59
49
mov w0 , w17
@@ -79,7 +69,8 @@ ASM_SYMBOL(__xray_FunctionExit):
79
69
SAVE_REGISTERS
80
70
81
71
// 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) ]
83
74
cbz x2 , 1f
84
75
// Set w0 to the function ID (w17). Set x1 to XRayEntryType::EXIT = 1 .
85
76
mov w0 , w17
@@ -105,7 +96,8 @@ ASM_SYMBOL(__xray_FunctionTailExit):
105
96
// Save the registers which may be modified by the handler function.
106
97
SAVE_REGISTERS
107
98
// 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) ]
109
101
cbz x2 , 1f
110
102
// Set w0 to the function ID (w17). Set x1 to XRayEntryType::TAIL = 2 .
111
103
mov w0 , w17
@@ -126,11 +118,13 @@ ASM_SYMBOL(__xray_ArgLoggerEntry):
126
118
// Push the registers which may be modified by the handler function.
127
119
SAVE_REGISTERS
128
120
129
- LOAD_HANDLER_ADDR x8 , _ZN6__xray13XRayArgLoggerE
121
+ adrp x8 , ASM_SYMBOL(_ZN6__xray13XRayArgLoggerE)
122
+ ldr x8 , [ x8 , #:lo12:ASM_SYMBOL(_ZN6__xray13XRayArgLoggerE) ]
130
123
cbnz x8 , 2f
131
124
132
125
// 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) ]
134
128
cbz x8 , 1f
135
129
136
130
2 :
@@ -150,7 +144,8 @@ ASM_SIZE(__xray_ArgLoggerEntry)
150
144
ASM_TYPE_FUNCTION(__xray_CustomEvent)
151
145
ASM_SYMBOL(__xray_CustomEvent):
152
146
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) ]
154
149
cbz x8 , 1f
155
150
blr x8
156
151
1 :
@@ -162,7 +157,8 @@ ASM_SIZE(__xray_CustomEvent)
162
157
ASM_TYPE_FUNCTION(__xray_TypedEvent)
163
158
ASM_SYMBOL(__xray_TypedEvent):
164
159
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) ]
166
162
cbz x8 , 1f
167
163
blr x8
168
164
1 :
0 commit comments