1 //===-- RISCV_DWARF_Registers.h ---------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLDB_SOURCE_UTILITY_RISCV_DWARF_REGISTERS_H 10 #define LLDB_SOURCE_UTILITY_RISCV_DWARF_REGISTERS_H 11 12 #include "lldb/lldb-private.h" 13 14 namespace riscv_dwarf { 15 16 enum { 17 dwarf_gpr_x0 = 0, 18 dwarf_gpr_x1, 19 dwarf_gpr_x2, 20 dwarf_gpr_x3, 21 dwarf_gpr_x4, 22 dwarf_gpr_x5, 23 dwarf_gpr_x6, 24 dwarf_gpr_x7, 25 dwarf_gpr_x8, 26 dwarf_gpr_x9, 27 dwarf_gpr_x10, 28 dwarf_gpr_x11, 29 dwarf_gpr_x12, 30 dwarf_gpr_x13, 31 dwarf_gpr_x14, 32 dwarf_gpr_x15, 33 dwarf_gpr_x16, 34 dwarf_gpr_x17, 35 dwarf_gpr_x18, 36 dwarf_gpr_x19, 37 dwarf_gpr_x20, 38 dwarf_gpr_x21, 39 dwarf_gpr_x22, 40 dwarf_gpr_x23, 41 dwarf_gpr_x24, 42 dwarf_gpr_x25, 43 dwarf_gpr_x26, 44 dwarf_gpr_x27, 45 dwarf_gpr_x28, 46 dwarf_gpr_x29, 47 dwarf_gpr_x30, 48 dwarf_gpr_x31 = 31, 49 50 dwarf_fpr_f0 = 32, 51 dwarf_fpr_f1, 52 dwarf_fpr_f2, 53 dwarf_fpr_f3, 54 dwarf_fpr_f4, 55 dwarf_fpr_f5, 56 dwarf_fpr_f6, 57 dwarf_fpr_f7, 58 dwarf_fpr_f8, 59 dwarf_fpr_f9, 60 dwarf_fpr_f10, 61 dwarf_fpr_f11, 62 dwarf_fpr_f12, 63 dwarf_fpr_f13, 64 dwarf_fpr_f14, 65 dwarf_fpr_f15, 66 dwarf_fpr_f16, 67 dwarf_fpr_f17, 68 dwarf_fpr_f18, 69 dwarf_fpr_f19, 70 dwarf_fpr_f20, 71 dwarf_fpr_f21, 72 dwarf_fpr_f22, 73 dwarf_fpr_f23, 74 dwarf_fpr_f24, 75 dwarf_fpr_f25, 76 dwarf_fpr_f26, 77 dwarf_fpr_f27, 78 dwarf_fpr_f28, 79 dwarf_fpr_f29, 80 dwarf_fpr_f30, 81 dwarf_fpr_f31 = 63, 82 83 // alternate frame return column 84 dwarf_alt_fr_col = 64, 85 86 dwarf_v0 = 96, 87 dwarf_v1, 88 dwarf_v2, 89 dwarf_v3, 90 dwarf_v4, 91 dwarf_v5, 92 dwarf_v6, 93 dwarf_v7, 94 dwarf_v8, 95 dwarf_v9, 96 dwarf_v10, 97 dwarf_v11, 98 dwarf_v12, 99 dwarf_v13, 100 dwarf_v14, 101 dwarf_v15, 102 dwarf_v16, 103 dwarf_v17, 104 dwarf_v18, 105 dwarf_v19, 106 dwarf_v20, 107 dwarf_v21, 108 dwarf_v22, 109 dwarf_v23, 110 dwarf_v24, 111 dwarf_v25, 112 dwarf_v26, 113 dwarf_v27, 114 dwarf_v28, 115 dwarf_v29, 116 dwarf_v30, 117 dwarf_v31 = 127, 118 dwarf_first_csr = 4096, 119 dwarf_fpr_fcsr = dwarf_first_csr + 0x003, 120 dwarf_last_csr = 8191, 121 122 // register ABI name 123 dwarf_gpr_zero = dwarf_gpr_x0, 124 dwarf_gpr_ra = dwarf_gpr_x1, 125 dwarf_gpr_sp = dwarf_gpr_x2, 126 dwarf_gpr_gp = dwarf_gpr_x3, 127 dwarf_gpr_tp = dwarf_gpr_x4, 128 dwarf_gpr_t0 = dwarf_gpr_x5, 129 dwarf_gpr_t1 = dwarf_gpr_x6, 130 dwarf_gpr_t2 = dwarf_gpr_x7, 131 dwarf_gpr_fp = dwarf_gpr_x8, 132 dwarf_gpr_s1 = dwarf_gpr_x9, 133 dwarf_gpr_a0 = dwarf_gpr_x10, 134 dwarf_gpr_a1 = dwarf_gpr_x11, 135 dwarf_gpr_a2 = dwarf_gpr_x12, 136 dwarf_gpr_a3 = dwarf_gpr_x13, 137 dwarf_gpr_a4 = dwarf_gpr_x14, 138 dwarf_gpr_a5 = dwarf_gpr_x15, 139 dwarf_gpr_a6 = dwarf_gpr_x16, 140 dwarf_gpr_a7 = dwarf_gpr_x17, 141 dwarf_gpr_s2 = dwarf_gpr_x18, 142 dwarf_gpr_s3 = dwarf_gpr_x19, 143 dwarf_gpr_s4 = dwarf_gpr_x20, 144 dwarf_gpr_s5 = dwarf_gpr_x21, 145 dwarf_gpr_s6 = dwarf_gpr_x22, 146 dwarf_gpr_s7 = dwarf_gpr_x23, 147 dwarf_gpr_s8 = dwarf_gpr_x24, 148 dwarf_gpr_s9 = dwarf_gpr_x25, 149 dwarf_gpr_s10 = dwarf_gpr_x26, 150 dwarf_gpr_s11 = dwarf_gpr_x27, 151 dwarf_gpr_t3 = dwarf_gpr_x28, 152 dwarf_gpr_t4 = dwarf_gpr_x29, 153 dwarf_gpr_t5 = dwarf_gpr_x30, 154 dwarf_gpr_t6 = dwarf_gpr_x31, 155 156 dwarf_fpr_ft0 = dwarf_fpr_f0, 157 dwarf_fpr_ft1 = dwarf_fpr_f1, 158 dwarf_fpr_ft2 = dwarf_fpr_f2, 159 dwarf_fpr_ft3 = dwarf_fpr_f3, 160 dwarf_fpr_ft4 = dwarf_fpr_f4, 161 dwarf_fpr_ft5 = dwarf_fpr_f5, 162 dwarf_fpr_ft6 = dwarf_fpr_f6, 163 dwarf_fpr_ft7 = dwarf_fpr_f7, 164 dwarf_fpr_fs0 = dwarf_fpr_f8, 165 dwarf_fpr_fs1 = dwarf_fpr_f9, 166 dwarf_fpr_fa0 = dwarf_fpr_f10, 167 dwarf_fpr_fa1 = dwarf_fpr_f11, 168 dwarf_fpr_fa2 = dwarf_fpr_f12, 169 dwarf_fpr_fa3 = dwarf_fpr_f13, 170 dwarf_fpr_fa4 = dwarf_fpr_f14, 171 dwarf_fpr_fa5 = dwarf_fpr_f15, 172 dwarf_fpr_fa6 = dwarf_fpr_f16, 173 dwarf_fpr_fa7 = dwarf_fpr_f17, 174 dwarf_fpr_fs2 = dwarf_fpr_f18, 175 dwarf_fpr_fs3 = dwarf_fpr_f19, 176 dwarf_fpr_fs4 = dwarf_fpr_f20, 177 dwarf_fpr_fs5 = dwarf_fpr_f21, 178 dwarf_fpr_fs6 = dwarf_fpr_f22, 179 dwarf_fpr_fs7 = dwarf_fpr_f23, 180 dwarf_fpr_fs8 = dwarf_fpr_f24, 181 dwarf_fpr_fs9 = dwarf_fpr_f25, 182 dwarf_fpr_fs10 = dwarf_fpr_f26, 183 dwarf_fpr_fs11 = dwarf_fpr_f27, 184 dwarf_fpr_ft8 = dwarf_fpr_f28, 185 dwarf_fpr_ft9 = dwarf_fpr_f29, 186 dwarf_fpr_ft10 = dwarf_fpr_f30, 187 dwarf_fpr_ft11 = dwarf_fpr_f31, 188 189 // mock pc regnum 190 dwarf_gpr_pc = 11451, 191 }; 192 193 } // namespace riscv_dwarf 194 195 #endif // LLDB_SOURCE_UTILITY_RISCV_DWARF_REGISTERS_H 196