| # The test verifies that correct DWARF directives are emitted when |
| # assembly files are instrumented. |
| |
| # RUN: llvm-mc %s -triple=i386-unknown-linux-gnu -asm-instrumentation=address -asan-instrument-assembly | FileCheck %s |
| |
| # CHECK-LABEL: load4b_cfa_rbp |
| # CHECK: pushl %ebx |
| # CHECK-NOT: .cfi_adjust_cfa_offset 8 |
| # CHECK: movl %ebp, %ebx |
| # CHECK: .cfi_remember_state |
| # CHECK: .cfi_def_cfa_register %ebx |
| # CHECK: popl %ebx |
| # CHECK: .cfi_restore_state |
| # CHECK-NOT: .cfi_adjust_cfa_offset -8 |
| # CHECK: retl |
| |
| .text |
| .globl load4b_cfa_rbp |
| .type load4b_cfa_rbp,@function |
| swap_cfa_rbp: # @swap_cfa_rbp |
| .cfi_startproc |
| pushl %ebp |
| .cfi_def_cfa_offset 8 |
| .cfi_offset %ebp, -8 |
| movl %esp, %ebp |
| .cfi_def_cfa_register %ebp |
| movl 8(%ebp), %eax |
| popl %ebp |
| retl |
| .cfi_endproc |
| |
| # CHECK-LABEL: load4b_cfa_rsp |
| # CHECK: pushl %ebx |
| # CHECK: .cfi_adjust_cfa_offset 4 |
| # CHECK: movl %esp, %ebx |
| # CHECK: .cfi_remember_state |
| # CHECK: .cfi_def_cfa_register %ebx |
| # CHECK: popl %ebx |
| # CHECK: .cfi_restore_state |
| # CHECK: retl |
| |
| .globl load4b_cfa_rsp |
| .type load4b_cfa_rsp,@function |
| swap_cfa_rsp: # @swap_cfa_rsp |
| .cfi_startproc |
| pushl %ebp |
| .cfi_offset %ebp, 0 |
| movl %esp, %ebp |
| movl 8(%ebp), %eax |
| popl %ebp |
| retl |
| .cfi_endproc |