mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
84c56f2c7c
While the value of the CIE pointer field in a DWARF FDE record is an offset to the corresponding CIE record from the beginning of the section, for EH FDE records it is relative to the current offset. Previously, we did not make that distinction when dumped both kinds of FDE records and just printed the same value for the CIE pointer field and the CIE offset; that was acceptable for DWARF FDEs but was wrong for EH FDEs. This patch fixes the issue by explicitly printing the offset of the linked CIE object. Differential Revision: https://reviews.llvm.org/D74613
35 lines
1.1 KiB
ArmAsm
35 lines
1.1 KiB
ArmAsm
# 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 00000000 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=00000000 pc=00000000...00000004
|
|
# CHECK: DW_CFA_nop:
|
|
# CHECK: DW_CFA_nop:
|
|
# CHECK: DW_CFA_nop:
|