summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Lettner <jlettner@apple.com>2019-07-13 00:55:06 +0000
committerJulian Lettner <jlettner@apple.com>2019-07-13 00:55:06 +0000
commite2e4f5497eafbafcc1852495c8ce81585909edbe (patch)
treeda84faf5e3b6c28fbee8c1cfa73756ddb32d99e6
parenta2ee72c80c1b6911a9aa3538d8b34d6efae15b15 (diff)
downloadcompiler-rt-e2e4f5497eafbafcc1852495c8ce81585909edbe.tar.gz
[TSan] Tiny cleanup of UnmangleLongJmpSp for Linux/x86_64
NFC. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@365982 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/tsan/rtl/tsan_platform_linux.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/tsan/rtl/tsan_platform_linux.cc b/lib/tsan/rtl/tsan_platform_linux.cc
index 5d9284c52..0f23da0e8 100644
--- a/lib/tsan/rtl/tsan_platform_linux.cc
+++ b/lib/tsan/rtl/tsan_platform_linux.cc
@@ -373,9 +373,7 @@ int ExtractRecvmsgFDs(void *msgp, int *fds, int nfd) {
// Reverse operation of libc stack pointer mangling
static uptr UnmangleLongJmpSp(uptr mangled_sp) {
#if defined(__x86_64__)
-# if SANITIZER_FREEBSD || SANITIZER_NETBSD
- return mangled_sp;
-# else // Linux
+# if SANITIZER_LINUX
// Reverse of:
// xor %fs:0x30, %rsi
// rol $0x11, %rsi
@@ -385,6 +383,8 @@ static uptr UnmangleLongJmpSp(uptr mangled_sp) {
: "=r" (sp)
: "0" (mangled_sp));
return sp;
+# else
+ return mangled_sp;
# endif
#elif defined(__aarch64__)
# if SANITIZER_LINUX
@@ -394,11 +394,11 @@ static uptr UnmangleLongJmpSp(uptr mangled_sp) {
# endif
#elif defined(__powerpc64__)
// Reverse of:
- // ld r4, -28696(r13)
- // xor r4, r3, r4
- uptr xor_guard;
- asm("ld %0, -28696(%%r13) \n" : "=r" (xor_guard));
- return mangled_sp ^ xor_guard;
+ // ld r4, -28696(r13)
+ // xor r4, r3, r4
+ uptr xor_key;
+ asm("ld %0, -28696(%%r13)" : "=r" (xor_key));
+ return mangled_sp ^ xor_key;
#elif defined(__mips__)
return mangled_sp;
#else