summaryrefslogtreecommitdiff
path: root/lib/tsan/rtl/tsan_rtl_aarch64.S
AgeCommit message (Collapse)Author
2017-11-29[sanitizer] Refactor how assembly files are handledKuba Mracek
This renames ASM_TSAN_SYMBOL and ASM_TSAN_SYMBOL_INTERCEPTOR to just ASM_SYMBOL and ASM_SYMBOL_INTERCEPTOR, because they can be useful in more places than just TSan. Also introduce a CMake function to add ASM sources to a target. Differential Revision: https://reviews.llvm.org/D40143 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@319339 91177308-0d34-0410-b5e6-96231b3b80d8
2017-07-10Fix a build failure due to r307541 (tsan_rtl_aarch64.S:54: Error: unknown ↵Kuba Mracek
pseudo-op: `.'). git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@307549 91177308-0d34-0410-b5e6-96231b3b80d8
2017-07-10[tsan] Port setjmp/longjmp assembly to Darwin/AArch64Kuba Mracek
This patch ports the assembly file implementing TSan's setjmp support to AArch64 on Darwin. Differential Revision: https://reviews.llvm.org/D35143 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@307541 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-10tsan: Remove __pointer_chk_guard@GLIBC_PRIVATE requirement for AArch64Adhemerval Zanella
Current AArch64 {sig}{set,long}jmp interposing requires accessing glibc private __pointer_chk_guard to get process xor mask to demangled the internal {sig}jmp_buf function pointers. It causes some packing issues, as described in gcc PR#71042 [1], and is is not a godd practice to rely on a private glibc namespace (since ABI is not meant to be stable). This patch fixes it by changing how libtsan obtains the guarded pointer value: at initialization a specific routine issues a setjmp call and using the mangled function pointer and the original value derive the random guarded pointer. Checked on aarch64 39-bit VMA. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71042 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@278292 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16[compiler-rt] [tsan] Enable intercept setjmp/longjmp for AArch64Adhemerval Zanella
This patch adds assembly routines to enable setjmp/longjmp for aarch64 on linux. It fixes: * test/tsan/longjmp2.cc * test/tsan/longjmp3.cc * test/tsan/longjmp4.cc * test/tsan/signal_longjmp.cc I also checked with perlbench from specpu2006 (it fails to run with missing setjmp/longjmp intrumentation). git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@253205 91177308-0d34-0410-b5e6-96231b3b80d8