| OLD | NEW |
| 1 //===- subzero/runtime/szrt_asan.c - AddressSanitizer Runtime -----*- C -*-===// | 1 //===- subzero/runtime/szrt_asan.c - AddressSanitizer Runtime -----*- C -*-===// |
| 2 // | 2 // |
| 3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 /// | 9 /// |
| 10 /// \file | 10 /// \file |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 while (__sync_swap((mutex), 1) != 0) { \ | 43 while (__sync_swap((mutex), 1) != 0) { \ |
| 44 sched_yield(); \ | 44 sched_yield(); \ |
| 45 } | 45 } |
| 46 #define MUTEX_UNLOCK(mutex) (__sync_swap((mutex), 0)) | 46 #define MUTEX_UNLOCK(mutex) (__sync_swap((mutex), 0)) |
| 47 | 47 |
| 48 #endif // _POSIX_THREADS | 48 #endif // _POSIX_THREADS |
| 49 | 49 |
| 50 #define RZ_SIZE (32) | 50 #define RZ_SIZE (32) |
| 51 #define SHADOW_SCALE_LOG2 (3) | 51 #define SHADOW_SCALE_LOG2 (3) |
| 52 #define SHADOW_SCALE ((size_t)1 << SHADOW_SCALE_LOG2) | 52 #define SHADOW_SCALE ((size_t)1 << SHADOW_SCALE_LOG2) |
| 53 #define DEBUG (1) | 53 #define DEBUG (0) |
| 54 | 54 |
| 55 // Assuming 48 bit address space on 64 bit systems | 55 // Assuming 48 bit address space on 64 bit systems |
| 56 #define SHADOW_LENGTH_64 (1u << (48 - SHADOW_SCALE_LOG2)) | 56 #define SHADOW_LENGTH_64 (1u << (48 - SHADOW_SCALE_LOG2)) |
| 57 #define SHADOW_LENGTH_32 (1u << (32 - SHADOW_SCALE_LOG2)) | 57 #define SHADOW_LENGTH_32 (1u << (32 - SHADOW_SCALE_LOG2)) |
| 58 #define WORD_SIZE (sizeof(uint32_t)) | 58 #define WORD_SIZE (sizeof(uint32_t)) |
| 59 #define IS_32_BIT (sizeof(void *) == WORD_SIZE) | 59 #define IS_32_BIT (sizeof(void *) == WORD_SIZE) |
| 60 | 60 |
| 61 #define SHADOW_OFFSET(p) ((uintptr_t)(p) % SHADOW_SCALE) | 61 #define SHADOW_OFFSET(p) ((uintptr_t)(p) % SHADOW_SCALE) |
| 62 #define IS_SHADOW_ALIGNED(p) (SHADOW_OFFSET(p) == 0) | 62 #define IS_SHADOW_ALIGNED(p) (SHADOW_OFFSET(p) == 0) |
| 63 | 63 |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 void __asan_unpoison(char *ptr, int size) { | 305 void __asan_unpoison(char *ptr, int size) { |
| 306 char *end = ptr + size; | 306 char *end = ptr + size; |
| 307 assert(IS_SHADOW_ALIGNED(end)); | 307 assert(IS_SHADOW_ALIGNED(end)); |
| 308 DUMP("unpoison %d bytes at %p: %p - %p\n", size, ptr, MEM2SHADOW(ptr), | 308 DUMP("unpoison %d bytes at %p: %p - %p\n", size, ptr, MEM2SHADOW(ptr), |
| 309 MEM2SHADOW(end)); | 309 MEM2SHADOW(end)); |
| 310 *(char *)MEM2SHADOW(ptr) = 0; | 310 *(char *)MEM2SHADOW(ptr) = 0; |
| 311 ptr += SHADOW_OFFSET(size); | 311 ptr += SHADOW_OFFSET(size); |
| 312 assert(IS_SHADOW_ALIGNED(ptr)); | 312 assert(IS_SHADOW_ALIGNED(ptr)); |
| 313 memset(MEM2SHADOW(ptr), 0, (end - ptr) >> SHADOW_SCALE_LOG2); | 313 memset(MEM2SHADOW(ptr), 0, (end - ptr) >> SHADOW_SCALE_LOG2); |
| 314 } | 314 } |
| OLD | NEW |