summaryrefslogtreecommitdiff
path: root/sys/src
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-09-03 19:05:28 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2016-09-03 19:05:28 +0200
commit9e926eeb4e3c716bcbd11377c131061cd06900ef (patch)
treed626699a6dcd83c58e3758e69629fb89d6294984 /sys/src
parenta5d8cd30bb126b301cd79393540be63558dcfe89 (diff)
5c: do shift propagation for rotate right (ROR)
Diffstat (limited to 'sys/src')
-rw-r--r--sys/src/cmd/5c/peep.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/src/cmd/5c/peep.c b/sys/src/cmd/5c/peep.c
index a38e4dfb0..c7f52512b 100644
--- a/sys/src/cmd/5c/peep.c
+++ b/sys/src/cmd/5c/peep.c
@@ -45,7 +45,7 @@ loop1:
t = 0;
for(r=firstr; r!=R; r=r->link) {
p = r->prog;
- if(p->as == ASLL || p->as == ASRL || p->as == ASRA) {
+ if(p->as == ASLL || p->as == ASRL || p->as == ASRA || p->as == AROR) {
/*
* elide shift into D_SHIFT operand of subsequent instruction
*/
@@ -669,6 +669,9 @@ shiftprop(Reg *r)
case ASRA:
o |= 2<<5;
break;
+ case AROR:
+ o |= 3<<5;
+ break;
}
p2->from.offset = o;
if(debug['H'])