simplify 8*x as well as x*8
This commit is contained in:
parent
0631bc4fec
commit
96f18be71d
1 changed files with 10 additions and 6 deletions
16
simpl.c
16
simpl.c
|
@ -65,7 +65,7 @@ ins(Ins **pi, int *new, Blk *b, Fn *fn)
|
||||||
|
|
||||||
i = *pi;
|
i = *pi;
|
||||||
/* simplify more instructions here;
|
/* simplify more instructions here;
|
||||||
* copy 0 into xor bit rotations,
|
* copy 0 into xor, bit rotations,
|
||||||
* etc. */
|
* etc. */
|
||||||
switch (i->op) {
|
switch (i->op) {
|
||||||
case Oblit1:
|
case Oblit1:
|
||||||
|
@ -80,8 +80,14 @@ ins(Ins **pi, int *new, Blk *b, Fn *fn)
|
||||||
}
|
}
|
||||||
blit((i-1)->arg, rsval(i->arg[0]), fn);
|
blit((i-1)->arg, rsval(i->arg[0]), fn);
|
||||||
*pi = i-1;
|
*pi = i-1;
|
||||||
break;
|
return;
|
||||||
case Omul:
|
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 Oudiv:
|
||||||
case Ourem:
|
case Ourem:
|
||||||
r = i->arg[1];
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
if (*new)
|
||||||
|
emiti(*i);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Add table
Reference in a new issue