summaryrefslogtreecommitdiff
path: root/lib/asan/asan_mapping.h
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2012-11-20 07:00:42 +0000
committerKostya Serebryany <kcc@google.com>2012-11-20 07:00:42 +0000
commitd7d4650dd754aafc874e3b8cd5ab5b38005c84ec (patch)
tree50c7f1ca4725693f6cd29cdb416d1eaa80e7e71c /lib/asan/asan_mapping.h
parent031633bef8dff03f4e8943a12e34856bd66bbc78 (diff)
[asan] more support for powerpc, patch by Peter Bergner
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@168356 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/asan/asan_mapping.h')
-rw-r--r--lib/asan/asan_mapping.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/asan/asan_mapping.h b/lib/asan/asan_mapping.h
index 40e32206d..8480bcfd4 100644
--- a/lib/asan/asan_mapping.h
+++ b/lib/asan/asan_mapping.h
@@ -33,7 +33,11 @@ extern __attribute__((visibility("default"))) uptr __asan_mapping_offset;
# if __WORDSIZE == 32
# define SHADOW_OFFSET (1 << 29)
# else
-# define SHADOW_OFFSET (1ULL << 44)
+# if defined(__powerpc64__)
+# define SHADOW_OFFSET (1ULL << 41)
+# else
+# define SHADOW_OFFSET (1ULL << 44)
+# endif
# endif
# endif
#endif // ASAN_FLEXIBLE_MAPPING_AND_OFFSET
@@ -43,7 +47,11 @@ extern __attribute__((visibility("default"))) uptr __asan_mapping_offset;
#define SHADOW_TO_MEM(shadow) (((shadow) - SHADOW_OFFSET) << SHADOW_SCALE)
#if __WORDSIZE == 64
+# if defined(__powerpc64__)
+ static const uptr kHighMemEnd = 0x00000fffffffffffUL;
+# else
static const uptr kHighMemEnd = 0x00007fffffffffffUL;
+# endif
#else // __WORDSIZE == 32
static const uptr kHighMemEnd = 0xffffffff;
#endif // __WORDSIZE