From: Weiwei Li Date: Wed, 17 May 2023 13:57:08 +0000 (-0300) Subject: target/riscv: Mask the implicitly enabled extensions in isa_string based on priv... X-Git-Tag: pull-xen-20230801~81^2~53 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=61a33ea95a7efb7f9a211b1a812e9bb6e7525f1d;p=people%2Faperard%2Fqemu-dm.git 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 Signed-off-by: Junqiang Wang Reviewed-by: Daniel Henrique Barboza Acked-by: Alistair Francis Message-Id: <20230517135714.211809-6-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index a0c4acfb47..81a785d525 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;