summary refs log tree commit diff stats
path: root/results/scraper/gitlab/issues_text/target_riscv/host_missing/accel_TCG/1224
blob: 960dc2e9cd6e2bc67b9c92ea1b2c320f665fa015 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
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.