From: frief Date: Fri, 28 Nov 2003 21:52:37 +0000 (+0000) Subject: added peephole 186.e for char indexed integer array access in code space X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=128be6a6732d5ca515e3d26e5beafdc8ee447b21;p=fw%2Fsdcc added peephole 186.e for char indexed integer array access in code space git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3034 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/src/mcs51/peeph.def b/src/mcs51/peeph.def index f3b8f704..f0609f93 100644 --- a/src/mcs51/peeph.def +++ b/src/mcs51/peeph.def @@ -1228,6 +1228,7 @@ replace { inc dptr } +// char indexed access to: char code table[] = {4,3,2,1}; replace { add a,#%1 mov dpl,a @@ -1242,6 +1243,34 @@ replace { movc a,@a+dptr } +// char indexed access to: int code table[] = {4,3,2,1}; +replace { + mov b,#0x02 + mul ab + add a,#%2 + mov dpl,a + mov a,b + addc a,#(%2 >> 8) + mov dph,a + clr a + movc a,@a+dptr + mov %3,a + mov a,#0x01 + movc a,@a+dptr +} by { + ; Peephole 186.e optimized movc sequence (b, dptr differ) + add a,acc + mov b,a + mov dptr,#%2 + jnc .+3 + inc dph + movc a,@a+dptr + mov %3,a + mov a,b + inc a + movc a,@a+dptr +} + replace { mov r%1,%2 anl ar%1,#%3