47 lines · plain
1# RUN: llvm-mc --filetype=obj --gsframe -triple x86_64 %s -o %t.o2# RUN: llvm-readelf --sframe %t.o | FileCheck %s3 4## Tests that .cfi_escape sequences that are ok to pass through work.5 6 .align 10247cfi_escape_ok:8 .cfi_startproc9 .long 010 .cfi_def_cfa_offset 1611 ## Uninteresting register12## DW_CFA_expression,reg 0xc,length 2,DW_OP_breg6,SLEB(-8)13 .cfi_escape 0x10,0xc,0x2,0x76,0x7814## DW_CFA_nop15 .cfi_escape 0x016 .cfi_escape 0x0,0x0,0x0,0x017 ## Uninteresting register18## DW_CFA_val_offset,reg 0xc,ULEB scaled offset19 .cfi_escape 0x14,0xc,0x420 .long 021 .cfi_endproc22 23cfi_escape_gnu_args_fp:24 .cfi_startproc25 .long 026## DW_CFA_GNU_args_size is OK if arg size is zero27 .cfi_escape 0x2e, 0x028 .long 029 .cfi_def_cfa_register 630 .long 031## DW_CFA_GNU_args_size is OK if cfa is FP32 .cfi_escape 0x2e, 0x2033 .cfi_endproc34 35cfi_escape_long_expr:36 .cfi_startproc37 .long 038 .cfi_def_cfa_offset 1639## This is a long, but valid, dwarf expression without sframe40## implications. An FDE can still be created.41## DW_CFA_val_offset,rcx,ULEB scaled offset(16), DW_CFA_expr,r10,length,DW_OP_deref,SLEB(-8)42 .cfi_escape 0x14,0x2,0x2,0x10,0xa,0x2,0x76,0x7843 .long 044 .cfi_endproc45 46# CHECK: Num FDEs: 347