diff options
| author | 2025-12-17 09:11:06 +0100 | |
|---|---|---|
| committer | 2025-12-17 09:11:06 +0100 | |
| commit | 8b486bc9a1333d368538f91e046bf30f68798ce3 (patch) | |
| tree | 875fbd92d2d97267c7553e77604866fd2bac74c2 /x86_64/emit.c | |
| parent | 842f49f34464440abb2799ef007959cc5e8b7cf8 (diff) | |
emit: don't put the exit block always at the end of the function
Diffstat (limited to 'x86_64/emit.c')
| -rw-r--r-- | x86_64/emit.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/x86_64/emit.c b/x86_64/emit.c index 4a9d9d9..13121b3 100644 --- a/x86_64/emit.c +++ b/x86_64/emit.c @@ -1339,7 +1339,12 @@ emitbin(struct function *fn) exit = blk; continue; } else { - useblk(fn, exit = newblk(fn)); + exit = newblk(fn); + exit->lnext = blk->lnext; + exit->lprev = blk; + blk->lnext = exit; + exit->lnext->lprev = exit; + exit->id = fn->nblk++; exit->jmp.t = Jret; } } |