On 7/13/2026 1:07 PM, Matheus Tavares Bernardino wrote: > Some packets end a translation block without a change-of-flow. These do > not update the PC during commit, so gen_end_tb() leaves > hex_gpr[HEX_REG_PC] pointing at the same packet and the block gets > re-entered forever. Set PC explicitly to next_PC in that gen_end_tb() > branch to fix execution of next blocks. > > Note that gen_start_packet() used to have a special case for > tlblock/k0lock, setting ctx->next_PC to the packet's own address. This > relies on the tlblock/k0lock helpers to properly advance the PC, which > is never done (only env->next_PC is updated, but that never reaches > hex_gpr[HEX_REG_PC]). Drop the special case so these packets advance to > the following packet like any other non-COF TB terminator. > > Signed-off-by: Matheus Tavares Bernardino > <[email protected]> > --- > target/hexagon/translate.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) >
Reviewed-by: Pierrick Bouvier <[email protected]>
