[PATCH] D30634: [XRay] [compiler-rt] Stub out architectures we don't do arg1 logging on.

Martin Pelikán via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 6 00:02:13 PST 2017


pelikan created this revision.
Herald added subscribers: nemanjai, aemerson.

https://reviews.llvm.org/rL297000 forgot to include code for three architectures that appeared
since I wrote the first version.  This gives them the same treatment as ARMs
have for now - write stubs and wait for someone to actually implement it.


https://reviews.llvm.org/D30634

Files:
  lib/xray/xray_mips.cc
  lib/xray/xray_mips64.cc
  lib/xray/xray_powerpc64.cc


Index: lib/xray/xray_powerpc64.cc
===================================================================
--- lib/xray/xray_powerpc64.cc
+++ 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
+}
Index: lib/xray/xray_mips64.cc
===================================================================
--- lib/xray/xray_mips64.cc
+++ 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: lib/xray/xray_mips.cc
===================================================================
--- lib/xray/xray_mips.cc
+++ 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
+}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30634.90654.patch
Type: text/x-patch
Size: 2462 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170306/e4d57b28/attachment.bin>


More information about the llvm-commits mailing list