Zdinx/Zhinx{min} require Zfinx. And require relationship is usually done by check currently.
Signed-off-by: Weiwei Li <liwei...@iscas.ac.cn> Signed-off-by: Junqiang Wang <wangjunqi...@iscas.ac.cn> --- target/riscv/cpu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 1a5099382c..35bee8ff42 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -930,8 +930,9 @@ static void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, Error **errp) cpu->cfg.ext_zhinxmin = true; } - if (cpu->cfg.ext_zdinx || cpu->cfg.ext_zhinxmin) { - cpu->cfg.ext_zfinx = true; + if ((cpu->cfg.ext_zdinx || cpu->cfg.ext_zhinxmin) && !cpu->cfg.ext_zfinx) { + error_setg(errp, "Zdinx/Zhinx/Zhinxmin extensions require Zfinx"); + return; } if (cpu->cfg.ext_zfinx) { -- 2.25.1