From fd46b84dddfdb736b7d3c70d17ee934b6cbb39f8 Mon Sep 17 00:00:00 2001 From: Evgeniy Stepanov Date: Thu, 24 Apr 2014 09:56:15 +0000 Subject: [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 --- .../AddressSanitizer/X86/asm_swap_intel.s | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 test/Instrumentation/AddressSanitizer/X86/asm_swap_intel.s (limited to 'test/Instrumentation') 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 -- cgit v1.2.3