On 10/24/21 03:02, Richard Henderson wrote: > On 10/23/21 2:47 PM, Philippe Mathieu-Daudé wrote: >> Have check_msa_access() return a boolean value so we can >> return early if MSA is not enabled. >> >> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> >> --- >> target/mips/tcg/msa_translate.c | 20 +++++++++++++------- >> 1 file changed, 13 insertions(+), 7 deletions(-) >> >> diff --git a/target/mips/tcg/msa_translate.c >> b/target/mips/tcg/msa_translate.c >> index 3ef912da6b8..9e0a08fe335 100644 >> --- a/target/mips/tcg/msa_translate.c >> +++ b/target/mips/tcg/msa_translate.c >> @@ -293,19 +293,19 @@ void msa_translate_init(void) >> } >> } >> -static inline int check_msa_access(DisasContext *ctx) >> +static inline bool check_msa_access(DisasContext *ctx) >> { >> if (unlikely((ctx->hflags & MIPS_HFLAG_FPU) && >> !(ctx->hflags & MIPS_HFLAG_F64))) { >> gen_reserved_instruction(ctx); >> - return 0; >> + return false; >> } >> if (unlikely(!(ctx->hflags & MIPS_HFLAG_MSA))) { >> generate_exception_end(ctx, EXCP_MSADIS); >> - return 0; >> + return false; >> } > > When we return false, we have raised an exception. > >> @@ -354,7 +354,9 @@ static bool gen_msa_BxZ_V(DisasContext *ctx, int >> wt, int s16, TCGCond cond) >> { >> TCGv_i64 t0; >> - check_msa_access(ctx); >> + if (!check_msa_access(ctx)) { >> + return false; >> + } > > ... which means that here we should return true, meaning that we have > recognized the instruction and emitted some code for it. In this case: > we have recognized that the instruction is valid but not enabled. > > Otherwise, we will return to decode_opc and (eventually) emit another > gen_reserved_instruction.
Yes, this is what I intended to do. I incorrectly copied/pasted 'false' then it spread all over the file. Thanks for catching this.