[libunwind] [risc-v] This patch is for fixing

immediate build failure when Cross Unwinding enabled.
Follow up patch will cleanup some Macros handling.

Differential Revision: https://reviews.llvm.org/D97762
This commit is contained in:
Kamlesh Kumar 2021-03-03 04:32:47 +05:30
parent b6c2f538b2
commit 5c3fc5093a
1 changed files with 23 additions and 14 deletions

View File

@ -3731,26 +3731,35 @@ inline const char *Registers_hexagon::getRegisterName(int regNum) {
/// Registers_riscv holds the register state of a thread in a RISC-V
/// process.
# if __riscv_xlen == 32
// This check makes it safe when LIBUNWIND_ENABLE_CROSS_UNWINDING enabled.
# ifdef __riscv
# if __riscv_xlen == 32
typedef uint32_t reg_t;
# elif __riscv_xlen == 64
# elif __riscv_xlen == 64
typedef uint64_t reg_t;
# else
# error "Unsupported __riscv_xlen"
# endif
# if defined(__riscv_flen)
# if __riscv_flen == 64
typedef double fp_t;
# elif __riscv_flen == 32
typedef float fp_t;
# else
# error "Unsupported __riscv_flen"
# error "Unsupported __riscv_xlen"
# endif
# else
# if defined(__riscv_flen)
# if __riscv_flen == 64
typedef double fp_t;
# elif __riscv_flen == 32
typedef float fp_t;
# else
# error "Unsupported __riscv_flen"
# endif
# else
// This is just for supressing undeclared error of fp_t.
typedef double fp_t;
# endif
# endif
# else
// Use Max possible width when cross unwinding
typedef uint64_t reg_t;
typedef double fp_t;
# define __riscv_xlen 64
# define __riscv_flen 64
#endif
/// Registers_riscv holds the register state of a thread.
class _LIBUNWIND_HIDDEN Registers_riscv {