| /llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/ |
| H A D | tsan_rtl_access.cpp | 248 const m128 same = _mm_cmpeq_epi32(shadow, access); in ContainsSameAccess() 268 const m128 ro = _mm_cmpeq_epi32(shadow, read_mask); in ContainsSameAccess() 283 old = _mm_extract_epi32(shadow, 0); in DoReportRaceV() 286 old = _mm_extract_epi32(shadow, 1); in DoReportRaceV() 289 old = _mm_extract_epi32(shadow, 2); in DoReportRaceV() 292 old = _mm_extract_epi32(shadow, 3); in DoReportRaceV() 312 const m128 access_and = _mm_and_si128(access, shadow); in CheckRaces() 313 const m128 access_xor = _mm_xor_si128(access, shadow); in CheckRaces() 340 _mm_cmpeq_epi32(_mm_max_epu32(shadow, access_read_atomic), shadow); in CheckRaces() 345 const m128 empty = _mm_cmpeq_epi32(shadow, zero); in CheckRaces() [all …]
|
| /llvm-project-15.0.7/compiler-rt/lib/hwasan/ |
| H A D | hwasan_dynamic_shadow.cpp | 51 const uptr shadow = reinterpret_cast<uptr>(&__hwasan_shadow); in IsPremapShadowAvailable() local 55 return shadow != 0 && shadow != resolver; in IsPremapShadowAvailable() 75 static __sanitizer::uptr shadow = 0; in __hwasan_premap_shadow() local 76 if (!shadow) in __hwasan_premap_shadow() 77 shadow = __hwasan::PremapShadow(); in __hwasan_premap_shadow() 78 return reinterpret_cast<decltype(__hwasan_shadow)*>(shadow); in __hwasan_premap_shadow()
|
| /llvm-project-15.0.7/clang/test/Modules/ |
| H A D | shadow.m | 2 …s -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs/shadow/A1 -I %S/Inputs/shadow/A2 %s … 3 …les-cache-path=%t -fmodule-map-file=%S/Inputs/shadow/A1/module.modulemap -fmodule-map-file=%S/Inpu… 7 … -fmodules-cache-path=%t -fmodule-map-file=%S/Inputs/shadow/A1/module.modulemap -I %S/Inputs/shado…
|
| /llvm-project-15.0.7/llvm/test/Instrumentation/MemorySanitizer/ |
| H A D | msan_kernel_basic.ll | 48 ; Load the shadow of %p and check it 77 ; Load the shadow of %p and check it 109 ; Load the shadow of %p and check it 140 ; Load the shadow of %p and check it 171 ; Load the shadow of %p and check it 205 ; Load the shadow of %p and check it 214 ; Load the shadow and origin. 240 ; Load the shadow and origin. 266 ; Load the shadow and origin. 291 ; Load the shadow and origin. [all …]
|
| H A D | manual-shadow.ll | 3 ; RUN: opt < %s -msan-shadow-base 3735928559 -S -passes=msan 2>&1 | FileCheck \ 5 ; RUN: opt < %s -msan-shadow-base 3735928559 -msan-and-mask 4294901760 -S \ 7 ; RUN: opt < %s -msan-shadow-base 3735928559 -msan-xor-mask 48879 -S \ 9 ; RUN: opt < %s -msan-shadow-base 3735928559 -msan-xor-mask 48879 \
|
| H A D | atomics.ll | 11 ; atomicrmw xchg: store clean shadow, return clean shadow 41 ; cmpxchg: the same as above, but also check %a shadow 79 ; atomic load: preserve alignment, load shadow value after app value 94 ; atomic load: preserve alignment, load shadow value after app value 139 ; atomic store: preserve alignment, store clean shadow value before app value 154 ; atomic store: preserve alignment, store clean shadow value before app value
|
| H A D | msan_basic.ll | 103 ; Check that we store the shadow for the retval. 113 ; Check that we get the shadow for the retval. 128 ; Check that we generate PHIs for shadow. 155 ; Compute shadow for "x << 10" 289 ; Check that we propagate shadow for "select" 337 ; mixed into the result shadow. 417 ; (2nd arg shadow is checked, 1st arg shadow is propagated) 449 ; Check that fneg simply propagates shadow. 867 ; Test argument shadow alignment 890 ; First element shadow [all …]
|
| H A D | check-constant-shadow.ll | 1 ; RUN: opt < %s -msan-check-access-address=0 -msan-check-constant-shadow=1 \ 21 ; Expect 2 stores: one for the shadow (0), one for the value (42), but no origin. 38 ; Expect 3 stores: shadow, value and origin.
|
| H A D | msan_x86_bts_asm.ll | 32 ; This test makes sure that the conservative mode unpoisons the shadow of |bit| 80 ; Calculating the shadow offset of %bit. 88 ; Now load the shadow value for the boolean. 92 ; Is the shadow poisoned?
|
| /llvm-project-15.0.7/compiler-rt/lib/msan/ |
| H A D | msan.h | 64 #define SHADOW_TO_ORIGIN(shadow) (((uptr)(shadow)) + 0x2000000000ULL) argument 159 # define SHADOW_TO_ORIGIN(shadow) (((uptr)(shadow)) + 0x1000000000ULL) argument 182 #define SHADOW_TO_ORIGIN(shadow) (((uptr)(shadow)) + 0x140000000000ULL) argument 196 #define SHADOW_TO_ORIGIN(shadow) (((uptr)(shadow)) + 0x140000000000ULL) argument 217 #define SHADOW_TO_ORIGIN(shadow) (((uptr)(shadow)) + 0x500000000000) argument 238 #define SHADOW_TO_ORIGIN(shadow) (((uptr)(shadow)) + 0x280000000000) argument
|
| /llvm-project-15.0.7/clang/docs/ |
| H A D | ShadowCallStack.rst | 14 to a separately allocated 'shadow call stack' in the function prolog in 15 non-leaf functions and loading the return address from the shadow call stack 32 To optimize for memory consumption and cache locality, the shadow call 69 leaking the shadow call stack address. 95 call stack, meaning that references to the shadow call stack do not have 100 to discover the address of the shadow call stack. 106 Unless care is taken when allocating the shadow call stack, it may be 121 The runtime will need the address of the shadow call stack in order to 137 ``jmp_buf``, which requires the address of the shadow call stack to be 171 ``__attribute__((no_sanitize("shadow-call-stack")))`` [all …]
|
| H A D | HardwareAssistedAddressSanitizerDesign.rst | 15 tags every 8 bytes of the application memory with a 1 byte tag (using *shadow memory*), 18 The redzones, the quarantine, and, to a less extent, the shadow, are the 39 * The memory for the object is also tagged with `T` (using a `TG=>1` shadow memory) 49 of a short granule is stored at the location in shadow memory where the 54 * the pointer tag is equal to the memory tag in shadow memory, or 55 * the shadow memory tag is actually a short granule size, the value being loaded 92 adrp x20, :got:__hwasan_shadow // load shadow address from GOT into x20 95 … // (arguments: x0 = address, x20 = shadow base; 103 sbfx x16, x0, #4, #52 // shadow offset 104 ldrb w16, [x20, x16] // load shadow tag [all …]
|
| /llvm-project-15.0.7/compiler-rt/lib/asan/ |
| H A D | asan_poisoning.h | 80 u8 *shadow = (u8*)MEM_TO_SHADOW(aligned_addr); in FastPoisonShadowPartialRightRedzone() local 81 for (uptr i = 0; i < redzone_size; i += ASAN_SHADOW_GRANULARITY, shadow++) { in FastPoisonShadowPartialRightRedzone() 83 *shadow = 0; // fully addressable in FastPoisonShadowPartialRightRedzone() 85 *shadow = in FastPoisonShadowPartialRightRedzone() 89 *shadow = poison_partial ? static_cast<u8>(size - i) : 0; in FastPoisonShadowPartialRightRedzone()
|
| H A D | asan_premap_shadow.cpp | 40 uptr shadow = reinterpret_cast<uptr>(&__asan_shadow); in PremapShadowFailed() local 44 if (shadow == 0 || shadow == resolver) in PremapShadowFailed()
|
| H A D | asan_descriptions.h | 199 ShadowAddressDescription shadow; member 223 return data.shadow.addr; in Address() 239 return data.shadow.Print(); 254 return data.kind == kAddressKindShadow ? &data.shadow : nullptr; in AsShadow()
|
| /llvm-project-15.0.7/llvm/test/Instrumentation/AddressSanitizer/ |
| H A D | force-dynamic-shadow.ll | 1 ; Test -asan-force-dynamic-shadow flag. 3 ; RUN: opt -passes='asan-pipeline' -S -asan-force-dynamic-shadow=1 < %s | FileCheck %s --check-pref… 4 ; RUN: opt -passes='asan-pipeline' -S -asan-force-dynamic-shadow=0 < %s | FileCheck %s --check-pref… 9 ; First instrumentation in the function must be to load the dynamic shadow
|
| H A D | dynamic-shadow-darwin.ll | 1 ; Test using dynamic shadow address on darwin 11 ; // macOS does not use dynamic shadow placement on x86_64 13 ; // macOS does use dynamic shadow placement on arm64 17 ; First instrumentation in the function must be to load the dynamic shadow
|
| /llvm-project-15.0.7/llvm/test/CodeGen/SystemZ/ |
| H A D | stackmap-shadow-optimization.ll | 3 ; Check that the stackmap shadow optimization is only outputting a 2-byte 6 ; stackmap shadow as the call return counts as a branch target so must flush 7 ; the shadow. 9 ; the call must be at the end of the shadow, so the required nop must be
|
| /llvm-project-15.0.7/llvm/test/CodeGen/X86/ |
| H A D | stackmap-shadow-optimization.ll | 3 ; Check that the X86 stackmap shadow optimization is only outputting a 3-byte 6 ; stackmap shadow as the call return counts as a branch target so must flush 7 ; the shadow. 9 ; the call must be at the end of the shadow, so the required nop must be
|
| /llvm-project-15.0.7/llvm/test/Instrumentation/HWAddressSanitizer/ |
| H A D | basic.ll | 21 ; RECOVER-DYNAMIC-SHADOW: %[[E:[^ ]*]] = getelementptr i8, i8* %.hwasan.shadow, i64 %4 54 ; ABORT: call void @llvm.hwasan.check.memaccess.shortgranules(i8* %.hwasan.shadow, i8* %a, i32 0) 71 ; RECOVER-DYNAMIC-SHADOW: %[[E:[^ ]*]] = getelementptr i8, i8* %.hwasan.shadow, i64 %4 122 ; RECOVER-DYNAMIC-SHADOW: %[[E:[^ ]*]] = getelementptr i8, i8* %.hwasan.shadow, i64 %4 149 ; RECOVER-DYNAMIC-SHADOW: %[[E:[^ ]*]] = getelementptr i8, i8* %.hwasan.shadow, i64 %4 176 ; RECOVER-DYNAMIC-SHADOW: %[[E:[^ ]*]] = getelementptr i8, i8* %.hwasan.shadow, i64 %4 216 ; RECOVER-DYNAMIC-SHADOW: %[[E:[^ ]*]] = getelementptr i8, i8* %.hwasan.shadow, i64 %4 242 ; RECOVER-DYNAMIC-SHADOW: %[[E:[^ ]*]] = getelementptr i8, i8* %.hwasan.shadow, i64 %4 269 ; RECOVER-DYNAMIC-SHADOW: %[[E:[^ ]*]] = getelementptr i8, i8* %.hwasan.shadow, i64 %4 296 ; RECOVER-DYNAMIC-SHADOW: %[[E:[^ ]*]] = getelementptr i8, i8* %.hwasan.shadow, i64 %4 [all …]
|
| H A D | fuchsia.ll | 1 ; Check HWASan shadow mapping on Fuchsia. 5 ; CHECK: %.hwasan.shadow = call i8* asm "", "=r,0"(i8* null)
|
| /llvm-project-15.0.7/llvm/test/Instrumentation/MemorySanitizer/SystemZ/ |
| H A D | vararg.ll | 18 ; First check if the variadic shadow values are saved in stack with correct 61 ; Save the incoming shadow values from the varargs in the __msan_va_arg_tls 66 ; - r3@24 == i32 zext %arg2 - shadow is zero-extended 67 ; - f0@128 == float %arg3 - left-justified, shadow is 32-bit 68 ; - r4@32 == i32 sext %arg4 - shadow is sign-extended 73 ; - overflow@160 == i32 zext %arg9 - shadow is zero-extended 75 ; - overflow@(168 + 4) == float %arg11 - right-justified, shadow is 32-bit 76 ; - overflow@176 == i32 sext %arg12 - shadow is sign-extended 128 ; Regardless of whether or not fixed args overflow, we should copy a shadow
|
| H A D | vararg-kernel.ll | 38 ; - r3@24 == i32 zext %arg2 - shadow is zero-extended 39 ; - r4@(32 + 4) == float %arg3 - right-justified, shadow is 32-bit 40 ; - r5@40 == i32 sext %arg4 - shadow is sign-extended 45 ; - overflow@184 == i32 zext %arg9 - shadow is zero-extended 47 ; - overflow@(200 + 4) == float %arg11 - right-justified, shadow is 32-bit 48 ; - overflow@208 == i32 sext %arg12 - shadow is sign-extended
|
| /llvm-project-15.0.7/compiler-rt/lib/memprof/ |
| H A D | memprof_flags.inc | 20 "If set, explicitly unmaps the (huge) shadow at exit.") 21 MEMPROF_FLAG(bool, protect_shadow_gap, true, "If set, mprotect the shadow gap") 22 MEMPROF_FLAG(bool, print_legend, true, "Print the legend for the shadow bytes.")
|
| /llvm-project-15.0.7/llvm/test/Instrumentation/MemorySanitizer/AArch64/ |
| H A D | vararg.ll | 18 ; First check if the variadic shadow values are saved in stack with correct 30 ; Propagate the GR shadow values on for the va_list::__gp_top, adjust the 37 ; Propagate the VR shadow values on for the va_list::__vr_top, adjust the 44 ; Copy the remaining shadow values on the va_list::__stack position (it is 61 ; Save the incoming shadow value from the arguments in the __msan_va_arg_tls
|