diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2014-04-24 09:56:15 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2014-04-24 09:56:15 +0000 |
commit | fd46b84dddfdb736b7d3c70d17ee934b6cbb39f8 (patch) | |
tree | 5ddee7d1f2a53ea93c85757f35ff08095202121b /test/Instrumentation | |
parent | bcb39a444bd8dfdd872d7d3b23aa871e8a29b103 (diff) | |
download | llvm-fd46b84dddfdb736b7d3c70d17ee934b6cbb39f8.tar.gz llvm-fd46b84dddfdb736b7d3c70d17ee934b6cbb39f8.tar.bz2 llvm-fd46b84dddfdb736b7d3c70d17ee934b6cbb39f8.tar.xz |
[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
Diffstat (limited to 'test/Instrumentation')
-rw-r--r-- | test/Instrumentation/AddressSanitizer/X86/asm_swap_intel.s | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/Instrumentation/AddressSanitizer/X86/asm_swap_intel.s b/test/Instrumentation/AddressSanitizer/X86/asm_swap_intel.s new file mode 100644 index 0000000000..4144bf5e56 --- /dev/null +++ b/test/Instrumentation/AddressSanitizer/X86/asm_swap_intel.s @@ -0,0 +1,71 @@ +# RUN: llvm-mc %s -x86-asm-syntax=intel -triple=x86_64-unknown-linux-gnu -asm-instrumentation=address | FileCheck %s + + .text + .globl swap + .align 16, 0x90 + .type swap,@function +# CHECK-LABEL: swap: +# +# CHECK: subq $128, %rsp +# CHECK-NEXT: pushq %rdi +# CHECK-NEXT: leaq (%rcx), %rdi +# CHECK-NEXT: callq __sanitizer_sanitize_load8@PLT +# CHECK-NEXT: popq %rdi +# CHECK-NEXT: addq $128, %rsp +# +# CHECK-NEXT: movq (%rcx), %rax +# +# CHECK-NEXT: subq $128, %rsp +# CHECK-NEXT: pushq %rdi +# CHECK-NEXT: leaq (%rdx), %rdi +# CHECK-NEXT: callq __sanitizer_sanitize_load8@PLT +# CHECK-NEXT: popq %rdi +# CHECK-NEXT: addq $128, %rsp +# +# CHECK-NEXT: movq (%rdx), %rbx +# +# CHECK: subq $128, %rsp +# CHECK-NEXT: pushq %rdi +# CHECK-NEXT: leaq (%rcx), %rdi +# CHECK-NEXT: callq __sanitizer_sanitize_store8@PLT +# CHECK-NEXT: popq %rdi +# CHECK-NEXT: addq $128, %rsp +# +# CHECK-NEXT: movq %rbx, (%rcx) +# +# CHECK-NEXT: subq $128, %rsp +# CHECK-NEXT: pushq %rdi +# CHECK-NEXT: leaq (%rdx), %rdi +# CHECK-NEXT: callq __sanitizer_sanitize_store8@PLT +# CHECK-NEXT: popq %rdi +# CHECK-NEXT: addq $128, %rsp +# +# CHECK-NEXT: movq %rax, (%rdx) +swap: # @swap + .cfi_startproc +# BB#0: + push rbx +.Ltmp0: + .cfi_def_cfa_offset 16 +.Ltmp1: + .cfi_offset rbx, -16 + mov rcx, rdi + mov rdx, rsi + #APP + + + mov rax, qword ptr [rcx] + mov rbx, qword ptr [rdx] + mov qword ptr [rcx], rbx + mov qword ptr [rdx], rax + + #NO_APP + pop rbx + ret +.Ltmp2: + .size swap, .Ltmp2-swap + .cfi_endproc + + + .ident "clang version 3.5.0 " + .section ".note.GNU-stack","",@progbits |