Skip to content

Commit

Permalink
target/riscv: use isa_ext_update_enabled() in init_max_cpu_extensions()
Browse files Browse the repository at this point in the history
Before adding support to detect if an extension was user set we need to
handle how we're enabling extensions in riscv_init_max_cpu_extensions().
object_property_set_bool() calls the set() callback for the property,
and we're going to use this callback to set the 'multi_ext_user_opts'
hash.

This means that, as is today, all extensions we're setting for the 'max'
CPU will be seen as user set in the future. Let's change set_bool() to
isa_ext_update_enabled() that will just enable/disable the flag on a
certain offset.

Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Message-ID: <20230912132423.268494-19-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
  • Loading branch information
danielhb authored and alistair23 committed Oct 12, 2023
1 parent 549cbf7 commit 25aa6f7
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions target/riscv/cpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -2166,24 +2166,24 @@ static void riscv_init_max_cpu_extensions(Object *obj)
set_misa(env, env->misa_mxl, env->misa_ext | RVG | RVJ | RVV);

for (prop = riscv_cpu_extensions; prop && prop->name; prop++) {
object_property_set_bool(obj, prop->name, true, NULL);
isa_ext_update_enabled(cpu, prop->offset, true);
}

/* set vector version */
env->vext_ver = VEXT_VERSION_1_00_0;

/* Zfinx is not compatible with F. Disable it */
object_property_set_bool(obj, "zfinx", false, NULL);
object_property_set_bool(obj, "zdinx", false, NULL);
object_property_set_bool(obj, "zhinx", false, NULL);
object_property_set_bool(obj, "zhinxmin", false, NULL);
isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_zfinx), false);
isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_zdinx), false);
isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_zhinx), false);
isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_zhinxmin), false);

object_property_set_bool(obj, "zce", false, NULL);
object_property_set_bool(obj, "zcmp", false, NULL);
object_property_set_bool(obj, "zcmt", false, NULL);
isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_zce), false);
isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_zcmp), false);
isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_zcmt), false);

if (env->misa_mxl != MXL_RV32) {
object_property_set_bool(obj, "zcf", false, NULL);
isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_zcf), false);
}
}

Expand Down

0 comments on commit 25aa6f7

Please sign in to comment.