[hwasan] Fix inline instrumentation.
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 21 Feb 2018 19:52:23 +0000 (19:52 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 21 Feb 2018 19:52:23 +0000 (19:52 +0000)
commit43271b18031b0812d5c46b681ec3199fcccb4044
tree2ee5003821f87ac1d83cab0a6951bbd5799cc658
parentb3568ec9287250e0fe7ded71138d35bda2c9482c
[hwasan] Fix inline instrumentation.

This patch changes hwasan inline instrumentation:

Fixes address untagging for shadow address calculation (use 0xFF instead of 0x00 for the top byte).
Emits brk instruction instead of hlt for the kernel and user space.
Use 0x900 instead of 0x100 for brk immediate (0x100 - 0x800 are unavailable in the kernel).
Fixes and adds appropriate tests.

Patch by Andrey Konovalov.

Differential Revision: https://reviews.llvm.org/D43135

llvm-svn: 325711
compiler-rt/lib/hwasan/hwasan.cc
compiler-rt/lib/hwasan/hwasan_linux.cc
compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc
llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
llvm/test/Instrumentation/HWAddressSanitizer/atomic.ll
llvm/test/Instrumentation/HWAddressSanitizer/basic.ll
llvm/test/Instrumentation/HWAddressSanitizer/kernel-alloca.ll
llvm/test/Instrumentation/HWAddressSanitizer/kernel.ll