summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/xray/xray_interface_internal.h
diff options
context:
space:
mode:
authorDean Michael Berris <dberris@google.com>2017-08-23 04:42:37 +0000
committerDean Michael Berris <dberris@google.com>2017-08-23 04:42:37 +0000
commit71f88a955d30645d082ddd42d2215226f3ea8744 (patch)
tree6fa52db52ddb2a3536249411f12c0818525bd01b /compiler-rt/lib/xray/xray_interface_internal.h
parentc4ea1010c1be3bb9cfb4772fbd69d02703ad7da6 (diff)
downloadbcm5719-llvm-71f88a955d30645d082ddd42d2215226f3ea8744.tar.gz
bcm5719-llvm-71f88a955d30645d082ddd42d2215226f3ea8744.zip
[XRay][compiler-rt] Support sled versioning for custom event sleds
Summary: This change introduces versions to the instrumentation map entries we emit for XRay instrumentaiton points. The status quo for the version is currently set to 0 (as emitted by the LLVM back-end), and versions will count up to 255 (unsigned char). This change is in preparation for supporting the newer version of the custom event sleds that will be emitted by the LLVM compiler. While we're here, we take the opportunity to stash more registers and align the stack properly in the __xray_CustomEvent trampoline. Reviewers: kpw, pcc, dblaikie Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D36816 llvm-svn: 311524
Diffstat (limited to 'compiler-rt/lib/xray/xray_interface_internal.h')
-rw-r--r--compiler-rt/lib/xray/xray_interface_internal.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler-rt/lib/xray/xray_interface_internal.h b/compiler-rt/lib/xray/xray_interface_internal.h
index 4a2784612fc..5811e2b7300 100644
--- a/compiler-rt/lib/xray/xray_interface_internal.h
+++ b/compiler-rt/lib/xray/xray_interface_internal.h
@@ -28,13 +28,15 @@ struct XRaySledEntry {
uint64_t Function;
unsigned char Kind;
unsigned char AlwaysInstrument;
- unsigned char Padding[14]; // Need 32 bytes
+ unsigned char Version;
+ unsigned char Padding[13]; // Need 32 bytes
#elif SANITIZER_WORDSIZE == 32
uint32_t Address;
uint32_t Function;
unsigned char Kind;
unsigned char AlwaysInstrument;
- unsigned char Padding[6]; // Need 16 bytes
+ unsigned char Version;
+ unsigned char Padding[5]; // Need 16 bytes
#else
#error "Unsupported word size."
#endif
OpenPOWER on IntegriCloud