1//===-- LoongArch_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_LOONGARCH_DWARF_REGISTERS_H
10#define LLDB_SOURCE_UTILITY_LOONGARCH_DWARF_REGISTERS_H
11
12#include "lldb/lldb-private.h"
13
14namespace loongarch_dwarf {
15
16enum {
17 dwarf_gpr_r0 = 0,
18 dwarf_gpr_r1,
19 dwarf_gpr_r2,
20 dwarf_gpr_r3,
21 dwarf_gpr_r4,
22 dwarf_gpr_r5,
23 dwarf_gpr_r6,
24 dwarf_gpr_r7,
25 dwarf_gpr_r8,
26 dwarf_gpr_r9,
27 dwarf_gpr_r10,
28 dwarf_gpr_r11,
29 dwarf_gpr_r12,
30 dwarf_gpr_r13,
31 dwarf_gpr_r14,
32 dwarf_gpr_r15,
33 dwarf_gpr_r16,
34 dwarf_gpr_r17,
35 dwarf_gpr_r18,
36 dwarf_gpr_r19,
37 dwarf_gpr_r20,
38 dwarf_gpr_r21,
39 dwarf_gpr_r22,
40 dwarf_gpr_r23,
41 dwarf_gpr_r24,
42 dwarf_gpr_r25,
43 dwarf_gpr_r26,
44 dwarf_gpr_r27,
45 dwarf_gpr_r28,
46 dwarf_gpr_r29,
47 dwarf_gpr_r30,
48 dwarf_gpr_r31 = 31,
49
50 dwarf_gpr_orig_a0,
51 dwarf_gpr_pc,
52 dwarf_gpr_badv,
53
54 dwarf_gpr_reserved0 = 35,
55 dwarf_gpr_reserved1,
56 dwarf_gpr_reserved2,
57 dwarf_gpr_reserved3,
58 dwarf_gpr_reserved4,
59 dwarf_gpr_reserved5,
60 dwarf_gpr_reserved6,
61 dwarf_gpr_reserved7,
62 dwarf_gpr_reserved8,
63 dwarf_gpr_reserved9,
64
65 dwarf_fpr_f0 = 45,
66 dwarf_fpr_f1,
67 dwarf_fpr_f2,
68 dwarf_fpr_f3,
69 dwarf_fpr_f4,
70 dwarf_fpr_f5,
71 dwarf_fpr_f6,
72 dwarf_fpr_f7,
73 dwarf_fpr_f8,
74 dwarf_fpr_f9,
75 dwarf_fpr_f10,
76 dwarf_fpr_f11,
77 dwarf_fpr_f12,
78 dwarf_fpr_f13,
79 dwarf_fpr_f14,
80 dwarf_fpr_f15,
81 dwarf_fpr_f16,
82 dwarf_fpr_f17,
83 dwarf_fpr_f18,
84 dwarf_fpr_f19,
85 dwarf_fpr_f20,
86 dwarf_fpr_f21,
87 dwarf_fpr_f22,
88 dwarf_fpr_f23,
89 dwarf_fpr_f24,
90 dwarf_fpr_f25,
91 dwarf_fpr_f26,
92 dwarf_fpr_f27,
93 dwarf_fpr_f28,
94 dwarf_fpr_f29,
95 dwarf_fpr_f30,
96 dwarf_fpr_f31 = 76,
97
98 dwarf_fpr_fcc0,
99 dwarf_fpr_fcc1,
100 dwarf_fpr_fcc2,
101 dwarf_fpr_fcc3,
102 dwarf_fpr_fcc4,
103 dwarf_fpr_fcc5,
104 dwarf_fpr_fcc6,
105 dwarf_fpr_fcc7,
106 dwarf_fpr_fcsr,
107
108 // register name alias
109 dwarf_gpr_zero = dwarf_gpr_r0,
110 dwarf_gpr_ra = dwarf_gpr_r1,
111 dwarf_gpr_tp = dwarf_gpr_r2,
112 dwarf_gpr_sp = dwarf_gpr_r3,
113 dwarf_gpr_a0 = dwarf_gpr_r4,
114 dwarf_gpr_a1 = dwarf_gpr_r5,
115 dwarf_gpr_a2 = dwarf_gpr_r6,
116 dwarf_gpr_a3 = dwarf_gpr_r7,
117 dwarf_gpr_a4 = dwarf_gpr_r8,
118 dwarf_gpr_a5 = dwarf_gpr_r9,
119 dwarf_gpr_a6 = dwarf_gpr_r10,
120 dwarf_gpr_a7 = dwarf_gpr_r11,
121 dwarf_gpr_t0 = dwarf_gpr_r12,
122 dwarf_gpr_t1 = dwarf_gpr_r13,
123 dwarf_gpr_t2 = dwarf_gpr_r14,
124 dwarf_gpr_t3 = dwarf_gpr_r15,
125 dwarf_gpr_t4 = dwarf_gpr_r16,
126 dwarf_gpr_t5 = dwarf_gpr_r17,
127 dwarf_gpr_t6 = dwarf_gpr_r18,
128 dwarf_gpr_t7 = dwarf_gpr_r19,
129 dwarf_gpr_t8 = dwarf_gpr_r20,
130 dwarf_gpr_fp = dwarf_gpr_r22,
131 dwarf_gpr_s0 = dwarf_gpr_r23,
132 dwarf_gpr_s1 = dwarf_gpr_r24,
133 dwarf_gpr_s2 = dwarf_gpr_r25,
134 dwarf_gpr_s3 = dwarf_gpr_r26,
135 dwarf_gpr_s4 = dwarf_gpr_r27,
136 dwarf_gpr_s5 = dwarf_gpr_r28,
137 dwarf_gpr_s6 = dwarf_gpr_r29,
138 dwarf_gpr_s7 = dwarf_gpr_r30,
139 dwarf_gpr_s8 = dwarf_gpr_r31,
140
141 dwarf_fpr_fa0 = dwarf_fpr_f0,
142 dwarf_fpr_fa1 = dwarf_fpr_f1,
143 dwarf_fpr_fa2 = dwarf_fpr_f2,
144 dwarf_fpr_fa3 = dwarf_fpr_f3,
145 dwarf_fpr_fa4 = dwarf_fpr_f4,
146 dwarf_fpr_fa5 = dwarf_fpr_f5,
147 dwarf_fpr_fa6 = dwarf_fpr_f6,
148 dwarf_fpr_fa7 = dwarf_fpr_f7,
149 dwarf_fpr_ft0 = dwarf_fpr_f8,
150 dwarf_fpr_ft1 = dwarf_fpr_f9,
151 dwarf_fpr_ft2 = dwarf_fpr_f10,
152 dwarf_fpr_ft3 = dwarf_fpr_f11,
153 dwarf_fpr_ft4 = dwarf_fpr_f12,
154 dwarf_fpr_ft5 = dwarf_fpr_f13,
155 dwarf_fpr_ft6 = dwarf_fpr_f14,
156 dwarf_fpr_ft7 = dwarf_fpr_f15,
157 dwarf_fpr_ft8 = dwarf_fpr_f16,
158 dwarf_fpr_ft9 = dwarf_fpr_f17,
159 dwarf_fpr_ft10 = dwarf_fpr_f18,
160 dwarf_fpr_ft11 = dwarf_fpr_f19,
161 dwarf_fpr_ft12 = dwarf_fpr_f20,
162 dwarf_fpr_ft13 = dwarf_fpr_f21,
163 dwarf_fpr_ft14 = dwarf_fpr_f22,
164 dwarf_fpr_ft15 = dwarf_fpr_f23,
165 dwarf_fpr_fs0 = dwarf_fpr_f24,
166 dwarf_fpr_fs1 = dwarf_fpr_f25,
167 dwarf_fpr_fs2 = dwarf_fpr_f26,
168 dwarf_fpr_fs3 = dwarf_fpr_f27,
169 dwarf_fpr_fs4 = dwarf_fpr_f28,
170 dwarf_fpr_fs5 = dwarf_fpr_f29,
171 dwarf_fpr_fs6 = dwarf_fpr_f30,
172 dwarf_fpr_fs7 = dwarf_fpr_f31,
173};
174
175} // namespace loongarch_dwarf
176
177#endif // LLDB_SOURCE_UTILITY_LOONGARCH_DWARF_REGISTERS_H
178

source code of lldb/source/Utility/LoongArch_DWARF_Registers.h