aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--amd64/isel.c3
1 files changed, 3 insertions, 0 deletions
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) {