1dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# RUN: llvm-mc %s -x86-asm-syntax=intel -triple=x86_64-unknown-linux-gnu -asm-instrumentation=address -asan-instrument-assembly | FileCheck %s 2dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 3dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .text 4dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .globl swap 5dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .align 16, 0x90 6dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .type swap,@function 7dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# CHECK-LABEL: swap: 8dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# 9dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# CHECK: leaq -128(%rsp), %rsp 10cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines# CHECK: callq __asan_report_load8@PLT 11cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines# CHECK: leaq 128(%rsp), %rsp 12dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# 13dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# CHECK-NEXT: movq (%rcx), %rax 14dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# 15dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# CHECK-NEXT: leaq -128(%rsp), %rsp 16cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines# CHECK: callq __asan_report_load8@PLT 17cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines# CHECK: leaq 128(%rsp), %rsp 18dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# 19dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# CHECK-NEXT: movq (%rdx), %rbx 20dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# 21cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines# CHECK-NEXT: leaq -128(%rsp), %rsp 22cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines# CHECK: callq __asan_report_store8@PLT 23cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines# CHECK: leaq 128(%rsp), %rsp 24dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# 25dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# CHECK-NEXT: movq %rbx, (%rcx) 26dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# 27dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# CHECK-NEXT: leaq -128(%rsp), %rsp 28cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines# CHECK: callq __asan_report_store8@PLT 29cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines# CHECK: leaq 128(%rsp), %rsp 30dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# 31dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# CHECK-NEXT: movq %rax, (%rdx) 32dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hinesswap: # @swap 33dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .cfi_startproc 34dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# BB#0: 35dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines push rbx 36dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines.Ltmp0: 37dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .cfi_def_cfa_offset 16 38dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines.Ltmp1: 39dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .cfi_offset rbx, -16 40dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mov rcx, rdi 41dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mov rdx, rsi 42dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines #APP 43dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 44dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 45dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mov rax, qword ptr [rcx] 46dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mov rbx, qword ptr [rdx] 47dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mov qword ptr [rcx], rbx 48dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mov qword ptr [rdx], rax 49dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 50dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines #NO_APP 51dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines pop rbx 52dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ret 53dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines.Ltmp2: 54dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .size swap, .Ltmp2-swap 55dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .cfi_endproc 56dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 57dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 58dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .ident "clang version 3.5.0 " 59dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .section ".note.GNU-stack","",@progbits 60