|
45 | 45 | #define RISCV_HWPROBE_KEY_IMA_EXT_0 4
|
46 | 46 | #define RISCV_HWPROBE_IMA_FD (1 << 0)
|
47 | 47 | #define RISCV_HWPROBE_IMA_C (1 << 1)
|
| 48 | +#define RISCV_HWPROBE_IMA_V (1 << 2) |
| 49 | +#define RISCV_HWPROBE_EXT_ZBA (1 << 3) |
| 50 | +#define RISCV_HWPROBE_EXT_ZBB (1 << 4) |
| 51 | +#define RISCV_HWPROBE_EXT_ZBS (1 << 5) |
48 | 52 |
|
49 | 53 | #define RISCV_HWPROBE_KEY_CPUPERF_0 5
|
50 | 54 | #define RISCV_HWPROBE_MISALIGNED_UNKNOWN (0 << 0)
|
@@ -129,6 +133,18 @@ void RiscvHwprobe::add_features_from_query_result() {
|
129 | 133 | if (is_set(RISCV_HWPROBE_KEY_IMA_EXT_0, RISCV_HWPROBE_IMA_C)) {
|
130 | 134 | VM_Version::ext_C.enable_feature();
|
131 | 135 | }
|
| 136 | + if (is_set(RISCV_HWPROBE_KEY_IMA_EXT_0, RISCV_HWPROBE_IMA_V)) { |
| 137 | + VM_Version::ext_V.enable_feature(); |
| 138 | + } |
| 139 | + if (is_set(RISCV_HWPROBE_KEY_IMA_EXT_0, RISCV_HWPROBE_EXT_ZBA)) { |
| 140 | + VM_Version::ext_Zba.enable_feature(); |
| 141 | + } |
| 142 | + if (is_set(RISCV_HWPROBE_KEY_IMA_EXT_0, RISCV_HWPROBE_EXT_ZBB)) { |
| 143 | + VM_Version::ext_Zbb.enable_feature(); |
| 144 | + } |
| 145 | + if (is_set(RISCV_HWPROBE_KEY_IMA_EXT_0, RISCV_HWPROBE_EXT_ZBS)) { |
| 146 | + VM_Version::ext_Zbs.enable_feature(); |
| 147 | + } |
132 | 148 | if (is_valid(RISCV_HWPROBE_KEY_CPUPERF_0)) {
|
133 | 149 | VM_Version::unaligned_access.enable_feature(
|
134 | 150 | query[RISCV_HWPROBE_KEY_CPUPERF_0].value & RISCV_HWPROBE_MISALIGNED_MASK);
|
|
0 commit comments