aboutsummaryrefslogtreecommitdiffhomepage
path: root/regalloc.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2023-06-24 23:37:14 +0200
committerlemon <lsof@mailbox.org>2023-06-24 23:37:14 +0200
commitba84ebbd89d1dbe431f71b010b2d71214303ae48 (patch)
tree3e39efbbacd6892986b0bff70cf232bd3c87e32d /regalloc.c
parenta140edef347a033a5743346ca1d29687e424910a (diff)
fix regalloc thinking some ins are dead by adding ins.keep
Diffstat (limited to 'regalloc.c')
-rw-r--r--regalloc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/regalloc.c b/regalloc.c
index ae81fcf..6aea986 100644
--- a/regalloc.c
+++ b/regalloc.c
@@ -688,7 +688,7 @@ regalloc(struct function *fn)
blk->id = id++;
for (int i = 0; i < blk->ins.n; ++i) {
struct instr *ins = &instrtab[blk->ins.p[i]];
- if (!ins->reg && insrescls(*ins) && ins->op != Omove && !oiscmp(ins->op)) {
+ if (!ins->reg && insrescls(*ins) && ins->op != Omove && !ins->keep) {
/* dead */
Nop:
*ins = mkinstr(Onop,0,);