simplify 8*x as well as x*8

This commit is contained in:
Quentin Carbonneaux 2024-06-18 16:59:42 +02:00
parent 0631bc4fec
commit 96f18be71d

16
simpl.c
View file

@ -65,7 +65,7 @@ ins(Ins **pi, int *new, Blk *b, Fn *fn)
i = *pi;
/* simplify more instructions here;
* copy 0 into xor bit rotations,
* copy 0 into xor, bit rotations,
* etc. */
switch (i->op) {
case Oblit1:
@ -80,8 +80,14 @@ ins(Ins **pi, int *new, Blk *b, Fn *fn)
}
blit((i-1)->arg, rsval(i->arg[0]), fn);
*pi = i-1;
break;
return;
case Omul:
if (rtype(i->arg[0]) == RCon) {
r = i->arg[0];
i->arg[0] = i->arg[1];
i->arg[1] = r;
}
/* fall through */
case Oudiv:
case Ourem:
r = i->arg[1];
@ -103,12 +109,10 @@ ins(Ins **pi, int *new, Blk *b, Fn *fn)
}
}
}
/* fall through */
default:
if (*new)
emiti(*i);
break;
}
if (*new)
emiti(*i);
}
void