diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-09-03 19:05:28 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-09-03 19:05:28 +0200 |
commit | 9e926eeb4e3c716bcbd11377c131061cd06900ef (patch) | |
tree | d626699a6dcd83c58e3758e69629fb89d6294984 /sys/src/cmd | |
parent | a5d8cd30bb126b301cd79393540be63558dcfe89 (diff) |
5c: do shift propagation for rotate right (ROR)
Diffstat (limited to 'sys/src/cmd')
-rw-r--r-- | sys/src/cmd/5c/peep.c | 5 |
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']) |