File: cfi_val_offset.s

package info (click to toggle)
llvm-toolchain-21 1%3A21.1.6-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,245,028 kB
  • sloc: cpp: 7,619,726; ansic: 1,434,018; asm: 1,058,748; python: 252,740; f90: 94,671; objc: 70,685; lisp: 42,813; pascal: 18,401; sh: 8,601; ml: 5,111; perl: 4,720; makefile: 3,675; awk: 3,523; javascript: 2,409; xml: 892; fortran: 770
file content (34 lines) | stat: -rw-r--r-- 1,059 bytes parent folder | download | duplicates (5)
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
// RUN: llvm-mc -triple aarch64-- -o - %s | FileCheck %s
// RUN: llvm-mc -triple aarch64-- -filetype=obj -o - %s | llvm-dwarfdump --debug-frame - | FileCheck --check-prefix=DWARF %s

// This test just confirms the .cfi_val_offset directive emits a val_offset()
// rule. It's not testing anything AArch64 specific, it just needs a targets
// registers to be able to use the directive.
example:
// CHECK:      .cfi_startproc
  .cfi_startproc
  add wsp, wsp, 16
  .cfi_def_cfa wsp, -16
// CHECK: .cfi_def_cfa wsp, -16
// DWARF: DW_CFA_advance_loc: 4 to 0x4
// DWARF: DW_CFA_def_cfa: WSP -16
  .cfi_val_offset wsp, 0
// CHECK: .cfi_val_offset wsp, 0
// DWARF: DW_CFA_val_offset: WSP 0
  nop
  sub wsp, wsp, 16
  .cfi_def_cfa wsp, 0
// CHECK: .cfi_def_cfa wsp, 0
// DWARF: DW_CFA_advance_loc: 8 to 0xc
// DWARF: DW_CFA_def_cfa: WSP +0
  .cfi_register wsp, wsp
// CHECK: .cfi_register wsp, wsp
// DWARF: DW_CFA_register: WSP WSP
  ret
  .cfi_endproc
// CHECK: .cfi_endproc


// DWARF: 0x0: CFA=WSP
// DWARF: 0x4: CFA=WSP-16: WSP=CFA
// DWARF: 0xc: CFA=WSP: WSP=WSP