summaryrefslogtreecommitdiffstats
path: root/llvm/test/DebugInfo/RISCV/eh-frame.s
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/DebugInfo/RISCV/eh-frame.s')
-rw-r--r--llvm/test/DebugInfo/RISCV/eh-frame.s34
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:
OpenPOWER on IntegriCloud