diff options
Diffstat (limited to 'amd64/isel.c')
| -rw-r--r-- | amd64/isel.c | 3 |
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) { |