Yuri Gorshenin
75bb472c06
[asan-asm-instrumentation] Added comment describing how asm instrumentation works.
...
Summary: [asan-asm-instrumentation] Added comment describing how asm instrumentation works.
Reviewers: eugenis
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5970
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220670 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-27 08:38:54 +00:00
NAKAMURA Takumi
c65b578e25
X86AsmInstrumentation.cpp: Dissolve initializer-ranged-for. MSC17 disliked it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220301 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-21 16:22:52 +00:00
Yuri Gorshenin
7ffc5bb51a
[asan-asm-instrumentation] Fixed memory accesses with rbp as a base or an index register.
...
Summary: Fixed memory accesses with rbp as a base or an index register.
Reviewers: eugenis
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5819
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220283 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-21 10:22:27 +00:00
Yuri Gorshenin
ec8aeb0bc1
[asan-asm-instrumentation] Follow-up fixes to r219602: asserts are moved into
...
function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219610 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-13 11:44:06 +00:00
Yuri Gorshenin
eba0a96f8e
[asan-asm-instrumentation] Fixed memory references which includes %rsp as a base or an index register.
...
Summary: [asan-asm-instrumentation] Fixed memory references which includes %rsp as a base or an index register.
Reviewers: eugenis
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5599
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219602 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-13 09:37:47 +00:00
Yuri Gorshenin
86e0844d1c
[asan-asm-instrumentation] CFI directives are generated for .S files.
...
Summary: CFI directives are generated for .S files.
Reviewers: eugenis
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5520
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219199 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-07 11:03:09 +00:00
Yuri Gorshenin
ca31084292
[asan-assembly-instrumentation] Added CFI directives to the generated instrumentation code.
...
Summary: [asan-assembly-instrumentation] Added CFI directives to the generated instrumentation code.
Reviewers: eugenis
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5189
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217482 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-10 09:45:49 +00:00
Yuri Gorshenin
861eddb266
[asan-assembly-instrumentation] Prologue and epilogue are moved out from InstrumentMemOperand().
...
Reviewers: eugenis
Subscribers: llvm-commits
Differential revision: http://reviews.llvm.org/D4923
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216879 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-01 12:51:00 +00:00
Yuri Gorshenin
c642ad9546
Revert "[asan-assembly-instrumentation] Prologue and epilogue are moved out from InstrumentMemOperand()."
...
This reverts commit 895aa397038b8de86d83ac0997a70949a486e112.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216872 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-01 10:24:04 +00:00
Yuri Gorshenin
895aa39703
[asan-assembly-instrumentation] Prologue and epilogue are moved out from InstrumentMemOperand().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216869 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-01 09:56:45 +00:00
Evgeniy Stepanov
fda6b888a9
Clang-format over X86AsmInstrumentation.* with LLVM style.
...
r216536 mistakenly used -style=Google instead of LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216543 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-27 13:11:55 +00:00
Evgeniy Stepanov
08cb02e91a
Clang-format over X86AsmInstrumentation.*.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216536 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-27 11:10:54 +00:00
Evgeniy Stepanov
8a78bb9836
[asan] Support x86 REP MOVS asm instrumentation.
...
Patch by Yuri Gorshenin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214395 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-31 09:11:04 +00:00
Evgeniy Stepanov
5ba71b01d8
[asan] Generate asm instrumentation in MC.
...
Generate entire ASan asm instrumentation in MC without
relying on runtime helper functions.
Patch by Yuri Gorshenin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212455 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-07 13:57:37 +00:00
David Blaikie
c50f986b4d
AsmMatchers: Use unique_ptr to manage ownership of MCParsedAsmOperand
...
I saw at least a memory leak or two from inspection (on probably
untested error paths) and r206991, which was the original inspiration
for this change.
I ran this idea by Jim Grosbach a few weeks ago & he was OK with it.
Since it's a basically mechanical patch that seemed sufficient - usual
post-commit review, revert, etc, as needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210427 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-08 16:18:35 +00:00
Evgeniy Stepanov
c0e669384d
[asan] Fix x86-32 asm instrumentation to preserve flags.
...
Patch by Yuri Gorshenin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209280 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-21 08:14:24 +00:00
Benjamin Kramer
d8d1a7c950
[asan] Stop leaking X86Operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208400 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-09 09:48:03 +00:00
Evgeniy Stepanov
89329e902c
[asan] Preserve flags in asm instrumentation.
...
Patch by Yuri Gorshenin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208296 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-08 09:55:24 +00:00
Evgeniy Stepanov
227c4c6185
[asan] Add a flag to control asm instrumentation.
...
With this change, asm instrumentation is disabled by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208167 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-07 07:54:11 +00:00
Evgeniy Stepanov
55f8c07504
[asan] Disable asm instrumentation on unsupported platforms.
...
Only emit calls to compiler-rt asm routines on platforms where they are
present (currently limited to linux i386/x86_64).
Patch by Yuri Gorshenin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207651 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-30 14:04:31 +00:00
Evgeniy Stepanov
23a4885f59
[asan] Use MCInstrInfo in inline asm instrumentation.
...
Patch by Yuri Gorshenin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207115 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-24 13:29:34 +00:00
Evgeniy Stepanov
fd46b84ddd
[asan] Fix instrumentation of x86 intel syntax inline assembly.
...
Patch by Yuri Gorshenin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207092 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-24 09:56:15 +00:00
Evgeniy Stepanov
d6af41b2eb
Create MCTargetOptions.
...
For now it contains a single flag, SanitizeAddress, which enables
AddressSanitizer instrumentation of inline assembly.
Patch by Yuri Gorshenin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206971 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-23 11:16:03 +00:00
Evgeniy Stepanov
bf7cc396c6
AddressSanitizer instrumentation for MOV and MOVAPS.
...
This is an initial version of *Sanitizer instrumentation of assembly code.
Patch by Yuri Gorshenin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203908 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-14 08:58:04 +00:00