summaryrefslogtreecommitdiff
path: root/lib/xray/xray_trampoline_powerpc64.cc
blob: 878c46930fee6892c662ca041d6135e0af97a66c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <atomic>
#include <xray/xray_interface.h>

namespace __xray {

extern std::atomic<void (*)(int32_t, XRayEntryType)> XRayPatchedFunction;

// Implement this in C++ instead of assembly, to avoid dealing with ToC by hand.
void CallXRayPatchedFunction(int32_t FuncId, XRayEntryType Type) {
  auto fptr = __xray::XRayPatchedFunction.load();
  if (fptr != nullptr)
    (*fptr)(FuncId, Type);
}

} // namespace __xray