aboutsummaryrefslogtreecommitdiffstats
path: root/test/Instrumentation/AddressSanitizer/X86/asm_cfi.s
blob: 417d7f3fd3e836adbf8f9f9be001517fd4d74eb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 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