[compiler-rt] 84dbfe1 - [ASan] Replaced constants for SHADOW_OFFSET with defines.
Kirill Stoimenov via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 7 11:34:29 PST 2021
Author: Kirill Stoimenov
Date: 2021-12-07T19:34:17Z
New Revision: 84dbfe16426f76b425c24291942c71b115b565da
URL: https://github.com/llvm/llvm-project/commit/84dbfe16426f76b425c24291942c71b115b565da
DIFF: https://github.com/llvm/llvm-project/commit/84dbfe16426f76b425c24291942c71b115b565da.diff
LOG: [ASan] Replaced constants for SHADOW_OFFSET with defines.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D115214
Added:
Modified:
compiler-rt/lib/asan/asan_mapping.h
Removed:
################################################################################
diff --git a/compiler-rt/lib/asan/asan_mapping.h b/compiler-rt/lib/asan/asan_mapping.h
index f5248f101f055..5e73caa61bf9f 100644
--- a/compiler-rt/lib/asan/asan_mapping.h
+++ b/compiler-rt/lib/asan/asan_mapping.h
@@ -157,22 +157,6 @@ static const u64 kDefaultShadowScale = ASAN_SHADOW_SCALE;
static const u64 kDefaultShadowScale = 3;
#endif
static const u64 kDefaultShadowSentinel = ~(uptr)0;
-static const u64 kDefaultShadowOffset32 = 1ULL << 29; // 0x20000000
-static const u64 kDefaultShadowOffset64 = 1ULL << 44; // 0x100000000000
-static const u64 kDefaultShort64bitShadowOffset =
- 0x7FFFFFFF & (~0xFFFULL << kDefaultShadowScale); // < 2G.
-static const u64 kAArch64_ShadowOffset64 = 1ULL << 36; // 0x1000000000
-static const u64 kRiscv64_ShadowOffset64 = 0xd55550000;
-static const u64 kMIPS32_ShadowOffset32 = 0x0aaa0000;
-static const u64 kMIPS64_ShadowOffset64 = 1ULL << 37; // 0x2000000000
-static const u64 kPPC64_ShadowOffset64 = 1ULL << 44; // 0x100000000000
-static const u64 kSystemZ_ShadowOffset64 = 1ULL << 52; // 0x10000000000000
-static const u64 kSPARC64_ShadowOffset64 = 1ULL << 43; // 0x80000000000
-static const u64 kFreeBSD_ShadowOffset32 = 1ULL << 30; // 0x40000000
-static const u64 kFreeBSD_ShadowOffset64 = 1ULL << 46; // 0x400000000000
-static const u64 kNetBSD_ShadowOffset32 = 1ULL << 30; // 0x40000000
-static const u64 kNetBSD_ShadowOffset64 = 1ULL << 46; // 0x400000000000
-static const u64 kWindowsShadowOffset32 = 3ULL << 28; // 0x30000000
#define SHADOW_SCALE kDefaultShadowScale
@@ -182,17 +166,17 @@ static const u64 kWindowsShadowOffset32 = 3ULL << 28; // 0x30000000
# if SANITIZER_ANDROID
# define SHADOW_OFFSET_DYNAMIC
# elif defined(__mips__)
-# define SHADOW_OFFSET_CONST kMIPS32_ShadowOffset32
+# define SHADOW_OFFSET_CONST 0x0aaa0000
# elif SANITIZER_FREEBSD
-# define SHADOW_OFFSET_CONST kFreeBSD_ShadowOffset32
+# define SHADOW_OFFSET_CONST 0x40000000
# elif SANITIZER_NETBSD
-# define SHADOW_OFFSET_CONST kNetBSD_ShadowOffset32
+# define SHADOW_OFFSET_CONST 0x40000000
# elif SANITIZER_WINDOWS
-# define SHADOW_OFFSET_CONST kWindowsShadowOffset32
+# define SHADOW_OFFSET_CONST 0x30000000
# elif SANITIZER_IOS
# define SHADOW_OFFSET_DYNAMIC
# else
-# define SHADOW_OFFSET_CONST kDefaultShadowOffset32
+# define SHADOW_OFFSET_CONST 0x20000000
# endif
#else
# if SANITIZER_IOS
@@ -200,34 +184,38 @@ static const u64 kWindowsShadowOffset32 = 3ULL << 28; // 0x30000000
# elif SANITIZER_MAC && defined(__aarch64__)
# define SHADOW_OFFSET_DYNAMIC
# elif SANITIZER_RISCV64
-# define SHADOW_OFFSET_CONST kRiscv64_ShadowOffset64
+# define SHADOW_OFFSET_CONST 0x0000000d55550000
# elif defined(__aarch64__)
-# define SHADOW_OFFSET_CONST kAArch64_ShadowOffset64
+# define SHADOW_OFFSET_CONST 0x0000001000000000
# elif defined(__powerpc64__)
-# define SHADOW_OFFSET_CONST kPPC64_ShadowOffset64
+# define SHADOW_OFFSET_CONST 0x0000100000000000
# elif defined(__s390x__)
-# define SHADOW_OFFSET_CONST kSystemZ_ShadowOffset64
+# define SHADOW_OFFSET_CONST 0x0010000000000000
# elif SANITIZER_FREEBSD
-# define SHADOW_OFFSET_CONST kFreeBSD_ShadowOffset64
+# define SHADOW_OFFSET_CONST 0x0000400000000000
# elif SANITIZER_NETBSD
-# define SHADOW_OFFSET_CONST kNetBSD_ShadowOffset64
+# define SHADOW_OFFSET_CONST 0x0000400000000000
# elif SANITIZER_MAC
-# define SHADOW_OFFSET_CONST kDefaultShadowOffset64
+# define SHADOW_OFFSET_CONST 0x0000100000000000
# elif defined(__mips64)
-# define SHADOW_OFFSET_CONST kMIPS64_ShadowOffset64
+# define SHADOW_OFFSET_CONST 0x0000002000000000
# elif defined(__sparc__)
-# define SHADOW_OFFSET_CONST kSPARC64_ShadowOffset64
+# define SHADOW_OFFSET_CONST 0x0000080000000000
# elif SANITIZER_WINDOWS64
# define SHADOW_OFFSET_DYNAMIC
# else
-# define SHADOW_OFFSET_CONST kDefaultShort64bitShadowOffset
+# define SHADOW_OFFSET_CONST \
+ 0x000000007FFFFFFF & (~0xFFFULL << kDefaultShadowScale)
# endif
#endif
#if defined(SHADOW_OFFSET_CONST)
-# define SHADOW_OFFSET SHADOW_OFFSET_CONST
+static const u64 kConstShadowOffset = SHADOW_OFFSET_CONST;
+# define SHADOW_OFFSET kConstShadowOffset
#elif defined(SHADOW_OFFSET_DYNAMIC)
# define SHADOW_OFFSET __asan_shadow_memory_dynamic_address
+#else
+# error "SHADOW_OFFSET can't be determined."
#endif
#if SANITIZER_ANDROID && defined(__arm__)
More information about the llvm-commits
mailing list