diff options
| author | 2025-12-12 11:54:53 +0100 | |
|---|---|---|
| committer | 2025-12-12 11:54:53 +0100 | |
| commit | 53be85354860d39e15208ad765fbc3d373369a3d (patch) | |
| tree | 609e0e119875397434dce0a320de917fcbc41397 /amd64 | |
| parent | 83e5dcd6b821a6afafe15b06114a49de45310084 (diff) | |
isel: fix bug where sub turned into add, but inplace didn't reflect
Diffstat (limited to 'amd64')
| -rw-r--r-- | amd64/isel.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/amd64/isel.c b/amd64/isel.c index 77d5b9e..a0c913c 100644 --- a/amd64/isel.c +++ b/amd64/isel.c @@ -462,12 +462,12 @@ sel(struct function *fn, struct instr *ins, struct block *blk, int *curi) ins->inplace = 1; struct instr sub = *ins; rswap(sub.l, sub.r); - ins->op = Oneg; + ins->op = op = Oneg; ins->l = insertinstr(blk, (*curi)++, sub); ins->r = NOREF; goto ALU; } else if (kisint(ins->cls) && isintcon(ins->r)) { - ins->op = Oadd; + ins->op = op = Oadd; ins->r = mkintcon(concls(ins->r), -intconval(ins->r)); } else { goto ALU; |