diff options
| author | Yuri Gorshenin <ygorshenin@google.com> | 2014-09-01 12:51:00 +0000 |
|---|---|---|
| committer | Yuri Gorshenin <ygorshenin@google.com> | 2014-09-01 12:51:00 +0000 |
| commit | c107d147dccbf55d32eeb877f6dabd2e8d8743b6 (patch) | |
| tree | eb29ce7070c9d69e06c652749f325fc00a3d07a8 /llvm/test | |
| parent | 34fb3799a37dc3cb41803aaee04b6912abd57219 (diff) | |
| download | bcm5719-llvm-c107d147dccbf55d32eeb877f6dabd2e8d8743b6.tar.gz bcm5719-llvm-c107d147dccbf55d32eeb877f6dabd2e8d8743b6.zip | |
[asan-assembly-instrumentation] Prologue and epilogue are moved out from InstrumentMemOperand().
Reviewers: eugenis
Subscribers: llvm-commits
Differential revision: http://reviews.llvm.org/D4923
llvm-svn: 216879
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Instrumentation/AddressSanitizer/X86/asm_mov.ll | 14 | ||||
| -rw-r--r-- | llvm/test/Instrumentation/AddressSanitizer/X86/asm_rep_movs.ll | 58 |
2 files changed, 49 insertions, 23 deletions
diff --git a/llvm/test/Instrumentation/AddressSanitizer/X86/asm_mov.ll b/llvm/test/Instrumentation/AddressSanitizer/X86/asm_mov.ll index ad5e02e0d06..7f5d3b0f142 100644 --- a/llvm/test/Instrumentation/AddressSanitizer/X86/asm_mov.ll +++ b/llvm/test/Instrumentation/AddressSanitizer/X86/asm_mov.ll @@ -6,8 +6,8 @@ target triple = "x86_64-unknown-linux-gnu" ; CHECK-LABEL: mov1b ; CHECK: leaq -128(%rsp), %rsp ; CHECK-NEXT: pushq %rax -; CHECK-NEXT: pushq %rcx ; CHECK-NEXT: pushq %rdi +; CHECK-NEXT: pushq %rcx ; CHECK-NEXT: pushfq ; CHECK-NEXT: leaq {{.*}}, %rdi ; CHECK-NEXT: movq %rdi, %rax @@ -26,8 +26,8 @@ target triple = "x86_64-unknown-linux-gnu" ; CHECK-NEXT: callq __asan_report_load1@PLT ; CHECK-NEXT: [[A]]: ; CHECK-NEXT: popfq -; CHECK-NEXT: popq %rdi ; CHECK-NEXT: popq %rcx +; CHECK-NEXT: popq %rdi ; CHECK-NEXT: popq %rax ; CHECK-NEXT: leaq 128(%rsp), %rsp @@ -81,8 +81,10 @@ entry: ; CHECK-LABEL: mov8b ; CHECK: leaq -128(%rsp), %rsp ; CHECK-NEXT: pushq %rax +; CHECK-NEXT: pushq %rdi ; CHECK-NEXT: pushfq -; CHECK-NEXT: leaq {{.*}}, %rax +; CHECK-NEXT: leaq {{.*}}, %rdi +; CHECK-NEXT: movq %rdi, %rax ; CHECK-NEXT: shrq $3, %rax ; CHECK-NEXT: cmpb $0, 2147450880(%rax) ; CHECK-NEXT: je [[A:.*]] @@ -92,13 +94,16 @@ entry: ; CHECK-NEXT: callq __asan_report_load8@PLT ; CHECK-NEXT: [[A]]: ; CHECK-NEXT: popfq +; CHECK-NEXT: popq %rdi ; CHECK-NEXT: popq %rax ; CHECK-NEXT: leaq 128(%rsp), %rsp ; CHECK: leaq -128(%rsp), %rsp ; CHECK-NEXT: pushq %rax +; CHECK-NEXT: pushq %rdi ; CHECK-NEXT: pushfq -; CHECK-NEXT: leaq {{.*}}, %rax +; CHECK-NEXT: leaq {{.*}}, %rdi +; CHECK-NEXT: movq %rdi, %rax ; CHECK-NEXT: shrq $3, %rax ; CHECK-NEXT: cmpb $0, 2147450880(%rax) ; CHECK-NEXT: je [[A:.*]] @@ -108,6 +113,7 @@ entry: ; CHECK-NEXT: callq __asan_report_store8@PLT ; CHECK-NEXT: [[A]]: ; CHECK-NEXT: popfq +; CHECK-NEXT: popq %rdi ; CHECK-NEXT: popq %rax ; CHECK-NEXT: leaq 128(%rsp), %rsp diff --git a/llvm/test/Instrumentation/AddressSanitizer/X86/asm_rep_movs.ll b/llvm/test/Instrumentation/AddressSanitizer/X86/asm_rep_movs.ll index 136cd87dfab..c3c2435fc87 100644 --- a/llvm/test/Instrumentation/AddressSanitizer/X86/asm_rep_movs.ll +++ b/llvm/test/Instrumentation/AddressSanitizer/X86/asm_rep_movs.ll @@ -8,17 +8,33 @@ target triple = "x86_64-unknown-linux-gnu" ; CHECK-NEXT: testq %rcx, %rcx ; CHECK-NEXT: je [[B:.*]] -; CHECK: leaq (%rsi), {{.*}} -; CHECK: callq __asan_report_load1@PLT - -; CHECK: leaq -1(%rsi,%rcx), {{.*}} -; CHECK: callq __asan_report_load1@PLT - -; CHECK: leaq (%rdi), {{.*}} -; CHECK: callq __asan_report_store1@PLT - -; CHECK: leaq -1(%rdi,%rcx), {{.*}} -; CHECK: callq __asan_report_store1@PLT +; CHECK: leaq -128(%rsp), %rsp +; CHECK-NEXT: pushq %rax +; CHECK-NEXT: pushq %rdx +; CHECK-NEXT: pushq %rbx +; CHECK-NEXT: pushfq + +; CHECK: leaq (%rsi), %rdx +; CHECK: movq %rdx, %rdi +; CHECK-NEXT: callq __asan_report_load1@PLT + +; CHECK: leaq -1(%rsi,%rcx), %rdx +; CHECK: movq %rdx, %rdi +; CHECK-NEXT: callq __asan_report_load1@PLT + +; CHECK: leaq (%rdi), %rdx +; CHECK: movq %rdx, %rdi +; CHECK-NEXT: callq __asan_report_store1@PLT + +; CHECK: leaq -1(%rdi,%rcx), %rdx +; CHECK: movq %rdx, %rdi +; CHECK-NEXT: callq __asan_report_store1@PLT + +; CHECK: popfq +; CHECK-NEXT: popq %rbx +; CHECK-NEXT: popq %rdx +; CHECK-NEXT: popq %rax +; CHECK-NEXT: leaq 128(%rsp), %rsp ; CHECK: [[B]]: ; CHECK-NEXT: popfq @@ -38,17 +54,21 @@ entry: ; CHECK-NEXT: testq %rcx, %rcx ; CHECK-NEXT: je [[Q:.*]] -; CHECK: leaq (%rsi), {{.*}} -; CHECK: callq __asan_report_load8@PLT +; CHECK: leaq (%rsi), %rdx +; CHECK: movq %rdx, %rdi +; CHECK-NEXT: callq __asan_report_load8@PLT -; CHECK: leaq -1(%rsi,%rcx,8), {{.*}} -; CHECK: callq __asan_report_load8@PLT +; CHECK: leaq -1(%rsi,%rcx,8), %rdx +; CHECK: movq %rdx, %rdi +; CHECK-NEXT: callq __asan_report_load8@PLT -; CHECK: leaq (%rdi), {{.*}} -; CHECK: callq __asan_report_store8@PLT +; CHECK: leaq (%rdi), %rdx +; CHECK: movq %rdx, %rdi +; CHECK-NEXT: callq __asan_report_store8@PLT -; CHECK: leaq -1(%rdi,%rcx,8), {{.*}} -; CHECK: callq __asan_report_store8@PLT +; CHECK: leaq -1(%rdi,%rcx,8), %rdx +; CHECK: movq %rdx, %rdi +; CHECK-NEXT: callq __asan_report_store8@PLT ; CHECK: [[Q]]: ; CHECK-NEXT: popfq |

