1bdd1243dSDimitry Andric //===-- RISCV_DWARF_Registers.h ---------------------------------*- C++ -*-===// 2bdd1243dSDimitry Andric // 3bdd1243dSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4bdd1243dSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5bdd1243dSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6bdd1243dSDimitry Andric // 7bdd1243dSDimitry Andric //===----------------------------------------------------------------------===// 8bdd1243dSDimitry Andric 9bdd1243dSDimitry Andric #ifndef LLDB_SOURCE_UTILITY_RISCV_DWARF_REGISTERS_H 10bdd1243dSDimitry Andric #define LLDB_SOURCE_UTILITY_RISCV_DWARF_REGISTERS_H 11bdd1243dSDimitry Andric 12bdd1243dSDimitry Andric #include "lldb/lldb-private.h" 13bdd1243dSDimitry Andric 14bdd1243dSDimitry Andric namespace riscv_dwarf { 15bdd1243dSDimitry Andric 16bdd1243dSDimitry Andric enum { 17bdd1243dSDimitry Andric dwarf_gpr_x0 = 0, 18bdd1243dSDimitry Andric dwarf_gpr_x1, 19bdd1243dSDimitry Andric dwarf_gpr_x2, 20bdd1243dSDimitry Andric dwarf_gpr_x3, 21bdd1243dSDimitry Andric dwarf_gpr_x4, 22bdd1243dSDimitry Andric dwarf_gpr_x5, 23bdd1243dSDimitry Andric dwarf_gpr_x6, 24bdd1243dSDimitry Andric dwarf_gpr_x7, 25bdd1243dSDimitry Andric dwarf_gpr_x8, 26bdd1243dSDimitry Andric dwarf_gpr_x9, 27bdd1243dSDimitry Andric dwarf_gpr_x10, 28bdd1243dSDimitry Andric dwarf_gpr_x11, 29bdd1243dSDimitry Andric dwarf_gpr_x12, 30bdd1243dSDimitry Andric dwarf_gpr_x13, 31bdd1243dSDimitry Andric dwarf_gpr_x14, 32bdd1243dSDimitry Andric dwarf_gpr_x15, 33bdd1243dSDimitry Andric dwarf_gpr_x16, 34bdd1243dSDimitry Andric dwarf_gpr_x17, 35bdd1243dSDimitry Andric dwarf_gpr_x18, 36bdd1243dSDimitry Andric dwarf_gpr_x19, 37bdd1243dSDimitry Andric dwarf_gpr_x20, 38bdd1243dSDimitry Andric dwarf_gpr_x21, 39bdd1243dSDimitry Andric dwarf_gpr_x22, 40bdd1243dSDimitry Andric dwarf_gpr_x23, 41bdd1243dSDimitry Andric dwarf_gpr_x24, 42bdd1243dSDimitry Andric dwarf_gpr_x25, 43bdd1243dSDimitry Andric dwarf_gpr_x26, 44bdd1243dSDimitry Andric dwarf_gpr_x27, 45bdd1243dSDimitry Andric dwarf_gpr_x28, 46bdd1243dSDimitry Andric dwarf_gpr_x29, 47bdd1243dSDimitry Andric dwarf_gpr_x30, 48bdd1243dSDimitry Andric dwarf_gpr_x31 = 31, 49bdd1243dSDimitry Andric 50bdd1243dSDimitry Andric dwarf_fpr_f0 = 32, 51bdd1243dSDimitry Andric dwarf_fpr_f1, 52bdd1243dSDimitry Andric dwarf_fpr_f2, 53bdd1243dSDimitry Andric dwarf_fpr_f3, 54bdd1243dSDimitry Andric dwarf_fpr_f4, 55bdd1243dSDimitry Andric dwarf_fpr_f5, 56bdd1243dSDimitry Andric dwarf_fpr_f6, 57bdd1243dSDimitry Andric dwarf_fpr_f7, 58bdd1243dSDimitry Andric dwarf_fpr_f8, 59bdd1243dSDimitry Andric dwarf_fpr_f9, 60bdd1243dSDimitry Andric dwarf_fpr_f10, 61bdd1243dSDimitry Andric dwarf_fpr_f11, 62bdd1243dSDimitry Andric dwarf_fpr_f12, 63bdd1243dSDimitry Andric dwarf_fpr_f13, 64bdd1243dSDimitry Andric dwarf_fpr_f14, 65bdd1243dSDimitry Andric dwarf_fpr_f15, 66bdd1243dSDimitry Andric dwarf_fpr_f16, 67bdd1243dSDimitry Andric dwarf_fpr_f17, 68bdd1243dSDimitry Andric dwarf_fpr_f18, 69bdd1243dSDimitry Andric dwarf_fpr_f19, 70bdd1243dSDimitry Andric dwarf_fpr_f20, 71bdd1243dSDimitry Andric dwarf_fpr_f21, 72bdd1243dSDimitry Andric dwarf_fpr_f22, 73bdd1243dSDimitry Andric dwarf_fpr_f23, 74bdd1243dSDimitry Andric dwarf_fpr_f24, 75bdd1243dSDimitry Andric dwarf_fpr_f25, 76bdd1243dSDimitry Andric dwarf_fpr_f26, 77bdd1243dSDimitry Andric dwarf_fpr_f27, 78bdd1243dSDimitry Andric dwarf_fpr_f28, 79bdd1243dSDimitry Andric dwarf_fpr_f29, 80bdd1243dSDimitry Andric dwarf_fpr_f30, 81bdd1243dSDimitry Andric dwarf_fpr_f31 = 63, 82bdd1243dSDimitry Andric 83bdd1243dSDimitry Andric // alternate frame return column 84bdd1243dSDimitry Andric dwarf_alt_fr_col = 64, 85bdd1243dSDimitry Andric 86*06c3fb27SDimitry Andric dwarf_vpr_v0 = 96, 87*06c3fb27SDimitry Andric dwarf_vpr_v1, 88*06c3fb27SDimitry Andric dwarf_vpr_v2, 89*06c3fb27SDimitry Andric dwarf_vpr_v3, 90*06c3fb27SDimitry Andric dwarf_vpr_v4, 91*06c3fb27SDimitry Andric dwarf_vpr_v5, 92*06c3fb27SDimitry Andric dwarf_vpr_v6, 93*06c3fb27SDimitry Andric dwarf_vpr_v7, 94*06c3fb27SDimitry Andric dwarf_vpr_v8, 95*06c3fb27SDimitry Andric dwarf_vpr_v9, 96*06c3fb27SDimitry Andric dwarf_vpr_v10, 97*06c3fb27SDimitry Andric dwarf_vpr_v11, 98*06c3fb27SDimitry Andric dwarf_vpr_v12, 99*06c3fb27SDimitry Andric dwarf_vpr_v13, 100*06c3fb27SDimitry Andric dwarf_vpr_v14, 101*06c3fb27SDimitry Andric dwarf_vpr_v15, 102*06c3fb27SDimitry Andric dwarf_vpr_v16, 103*06c3fb27SDimitry Andric dwarf_vpr_v17, 104*06c3fb27SDimitry Andric dwarf_vpr_v18, 105*06c3fb27SDimitry Andric dwarf_vpr_v19, 106*06c3fb27SDimitry Andric dwarf_vpr_v20, 107*06c3fb27SDimitry Andric dwarf_vpr_v21, 108*06c3fb27SDimitry Andric dwarf_vpr_v22, 109*06c3fb27SDimitry Andric dwarf_vpr_v23, 110*06c3fb27SDimitry Andric dwarf_vpr_v24, 111*06c3fb27SDimitry Andric dwarf_vpr_v25, 112*06c3fb27SDimitry Andric dwarf_vpr_v26, 113*06c3fb27SDimitry Andric dwarf_vpr_v27, 114*06c3fb27SDimitry Andric dwarf_vpr_v28, 115*06c3fb27SDimitry Andric dwarf_vpr_v29, 116*06c3fb27SDimitry Andric dwarf_vpr_v30, 117*06c3fb27SDimitry Andric dwarf_vpr_v31 = 127, 118bdd1243dSDimitry Andric dwarf_first_csr = 4096, 119bdd1243dSDimitry Andric dwarf_fpr_fcsr = dwarf_first_csr + 0x003, 120*06c3fb27SDimitry Andric // The vector extension adds seven unprivileged CSRs 121*06c3fb27SDimitry Andric // (vstart, vxsat, vxrm, vcsr, vtype, vl, vlenb) 122*06c3fb27SDimitry Andric // to a base scalar RISC-V ISA. 123*06c3fb27SDimitry Andric dwarf_vpr_vstart = dwarf_first_csr + 0x008, 124*06c3fb27SDimitry Andric dwarf_vpr_vxsat = dwarf_first_csr + 0x009, 125*06c3fb27SDimitry Andric dwarf_vpr_vxrm = dwarf_first_csr + 0x00A, 126*06c3fb27SDimitry Andric dwarf_vpr_vcsr = dwarf_first_csr + 0x00F, 127*06c3fb27SDimitry Andric dwarf_vpr_vl = dwarf_first_csr + 0xC20, 128*06c3fb27SDimitry Andric dwarf_vpr_vtype = dwarf_first_csr + 0xC21, 129*06c3fb27SDimitry Andric dwarf_vpr_vlenb = dwarf_first_csr + 0xC22, 130bdd1243dSDimitry Andric dwarf_last_csr = 8191, 131bdd1243dSDimitry Andric 132bdd1243dSDimitry Andric // register ABI name 133bdd1243dSDimitry Andric dwarf_gpr_zero = dwarf_gpr_x0, 134bdd1243dSDimitry Andric dwarf_gpr_ra = dwarf_gpr_x1, 135bdd1243dSDimitry Andric dwarf_gpr_sp = dwarf_gpr_x2, 136bdd1243dSDimitry Andric dwarf_gpr_gp = dwarf_gpr_x3, 137bdd1243dSDimitry Andric dwarf_gpr_tp = dwarf_gpr_x4, 138bdd1243dSDimitry Andric dwarf_gpr_t0 = dwarf_gpr_x5, 139bdd1243dSDimitry Andric dwarf_gpr_t1 = dwarf_gpr_x6, 140bdd1243dSDimitry Andric dwarf_gpr_t2 = dwarf_gpr_x7, 141bdd1243dSDimitry Andric dwarf_gpr_fp = dwarf_gpr_x8, 142bdd1243dSDimitry Andric dwarf_gpr_s1 = dwarf_gpr_x9, 143bdd1243dSDimitry Andric dwarf_gpr_a0 = dwarf_gpr_x10, 144bdd1243dSDimitry Andric dwarf_gpr_a1 = dwarf_gpr_x11, 145bdd1243dSDimitry Andric dwarf_gpr_a2 = dwarf_gpr_x12, 146bdd1243dSDimitry Andric dwarf_gpr_a3 = dwarf_gpr_x13, 147bdd1243dSDimitry Andric dwarf_gpr_a4 = dwarf_gpr_x14, 148bdd1243dSDimitry Andric dwarf_gpr_a5 = dwarf_gpr_x15, 149bdd1243dSDimitry Andric dwarf_gpr_a6 = dwarf_gpr_x16, 150bdd1243dSDimitry Andric dwarf_gpr_a7 = dwarf_gpr_x17, 151bdd1243dSDimitry Andric dwarf_gpr_s2 = dwarf_gpr_x18, 152bdd1243dSDimitry Andric dwarf_gpr_s3 = dwarf_gpr_x19, 153bdd1243dSDimitry Andric dwarf_gpr_s4 = dwarf_gpr_x20, 154bdd1243dSDimitry Andric dwarf_gpr_s5 = dwarf_gpr_x21, 155bdd1243dSDimitry Andric dwarf_gpr_s6 = dwarf_gpr_x22, 156bdd1243dSDimitry Andric dwarf_gpr_s7 = dwarf_gpr_x23, 157bdd1243dSDimitry Andric dwarf_gpr_s8 = dwarf_gpr_x24, 158bdd1243dSDimitry Andric dwarf_gpr_s9 = dwarf_gpr_x25, 159bdd1243dSDimitry Andric dwarf_gpr_s10 = dwarf_gpr_x26, 160bdd1243dSDimitry Andric dwarf_gpr_s11 = dwarf_gpr_x27, 161bdd1243dSDimitry Andric dwarf_gpr_t3 = dwarf_gpr_x28, 162bdd1243dSDimitry Andric dwarf_gpr_t4 = dwarf_gpr_x29, 163bdd1243dSDimitry Andric dwarf_gpr_t5 = dwarf_gpr_x30, 164bdd1243dSDimitry Andric dwarf_gpr_t6 = dwarf_gpr_x31, 165bdd1243dSDimitry Andric 166bdd1243dSDimitry Andric dwarf_fpr_ft0 = dwarf_fpr_f0, 167bdd1243dSDimitry Andric dwarf_fpr_ft1 = dwarf_fpr_f1, 168bdd1243dSDimitry Andric dwarf_fpr_ft2 = dwarf_fpr_f2, 169bdd1243dSDimitry Andric dwarf_fpr_ft3 = dwarf_fpr_f3, 170bdd1243dSDimitry Andric dwarf_fpr_ft4 = dwarf_fpr_f4, 171bdd1243dSDimitry Andric dwarf_fpr_ft5 = dwarf_fpr_f5, 172bdd1243dSDimitry Andric dwarf_fpr_ft6 = dwarf_fpr_f6, 173bdd1243dSDimitry Andric dwarf_fpr_ft7 = dwarf_fpr_f7, 174bdd1243dSDimitry Andric dwarf_fpr_fs0 = dwarf_fpr_f8, 175bdd1243dSDimitry Andric dwarf_fpr_fs1 = dwarf_fpr_f9, 176bdd1243dSDimitry Andric dwarf_fpr_fa0 = dwarf_fpr_f10, 177bdd1243dSDimitry Andric dwarf_fpr_fa1 = dwarf_fpr_f11, 178bdd1243dSDimitry Andric dwarf_fpr_fa2 = dwarf_fpr_f12, 179bdd1243dSDimitry Andric dwarf_fpr_fa3 = dwarf_fpr_f13, 180bdd1243dSDimitry Andric dwarf_fpr_fa4 = dwarf_fpr_f14, 181bdd1243dSDimitry Andric dwarf_fpr_fa5 = dwarf_fpr_f15, 182bdd1243dSDimitry Andric dwarf_fpr_fa6 = dwarf_fpr_f16, 183bdd1243dSDimitry Andric dwarf_fpr_fa7 = dwarf_fpr_f17, 184bdd1243dSDimitry Andric dwarf_fpr_fs2 = dwarf_fpr_f18, 185bdd1243dSDimitry Andric dwarf_fpr_fs3 = dwarf_fpr_f19, 186bdd1243dSDimitry Andric dwarf_fpr_fs4 = dwarf_fpr_f20, 187bdd1243dSDimitry Andric dwarf_fpr_fs5 = dwarf_fpr_f21, 188bdd1243dSDimitry Andric dwarf_fpr_fs6 = dwarf_fpr_f22, 189bdd1243dSDimitry Andric dwarf_fpr_fs7 = dwarf_fpr_f23, 190bdd1243dSDimitry Andric dwarf_fpr_fs8 = dwarf_fpr_f24, 191bdd1243dSDimitry Andric dwarf_fpr_fs9 = dwarf_fpr_f25, 192bdd1243dSDimitry Andric dwarf_fpr_fs10 = dwarf_fpr_f26, 193bdd1243dSDimitry Andric dwarf_fpr_fs11 = dwarf_fpr_f27, 194bdd1243dSDimitry Andric dwarf_fpr_ft8 = dwarf_fpr_f28, 195bdd1243dSDimitry Andric dwarf_fpr_ft9 = dwarf_fpr_f29, 196bdd1243dSDimitry Andric dwarf_fpr_ft10 = dwarf_fpr_f30, 197bdd1243dSDimitry Andric dwarf_fpr_ft11 = dwarf_fpr_f31, 198bdd1243dSDimitry Andric 199bdd1243dSDimitry Andric // mock pc regnum 200bdd1243dSDimitry Andric dwarf_gpr_pc = 11451, 201bdd1243dSDimitry Andric }; 202bdd1243dSDimitry Andric 203bdd1243dSDimitry Andric } // namespace riscv_dwarf 204bdd1243dSDimitry Andric 205bdd1243dSDimitry Andric #endif // LLDB_SOURCE_UTILITY_RISCV_DWARF_REGISTERS_H 206