|
72 | 72 | // || `[0x2000000000, 0x23ffffffff]` || LowShadow ||
|
73 | 73 | // || `[0x0000000000, 0x1fffffffff]` || LowMem ||
|
74 | 74 | //
|
| 75 | +// Default Linux/RISCV64 Sv39 mapping: |
| 76 | +// || `[0x1555550000, 0x3fffffffff]` || HighMem || |
| 77 | +// || `[0x0fffffa000, 0x1555555fff]` || HighShadow || |
| 78 | +// || `[0x0effffa000, 0x0fffff9fff]` || ShadowGap || |
| 79 | +// || `[0x0d55550000, 0x0effff9fff]` || LowShadow || |
| 80 | +// || `[0x0000000000, 0x0d5554ffff]` || LowMem || |
| 81 | +// |
75 | 82 | // Default Linux/AArch64 (39-bit VMA) mapping:
|
76 | 83 | // || `[0x2000000000, 0x7fffffffff]` || highmem ||
|
77 | 84 | // || `[0x1400000000, 0x1fffffffff]` || highshadow ||
|
78 | 85 | // || `[0x1200000000, 0x13ffffffff]` || shadowgap ||
|
79 | 86 | // || `[0x1000000000, 0x11ffffffff]` || lowshadow ||
|
80 | 87 | // || `[0x0000000000, 0x0fffffffff]` || lowmem ||
|
81 | 88 | //
|
82 |
| -// RISC-V has only 38 bits for task size |
83 |
| -// Low mem size is set with kRiscv64_ShadowOffset64 in |
84 |
| -// compiler-rt/lib/asan/asan_allocator.h and in |
85 |
| -// llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp with |
86 |
| -// kRiscv64_ShadowOffset64, High mem top border is set with |
87 |
| -// GetMaxVirtualAddress() in |
88 |
| -// compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp |
89 |
| -// Default Linux/RISCV64 Sv39/Sv48 mapping: |
90 |
| -// || `[0x000820000000, 0x003fffffffff]` || HighMem || |
91 |
| -// || `[0x000124000000, 0x00081fffffff]` || HighShadow || |
92 |
| -// || `[0x000024000000, 0x000123ffffff]` || ShadowGap || |
93 |
| -// || `[0x000020000000, 0x000023ffffff]` || LowShadow || |
94 |
| -// || `[0x000000000000, 0x00001fffffff]` || LowMem || |
95 |
| -// |
96 | 89 | // Default Linux/AArch64 (42-bit VMA) mapping:
|
97 | 90 | // || `[0x10000000000, 0x3ffffffffff]` || highmem ||
|
98 | 91 | // || `[0x0a000000000, 0x0ffffffffff]` || highshadow ||
|
@@ -175,7 +168,7 @@ static const u64 kDefaultShadowOffset64 = 1ULL << 44;
|
175 | 168 | static const u64 kDefaultShort64bitShadowOffset =
|
176 | 169 | 0x7FFFFFFF & (~0xFFFULL << kDefaultShadowScale); // < 2G.
|
177 | 170 | static const u64 kAArch64_ShadowOffset64 = 1ULL << 36;
|
178 |
| -static const u64 kRiscv64_ShadowOffset64 = 0x20000000; |
| 171 | +static const u64 kRiscv64_ShadowOffset64 = 0xd55550000; |
179 | 172 | static const u64 kMIPS32_ShadowOffset32 = 0x0aaa0000;
|
180 | 173 | static const u64 kMIPS64_ShadowOffset64 = 1ULL << 37;
|
181 | 174 | static const u64 kPPC64_ShadowOffset64 = 1ULL << 44;
|
|
0 commit comments