Re: [PATCH] target/arm: Don't assert() for ISB/SB inside IT block

2025-05-08 Thread Peter Maydell
On Thu, 8 May 2025 at 08:31, Michael Tokarev wrote: > > On 01.05.2025 15:55, Peter Maydell wrote: > > If the guest code has an ISB or SB insn inside an IT block, we > > generate incorrect code which trips a TCG assertion: > Is this change applicable for older stable releases, besides 10.0 > (curr

Re: [PATCH] target/arm: Don't assert() for ISB/SB inside IT block

2025-05-08 Thread Michael Tokarev
On 01.05.2025 15:55, Peter Maydell wrote: If the guest code has an ISB or SB insn inside an IT block, we generate incorrect code which trips a TCG assertion: qemu-system-arm: ../tcg/tcg-op.c:3343: void tcg_gen_goto_tb(unsigned int): Assertion `(tcg_ctx->goto_tb_issue_mask & (1 << idx)) == 0' fa

Re: [PATCH] target/arm: Don't assert() for ISB/SB inside IT block

2025-05-01 Thread Richard Henderson
On 5/1/25 05:55, Peter Maydell wrote: (NB: the TCG optimizer doesn't optimize out the jump-to-next, but we can't really avoid emitting it because we don't know at the point we're emitting the handling for the condexec check whether this insn is going to happen to be a nop for us or not.) Heh.

[PATCH] target/arm: Don't assert() for ISB/SB inside IT block

2025-05-01 Thread Peter Maydell
If the guest code has an ISB or SB insn inside an IT block, we generate incorrect code which trips a TCG assertion: qemu-system-arm: ../tcg/tcg-op.c:3343: void tcg_gen_goto_tb(unsigned int): Assertion `(tcg_ctx->goto_tb_issue_mask & (1 << idx)) == 0' failed. This is because we call gen_goto_tb(d