On 3/16/21 9:03 AM, Georg Kotheimer wrote:
When decode_insn16() fails, we fall back to decode_RV32_64C() for further compressed instruction decoding.
I think this is all dead code now. Certainly c.ld/c.sd are in insn16-64.decode and c.flw/c.fsw are in insn16-32.decode.
Digging, we failed to remove these functions here: f330433b363. You are absolutely right there's a missing
if (!decode_insn16(ctx, opcode)) { /* fall back to old decoder */ - decode_RV32_64C(ctx, opcode); + if (!decode_RV32_64C(ctx, opcode)) { + gen_exception_illegal(ctx);
exception here, but we can remove the last remnants of the old decoder instead of patching them.
r~