diff options
author | Weiwei Li <liweiwei@iscas.ac.cn> | 2023-05-17 10:57:08 -0300 |
---|---|---|
committer | Alistair Francis <alistair.francis@wdc.com> | 2023-06-13 16:59:01 +1000 |
commit | 61a33ea95a7efb7f9a211b1a812e9bb6e7525f1d (patch) | |
tree | b53dfadd32def5b127f8bca493d25a0bd41cc363 | |
parent | b9a2b98e172336e8ec464b3b63bf0dedba944502 (diff) | |
download | qemu-61a33ea95a7efb7f9a211b1a812e9bb6e7525f1d.zip qemu-61a33ea95a7efb7f9a211b1a812e9bb6e7525f1d.tar.gz qemu-61a33ea95a7efb7f9a211b1a812e9bb6e7525f1d.tar.bz2 |
target/riscv: Mask the implicitly enabled extensions in isa_string based on priv version
Using implicitly enabled extensions such as Zca/Zcf/Zcd instead of their
super extensions can simplify the extension related check. However, they
may have higher priv version than their super extensions. So we should mask
them in the isa_string based on priv version to make them invisible to user
if the specified priv version is lower than their minimal priv version.
Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn>
Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230517135714.211809-6-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-rw-r--r-- | target/riscv/cpu.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index a0c4acf..81a785d 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -1758,7 +1758,8 @@ static void riscv_isa_string_ext(RISCVCPU *cpu, char **isa_str, int i; for (i = 0; i < ARRAY_SIZE(isa_edata_arr); i++) { - if (isa_ext_is_enabled(cpu, &isa_edata_arr[i])) { + if (cpu->env.priv_ver >= isa_edata_arr[i].min_version && + isa_ext_is_enabled(cpu, &isa_edata_arr[i])) { new = g_strconcat(old, "_", isa_edata_arr[i].name, NULL); g_free(old); old = new; |