From 7292ed2fd87dfb835bba73d12e3140321fcfdff4 Mon Sep 17 00:00:00 2001 From: frief Date: Sat, 4 Dec 2004 11:15:06 +0000 Subject: [PATCH] added 261.a,b (16 bit rotate) by Stas Sergeev with reversed byte order git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3601 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/mcs51/peeph.def | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/mcs51/peeph.def b/src/mcs51/peeph.def index 3af2821a..ad563da2 100644 --- a/src/mcs51/peeph.def +++ b/src/mcs51/peeph.def @@ -4148,3 +4148,48 @@ replace { sjmp %20 %3: } if labelJTInRange + +// applies to: a = (a << 1) | (a >> 15); +replace { + mov a,%1 + add a,%1 + mov %1,a + mov a,%2 + rlc a + mov %2,a + mov a,%1 + mov acc.0,c + mov %1,a +} by { + ; Peephole 261.a optimized left rol + mov a,%1 + rlc a + xch a,%2 + rlc a + xch a,%2 + mov acc.0,c + mov %1,a +} + +// applies to: a = (a << 15) | (a >> 1); +replace { + clr c + mov a,%1 + rrc a + mov %1,a + mov a,%2 + rrc a + mov %2,a + mov a,%1 + mov acc.7,c + mov %1,a +} by { + ; Peephole 261.b optimized right rol + mov a,%1 + rrc a + xch a,%2 + rrc a + xch a,%2 + mov acc.7,c + mov %1,a +} -- 2.30.2