Hi all! Running "msgmerge" with qemu-arm (d616cf1d1510c963fc1876cb10f5f1fa226b54ef) I get stuck in an endless loop in exec.c (~line 1294):
code-snippet: ptb = &tb_next->jmp_first; for(;;) { tb1 = *ptb; n1 = (long)tb1 & 3; tb1 = (TranslationBlock *)((long)tb1 & ~3); if (n1 == n && tb1 == tb) break; ptb = &tb1->jmp_next[n1]; } The assembly: 0x0000000060020b20 <tb_reset_jump_recursive2+80>: mov %edx,%edx 0x0000000060020b22 <tb_reset_jump_recursive2+82>: add $0xa,%rdx 0x0000000060020b26 <tb_reset_jump_recursive2+86>: lea (%rax,%rdx,8),%rcx 0x0000000060020b2a <tb_reset_jump_recursive2+90>: mov (%rax,%rdx,8),%rax 0x0000000060020b2e <tb_reset_jump_recursive2+94>: mov %eax,%edx 0x0000000060020b30 <tb_reset_jump_recursive2+96>: and $0xfffffffffffffffc,%rax 0x0000000060020b34 <tb_reset_jump_recursive2+100>: and $0x3,%edx 0x0000000060020b37 <tb_reset_jump_recursive2+103>: cmp %rax,%rbx 0x0000000060020b3a <tb_reset_jump_recursive2+106>: jne 0x60020b20 <tb_reset_jump_recursive2+80> I added some debug output and this looks like: [..] debugme: n1 0 == n 0 && tb1 30ef2730 == tb 30ef2730 debugme: n1 0 == n 0 && tb1 30ef2810 == tb 30ef2810 debugme: n1 1 == n 1 && tb1 30ef2880 == tb 30ef2880 debugme: n1 0 == n 0 && tb1 30ef28f0 == tb 30ef28f0 debugme: n1 0 == n 0 && tb1 30ef2960 == tb 30ef2960 and then: debugme: n1 0 == n 0 && tb1 30ef3370 == tb 30ef2a40 debugme: n1 1 == n 0 && tb1 30ef33e0 == tb 30ef2a40 debugme: n1 2 == n 0 && tb1 30ef2ab0 == tb 30ef2a40 debugme: n1 0 == n 0 && tb1 30ef3370 == tb 30ef2a40 debugme: n1 1 == n 0 && tb1 30ef33e0 == tb 30ef2a40 debugme: n1 2 == n 0 && tb1 30ef2ab0 == tb 30ef2a40 debugme: n1 0 == n 0 && tb1 30ef3370 == tb 30ef2a40 debugme: n1 1 == n 0 && tb1 30ef33e0 == tb 30ef2a40 debugme: n1 2 == n 0 && tb1 30ef2ab0 == tb 30ef2a40 debugme: n1 0 == n 0 && tb1 30ef3370 == tb 30ef2a40 debugme: n1 1 == n 0 && tb1 30ef33e0 == tb 30ef2a40 debugme: n1 2 == n 0 && tb1 30ef2ab0 == tb 30ef2a40 debugme: n1 0 == n 0 && tb1 30ef3370 == tb 30ef2a40 debugme: n1 1 == n 0 && tb1 30ef33e0 == tb 30ef2a40 debugme: n1 2 == n 0 && tb1 30ef2ab0 == tb 30ef2a40 debugme: n1 0 == n 0 && tb1 30ef3370 == tb 30ef2a40 debugme: n1 1 == n 0 && tb1 30ef33e0 == tb 30ef2a40 debugme: n1 2 == n 0 && tb1 30ef2ab0 == tb 30ef2a40 debugme: n1 0 == n 0 && tb1 30ef3370 == tb 30ef2a40 [..] So we never hit the exit path in this case. Does this ring a bell ? Anyone ? Digging deeper ... Best, Jan-Simon