diff options
author | Dean Michael Berris <dberris@google.com> | 2017-08-23 04:42:37 +0000 |
---|---|---|
committer | Dean Michael Berris <dberris@google.com> | 2017-08-23 04:42:37 +0000 |
commit | 71f88a955d30645d082ddd42d2215226f3ea8744 (patch) | |
tree | 6fa52db52ddb2a3536249411f12c0818525bd01b /compiler-rt/lib/xray/xray_interface_internal.h | |
parent | c4ea1010c1be3bb9cfb4772fbd69d02703ad7da6 (diff) | |
download | bcm5719-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.h | 6 |
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 |