9#ifdef DECLARE_REGISTER_INFOS_LOONGARCH64_STRUCT
21#error GPR_OFFSET must be defined before including this header file
25#error FPR_OFFSET must be defined before including this header file
29#error LSX_OFFSET must be defined before including this header file
33#error LASX_OFFSET must be defined before including this header file
41#define KIND_HELPER(reg, generic_kind) \
43 loongarch_dwarf::dwarf_##reg, loongarch_dwarf::dwarf_##reg, generic_kind, \
44 LLDB_INVALID_REGNUM, reg##_loongarch \
48#define GPR64_KIND(reg, generic_kind) KIND_HELPER(reg, generic_kind)
51#define FPR64_KIND(reg, generic_kind) KIND_HELPER(reg, generic_kind)
54#define DEFINE_GPR64(reg, generic_kind) DEFINE_GPR64_ALT(reg, reg, generic_kind)
55#define DEFINE_GPR64_ALT(reg, alt, generic_kind) \
57 #reg, #alt, 8, GPR_OFFSET(gpr_##reg##_loongarch - gpr_first_loongarch), \
58 lldb::eEncodingUint, lldb::eFormatHex, \
59 GPR64_KIND(gpr_##reg, generic_kind), nullptr, nullptr, nullptr, \
63#define DEFINE_FPR64(reg, generic_kind) DEFINE_FPR64_ALT(reg, reg, generic_kind)
64#define DEFINE_FPR64_ALT(reg, alt, generic_kind) \
66 #reg, #alt, 8, FPR_OFFSET(fpr_##reg##_loongarch - fpr_first_loongarch), \
67 lldb::eEncodingUint, lldb::eFormatHex, \
68 FPR64_KIND(fpr_##reg, generic_kind), nullptr, nullptr, nullptr, \
71#define DEFINE_FCC(reg, generic_kind) \
73 #reg, nullptr, 1, FCC_OFFSET(fpr_##reg##_loongarch - fpr_fcc0_loongarch), \
74 lldb::eEncodingUint, lldb::eFormatHex, \
75 FPR64_KIND(fpr_##reg, generic_kind), nullptr, nullptr, nullptr, \
78#define DEFINE_FCSR(reg, generic_kind) \
80 #reg, nullptr, 4, FCSR_OFFSET, \
81 lldb::eEncodingUint, lldb::eFormatHex, \
82 FPR64_KIND(fpr_##reg, generic_kind), nullptr, nullptr, nullptr, \
85#define DEFINE_LSX(reg, generic_kind) \
87 #reg, nullptr, 16, LSX_OFFSET(lsx_##reg##_loongarch - lsx_first_loongarch),\
88 lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, \
89 KIND_HELPER(lsx_##reg, generic_kind), nullptr, nullptr, nullptr, \
92#define DEFINE_LASX(reg, generic_kind) \
95 LASX_OFFSET(lasx_##reg##_loongarch - lasx_first_loongarch), \
96 lldb::eEncodingVector, lldb::eFormatVectorOfUInt8, \
97 KIND_HELPER(lasx_##reg, generic_kind), nullptr, nullptr, nullptr, \
#define LLDB_REGNUM_GENERIC_RA
#define LLDB_REGNUM_GENERIC_ARG8
#define LLDB_REGNUM_GENERIC_ARG6
#define LLDB_REGNUM_GENERIC_SP
#define LLDB_REGNUM_GENERIC_ARG4
#define LLDB_REGNUM_GENERIC_ARG3
#define LLDB_REGNUM_GENERIC_ARG1
#define LLDB_REGNUM_GENERIC_ARG7
#define LLDB_INVALID_REGNUM
#define LLDB_REGNUM_GENERIC_ARG2
#define LLDB_REGNUM_GENERIC_PC
#define LLDB_REGNUM_GENERIC_FP
#define LLDB_REGNUM_GENERIC_ARG5
Every register is described in detail including its name, alternate name (optional),...