1#include <atomic>
2#include <xray/xray_interface.h>
3
4namespace __xray {
5
6extern std::atomic<void (*)(int32_t, XRayEntryType)> XRayPatchedFunction;
7
8// Implement this in C++ instead of assembly, to avoid dealing with ToC by hand.
9void CallXRayPatchedFunction(int32_t FuncId, XRayEntryType Type) {
10 auto fptr = __xray::XRayPatchedFunction.load();
11 if (fptr != nullptr)
12 (*fptr)(FuncId, Type);
13}
14
15} // namespace __xray
16

source code of compiler-rt/lib/xray/xray_trampoline_powerpc64.cpp