forked from OSchip/llvm-project
[asan] Add ASAN support for AArch64 42-bit VMA
This patch adds support for asan on aarch64-linux with 42-bit VMA (current default config for 64K pagesize kernels). The support is enabled by defining the SANITIZER_AARCH64_VMA to 42 at build time for both clang/llvm and compiler-rt. The default VMA is 39 bits. llvm-svn: 245594
This commit is contained in:
parent
120de4be96
commit
e00b497242
|
@ -63,6 +63,16 @@ using namespace llvm;
|
|||
|
||||
#define DEBUG_TYPE "asan"
|
||||
|
||||
// VMA size definition for architecture that support multiple sizes.
|
||||
// AArch64 has 3 VMA sizes: 39, 42 and 48.
|
||||
#ifndef SANITIZER_AARCH64_VMA
|
||||
# define SANITIZER_AARCH64_VMA 39
|
||||
#else
|
||||
# if SANITIZER_AARCH64_VMA != 39 && SANITIZER_AARCH64_VMA != 42
|
||||
# error "invalid SANITIZER_AARCH64_VMA size"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
static const uint64_t kDefaultShadowScale = 3;
|
||||
static const uint64_t kDefaultShadowOffset32 = 1ULL << 29;
|
||||
static const uint64_t kIOSShadowOffset32 = 1ULL << 30;
|
||||
|
@ -72,7 +82,11 @@ static const uint64_t kLinuxKasan_ShadowOffset64 = 0xdffffc0000000000;
|
|||
static const uint64_t kPPC64_ShadowOffset64 = 1ULL << 41;
|
||||
static const uint64_t kMIPS32_ShadowOffset32 = 0x0aaa0000;
|
||||
static const uint64_t kMIPS64_ShadowOffset64 = 1ULL << 37;
|
||||
#if SANITIZER_AARCH64_VMA == 39
|
||||
static const uint64_t kAArch64_ShadowOffset64 = 1ULL << 36;
|
||||
#elif SANITIZER_AARCH64_VMA == 42
|
||||
static const uint64_t kAArch64_ShadowOffset64 = 1ULL << 39;
|
||||
#endif
|
||||
static const uint64_t kFreeBSD_ShadowOffset32 = 1ULL << 30;
|
||||
static const uint64_t kFreeBSD_ShadowOffset64 = 1ULL << 46;
|
||||
static const uint64_t kWindowsShadowOffset32 = 3ULL << 28;
|
||||
|
|
Loading…
Reference in New Issue