From 7de34d3454e0a6a4e66b414f03441723d340dec5 Mon Sep 17 00:00:00 2001 From: Quentin Carbonneaux Date: Wed, 19 Jun 2024 10:50:54 +0200 Subject: [PATCH] no mul->shl as it confuses address matching Additionally, the strength-reduction for small powers of two is handled by amd64/emit.c now. --- simpl.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/simpl.c b/simpl.c index 8588d6c..5b16f54 100644 --- a/simpl.c +++ b/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<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); } } }