aboutsummaryrefslogtreecommitdiffhomepage
path: root/x86_64
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2025-12-17 09:11:06 +0100
committerlemon <lsof@mailbox.org>2025-12-17 09:11:06 +0100
commit8b486bc9a1333d368538f91e046bf30f68798ce3 (patch)
tree875fbd92d2d97267c7553e77604866fd2bac74c2 /x86_64
parent842f49f34464440abb2799ef007959cc5e8b7cf8 (diff)
emit: don't put the exit block always at the end of the function
Diffstat (limited to 'x86_64')
-rw-r--r--x86_64/emit.c7
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;
}
}