@samitouri / QOSamiQemu / commits / 225b8ee51f

target/riscv/tcg: use isa_edata_arr[] to enable max exts

Use isa_edata_arr[] to enable all feasible extensions. Filter experimental and vendor extensions by checking if the riscv,isa or the prop name starts with 'x'. Signed-off-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20260512032926.1978818-11-daniel.barboza@oss.qualcomm.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

Daniel Henrique Barboza committed May 12, 2026 at 00:29 UTC 225b8ee51facf0eb18ec5536771283aa46e8a6ab
1 file changed +8 -3
target/riscv/tcg/tcg-cpu.c
+8 -3
@@ -1614,13 +1614,18 @@ static void riscv_init_max_cpu_extensions(Object *obj)
1614 {
1615 RISCVCPU *cpu = RISCV_CPU(obj);
1616 CPURISCVState *env = &cpu->env;
1617 - const RISCVCPUMultiExtConfig *prop;
1617 + const RISCVIsaExtData *edata;
1618
1619 /* Enable RVG and RVV that are disabled by default */
1620 riscv_cpu_set_misa_ext(env, env->misa_ext | RVB | RVG | RVV);
1621
1622 - for (prop = riscv_cpu_extensions; prop && prop->name; prop++) {
1623 - isa_ext_update_enabled(cpu, prop->offset, true);
1622 + for (edata = isa_edata_arr; edata && edata->name; edata++) {
1623 + if (edata->name[0] == 'x'
1624 + || (edata->prop_name && edata->prop_name[0] == 'x')) {
1625 + continue;
1626 + }
1627 +
1628 + isa_ext_update_enabled(cpu, edata->ext_enable_offset, true);
1629 }
1630
1631 /*