summary refs log tree commit diff stats
path: root/results/classifier/accel-gemma3:12b/tcg/1224
blob: e9f477b34b02a92592b0a9b948ffd63c8e6eac52 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
QEMU crashes with failed assertion when executing compressed instructions with C extension support disabled
Description of problem:
When executing compressed instructions with compressed instruction support disabled (c=off), the tcg riscv translations fails an assertion.
```
qemu-system-riscv64: qemu/accel/tcg/translate-all.c:1449: tb_gen_code: Assertion `tb->size != 0' failed.
```

I believe that the issue is caused due to the fact that the compressed instruction without RVC support branch of the `decode_opc` function does not update `ctx->pc_succ_insn`, which causes `ctx->base.pc_next` to not be updated in `riscv_tr_translate_insn`, which then finally triggers the assertion once the tcg generation returns to `tb_gen_code`.

Side note, it also seems like the `gen_exception_illegal` call in the same if case is not needed, since we also call it again at the end of the function.