From 812bb36e322c36719e66ce8443ff583058d53461 Mon Sep 17 00:00:00 2001 From: lemon Date: Sun, 2 Nov 2025 19:25:03 +0100 Subject: isel: fix 3-address add when used for flags in branch --- amd64/isel.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'amd64') diff --git a/amd64/isel.c b/amd64/isel.c index 49efce8..133868e 100644 --- a/amd64/isel.c +++ b/amd64/isel.c @@ -477,6 +477,9 @@ seljmp(struct function *fn, struct block *blk) ins->r = insertinstr(blk, curi, mkinstr(Ocopy, ins->cls, ZEROREF)); } ins->keep = 1; + } else if (instrtab[c.i].op == Oadd) { + /* prevent a 3-address add whose flag results are used from becoming a LEA */ + instrtab[c.i].inplace = 1; } } } else if (blk->jmp.t == Jret) { -- cgit v1.2.3