1 /*
2  * Copyright (C) 2022 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #pragma once
18 
19 #include <stdint.h>
20 
21 namespace unwindstack {
22 
23 enum Riscv64Reg : uint16_t {
24   RISCV64_REG_PC,
25   RISCV64_REG_RA,
26   RISCV64_REG_SP,
27   RISCV64_REG_GP,
28   RISCV64_REG_TP,
29   RISCV64_REG_T0,
30   RISCV64_REG_T1,
31   RISCV64_REG_T2,
32   RISCV64_REG_S0,
33   RISCV64_REG_S1,
34   RISCV64_REG_A0,
35   RISCV64_REG_A1,
36   RISCV64_REG_A2,
37   RISCV64_REG_A3,
38   RISCV64_REG_A4,
39   RISCV64_REG_A5,
40   RISCV64_REG_A6,
41   RISCV64_REG_A7,
42   RISCV64_REG_S2,
43   RISCV64_REG_S3,
44   RISCV64_REG_S4,
45   RISCV64_REG_S5,
46   RISCV64_REG_S6,
47   RISCV64_REG_S7,
48   RISCV64_REG_S8,
49   RISCV64_REG_S9,
50   RISCV64_REG_S10,
51   RISCV64_REG_S11,
52   RISCV64_REG_T3,
53   RISCV64_REG_T4,
54   RISCV64_REG_T5,
55   RISCV64_REG_T6,
56   RISCV64_REG_REAL_COUNT,
57   // This is the last real register, vlenb is a special register value.
58   RISCV64_REG_VLENB = RISCV64_REG_REAL_COUNT,
59   RISCV64_REG_COUNT,
60 };
61 
62 }  // namespace unwindstack
63