summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorYuri Gorshenin <ygorshenin@google.com>2014-09-01 12:51:00 +0000
committerYuri Gorshenin <ygorshenin@google.com>2014-09-01 12:51:00 +0000
commitc107d147dccbf55d32eeb877f6dabd2e8d8743b6 (patch)
treeeb29ce7070c9d69e06c652749f325fc00a3d07a8 /llvm/test
parent34fb3799a37dc3cb41803aaee04b6912abd57219 (diff)
downloadbcm5719-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.ll14
-rw-r--r--llvm/test/Instrumentation/AddressSanitizer/X86/asm_rep_movs.ll58
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
OpenPOWER on IntegriCloud