On 9/6/22 13:22, Christoph Muellner wrote:
> @@ -732,6 +733,7 @@ static int ex_rvc_shifti(DisasContext *ctx, int imm)
> #include "decode-xtheadbs.c.inc"
> #include "decode-xtheadcmo.c.inc"
> #include "decode-xtheadcondmov.c.inc"
> +#include "decode-xtheadfmemidx.c.inc"
> #include "decode-xtheadmac.c.inc"
> #include "decode-xtheadmemidx.c.inc"
> #include "decode-xtheadmempair.c.inc"
> @@ -1061,6 +1063,7 @@ static void decode_opc(CPURISCVState *env, DisasContext *ctx, uint16_t opcode)
> { has_xtheadbs_p, decode_xtheadbs },
> { has_xtheadcmo_p, decode_xtheadcmo },
> { has_xtheadcondmov_p, decode_xtheadcondmov },
> + { has_xtheadfmemidx_p, decode_xtheadfmemidx },
> { has_xtheadmac_p, decode_xtheadmac },
> { has_xtheadmemidx_p, decode_xtheadmemidx },
> { has_xtheadmempair_p, decode_xtheadmempair },
I think you should have a single decoder for all of the xthread extensions, and each
translate function should test for the individual extension. You know up-front that these
extensions do not conflict.
Ok, I will restructure the series and use a single decoder.
Thanks!
r~