On 1/13/21 3:15 AM, Jiaxun Yang wrote: > 在 2021/1/13 上午5:54, Philippe Mathieu-Daudé 写道: >> Loongson is next step in the "MIPS decodetree conversion" epic. >> Start with the simplest extension. >> >> The diffstat addition comes from the TCG functions expanded. >> The code is easier to review now. >> IMO this is also a good template to show how easy a decodetree >> conversion can be (and how nice the .decode file is to review) :P >> >> Please review, >> >> Phil. >> >> Based-on: <20210112184156.2014305-1-f4...@amsat.org> >> "decodetree: Allow 'dot' in opcode names" >> >> Philippe Mathieu-Daudé (6): >> target/mips: Re-introduce OPC_ADDUH_QB_DSP and OPC_MUL_PH_DSP >> target/mips: Convert Loongson DDIV.G opcodes to decodetree >> target/mips: Convert Loongson DIV.G opcodes to decodetree >> target/mips: Convert Loongson [D]DIVU.G opcodes to decodetree >> target/mips: Convert Loongson [D]MOD[U].G opcodes to decodetree >> target/mips: Convert Loongson [D]MULT[U].G opcodes to decodetree >> >> target/mips/translate.h | 1 + >> target/mips/godson2.decode | 29 +++ >> target/mips/loong-ext.decode | 30 +++ > > Hi Philippe, > > Thanks for the template! > > Just a small question, where should we perform ISA availability check? > Before calling generated decoder or after decoded?
The check is done before in decode_loongson: bool decode_loongson(DisasContext *ctx, uint32_t insn) { if ((ctx->insn_flags & INSN_LOONGSON2E) // if ISA available ... && decode_godson2(ctx, ctx->opcode)) { // and opcode supported // return success return true; } // else keep going ... if ((ctx->insn_flags & ASE_LEXT) && decode_loong_ext(ctx, ctx->opcode)) { return true; } // finally return false, if nothing else decoded // gen_reserved_instruction will be called in the // main decode loop. return false; } > > Loong-EXT is a super set of Loongson2F's Godson2 and MMI instructions, > how could we tell it? MMI instructions are currently handled by the ASE_LMMI flag, a different decoder (which will also be handled by this function, similarly to ASE_LEXT). Regards, Phil.