diff options
Diffstat (limited to 'llvm/test/DebugInfo/RISCV/eh-frame.s')
-rw-r--r-- | llvm/test/DebugInfo/RISCV/eh-frame.s | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/llvm/test/DebugInfo/RISCV/eh-frame.s b/llvm/test/DebugInfo/RISCV/eh-frame.s new file mode 100644 index 00000000000..fcff68c0908 --- /dev/null +++ b/llvm/test/DebugInfo/RISCV/eh-frame.s @@ -0,0 +1,34 @@ +# RUN: llvm-mc -filetype=obj -triple=riscv32 < %s | llvm-dwarfdump -eh-frame - \ +# RUN: | FileCheck --check-prefixes=CHECK,RV32 %s +# RUN: llvm-mc -filetype=obj -triple=riscv64 < %s | llvm-dwarfdump -eh-frame - \ +# RUN: | FileCheck --check-prefixes=CHECK,RV64 %s + +func: + .cfi_startproc + ret + .cfi_endproc + +# CHECK: 00000000 00000010 ffffffff CIE +# CHECK: Version: 1 +# CHECK: Augmentation: "zR" +# CHECK: Code alignment factor: 1 + +# TODO: gas uses -4 for the data alignment factor for both RV32 and RV64. They +# do so on the basis that on RV64F, F registers may only be 4 bytes +# (DWARF2_CIE_DATA_ALIGNMENT). + +# RV32: Data alignment factor: -4 +# RV64: Data alignment factor: -8 + +# CHECK: Return address column: 1 + +# Check the pointer encoding for address pointers used in FDE. This is set by +# FDECFIEncoding and should be DW_EH_PE_pcrel | DW_EH_PE_sdata4 (0x1b). + +# CHECK: Augmentation data: 1B +# CHECK: DW_CFA_def_cfa: reg2 +0 +# +# CHECK: 00000014 00000010 00000018 FDE cie=00000018 pc=00000000...00000004 +# CHECK: DW_CFA_nop: +# CHECK: DW_CFA_nop: +# CHECK: DW_CFA_nop: |