From 9e926eeb4e3c716bcbd11377c131061cd06900ef Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sat, 3 Sep 2016 19:05:28 +0200 Subject: 5c: do shift propagation for rotate right (ROR) --- sys/src/cmd/5c/peep.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sys') 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']) -- cgit v1.2.3