@samitouri / QOSamiQemu / commits / 70c0e44343

disas/riscv: Do not recognize c.{addw, subw} with rv32

These code points are reserved with RV32. Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20260812223142.349142-19-richard.henderson@linaro.org> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

Richard Henderson committed Aug 12, 2026 at 15:31 UTC 70c0e443432dda01d4e603961e0baee54e668f4d
1 file changed +10 -2
disas/riscv.c
+10 -2
@@ -3060,8 +3060,16 @@ static void decode_inst_opcode(rv_decode *dec, rv_isa isa)
3060 case 1: op = rv_op_c_xor; break;
3061 case 2: op = rv_op_c_or; break;
3062 case 3: op = rv_op_c_and; break;
3063 - case 4: op = rv_op_c_subw; break;
3064 - case 5: op = rv_op_c_addw; break;
3063 + case 4:
3064 + if (isa != rv32) {
3065 + op = rv_op_c_subw;
3066 + }
3067 + break;
3068 + case 5:
3069 + if (isa != rv32) {
3070 + op = rv_op_c_addw;
3071 + }
3072 + break;
3073 case 6: op = rv_op_c_mul; break;
3074 case 7:
3075 switch ((inst >> 2) & 0b111) {