no mul->shl as it confuses address matching
Additionally, the strength-reduction for small powers of two is handled by amd64/emit.c now.
This commit is contained in:
parent
6dab93b4b2
commit
7de34d3454
1 changed files with 1 additions and 11 deletions
12
simpl.c
12
simpl.c
|
@ -81,13 +81,6 @@ ins(Ins **pi, int *new, Blk *b, Fn *fn)
|
|||
blit((i-1)->arg, rsval(i->arg[0]), fn);
|
||||
*pi = i-1;
|
||||
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];
|
||||
|
@ -100,12 +93,9 @@ ins(Ins **pi, int *new, Blk *b, Fn *fn)
|
|||
if (i->op == Ourem) {
|
||||
i->op = Oand;
|
||||
i->arg[1] = getcon((1ull<<n) - 1, fn);
|
||||
} else if (i->op == Oudiv) {
|
||||
} else {
|
||||
i->op = Oshr;
|
||||
i->arg[1] = getcon(n, fn);
|
||||
} else if (i->op == Omul) {
|
||||
i->op = Oshl;
|
||||
i->arg[1] = getcon(n, fn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue