|
33 | 33 | extern "C" { |
34 | 34 | #endif |
35 | 35 |
|
36 | | -#define RV_REGS_LIST \ |
37 | | - _(zero) /* hard-wired zero, ignoring any writes */ \ |
38 | | - _(ra) /* return address */ \ |
39 | | - _(sp) /* stack pointer */ \ |
40 | | - _(gp) /* global pointer */ \ |
41 | | - _(tp) /* thread pointer */ \ |
42 | | - _(t0) /* temporary/alternate link register */ \ |
43 | | - _(t1) /* temporaries */ \ |
44 | | - _(t2) \ |
45 | | - _(s0) /* saved register/frame pointer */ \ |
46 | | - _(s1) \ |
47 | | - _(a0) /* function arguments / return values */ \ |
48 | | - _(a1) \ |
49 | | - _(a2) /* function arguments */ \ |
50 | | - _(a3) \ |
51 | | - _(a4) \ |
52 | | - _(a5) \ |
53 | | - _(a6) \ |
54 | | - _(a7) \ |
55 | | - _(s2) /* saved register */ \ |
56 | | - _(s3) \ |
57 | | - _(s4) \ |
58 | | - _(s5) \ |
59 | | - _(s6) \ |
60 | | - _(s7) \ |
61 | | - _(s8) \ |
62 | | - _(s9) \ |
63 | | - _(s10) \ |
64 | | - _(s11) \ |
65 | | - _(t3) /* temporary register */ \ |
66 | | - _(t4) \ |
67 | | - _(t5) \ |
68 | | - _(t6) |
69 | | - |
| 36 | +#define RV_REGS_LIST \ |
| 37 | + _(zero) /* hard-wired zero, ignoring any writes */ \ |
| 38 | + _(ra) /* return address */ \ |
| 39 | + _(sp) /* stack pointer */ \ |
| 40 | + _(gp) /* global pointer */ \ |
| 41 | + _(tp) /* thread pointer */ \ |
| 42 | + _(t0) /* temporary/alternate link register */ \ |
| 43 | + _(t1) /* temporaries */ \ |
| 44 | + _(t2) \ |
| 45 | + _(s0) /* saved register/frame pointer */ \ |
| 46 | + _(s1) \ |
| 47 | + _(a0) /* function arguments / return values */ \ |
| 48 | + _(a1) \ |
| 49 | + _(a2) /* function arguments */ \ |
| 50 | + _(a3) \ |
| 51 | + _(a4) \ |
| 52 | + _(a5) \ |
| 53 | + IIF(RV32_HAS(RV32E)(, _(a6) _(a7) _(s2) /* saved register */ \ |
| 54 | + _(s3) _(s4) _(s5) _(s6) _(s7) _(s8) _(s9) _(s10) \ |
| 55 | + _(s11) _(t3) /* temporary register */ \ |
| 56 | + _(t4) _(t5) _(t6))) |
70 | 57 | /* RISC-V registers (mnemonics, ABI names) |
71 | 58 | * |
72 | 59 | * There are 32 registers in RISC-V. The program counter is a further register |
@@ -117,6 +104,7 @@ enum SV32_PTE_PERM { |
117 | 104 | #define MISA_SUPER (1 << ('S' - 'A')) |
118 | 105 | #define MISA_USER (1 << ('U' - 'A')) |
119 | 106 | #define MISA_I (1 << ('I' - 'A')) |
| 107 | +#define MISA_E (1 << ('E' - 'A')) |
120 | 108 | #define MISA_M (1 << ('M' - 'A')) |
121 | 109 | #define MISA_A (1 << ('A' - 'A')) |
122 | 110 | #define MISA_F (1 << ('F' - 'A')) |
|
0 commit comments