Index: compiler-rt/trunk/lib/xray/xray_mips.cc =================================================================== --- compiler-rt/trunk/lib/xray/xray_mips.cc +++ compiler-rt/trunk/lib/xray/xray_mips.cc @@ -134,8 +134,9 @@ } bool patchFunctionEntry(const bool Enable, const uint32_t FuncId, - const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { - return patchSled(Enable, FuncId, Sled, __xray_FunctionEntry); + const XRaySledEntry &Sled, + void (*Trampoline)()) XRAY_NEVER_INSTRUMENT { + return patchSled(Enable, FuncId, Sled, Trampoline); } bool patchFunctionExit(const bool Enable, const uint32_t FuncId, @@ -151,3 +152,7 @@ } } // namespace __xray + +extern "C" void __xray_ArgLoggerEntry() XRAY_NEVER_INSTRUMENT { + // FIXME: this will have to be implemented in the trampoline assembly file +} Index: compiler-rt/trunk/lib/xray/xray_mips64.cc =================================================================== --- compiler-rt/trunk/lib/xray/xray_mips64.cc +++ compiler-rt/trunk/lib/xray/xray_mips64.cc @@ -143,8 +143,9 @@ } bool patchFunctionEntry(const bool Enable, const uint32_t FuncId, - const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { - return patchSled(Enable, FuncId, Sled, __xray_FunctionEntry); + const XRaySledEntry &Sled, + void (*Trampoline)()) XRAY_NEVER_INSTRUMENT { + return patchSled(Enable, FuncId, Sled, Trampoline); } bool patchFunctionExit(const bool Enable, const uint32_t FuncId, @@ -160,3 +161,7 @@ } } // namespace __xray + +extern "C" void __xray_ArgLoggerEntry() XRAY_NEVER_INSTRUMENT { + // FIXME: this will have to be implemented in the trampoline assembly file +} Index: compiler-rt/trunk/lib/xray/xray_powerpc64.cc =================================================================== --- compiler-rt/trunk/lib/xray/xray_powerpc64.cc +++ compiler-rt/trunk/lib/xray/xray_powerpc64.cc @@ -51,7 +51,8 @@ namespace __xray { bool patchFunctionEntry(const bool Enable, uint32_t FuncId, - const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { + const XRaySledEntry &Sled, + void (*Trampoline)()) XRAY_NEVER_INSTRUMENT { if (Enable) { // lis 0, FuncId[16..32] // li 0, FuncId[0..15] @@ -93,3 +94,7 @@ bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT { return true; } } // namespace __xray + +extern "C" void __xray_ArgLoggerEntry() XRAY_NEVER_INSTRUMENT { + // FIXME: this will have to be implemented in the trampoline assembly file +}