From 98702bb247ee71182f674c9cc9ead9e3d1efca03 Mon Sep 17 00:00:00 2001 From: frief Date: Sat, 5 Jun 2004 13:38:49 +0000 Subject: [PATCH] removed obsolete peephole 100.a, added peephole 254 (left shift), 255 (jump table) git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3343 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/mcs51/peeph.def | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/src/mcs51/peeph.def b/src/mcs51/peeph.def index b7005720..eff214da 100644 --- a/src/mcs51/peeph.def +++ b/src/mcs51/peeph.def @@ -69,12 +69,6 @@ replace { movx @dptr,a } if notVolatile %1 -replace { - mov a,acc -} by { - ; Peephole 100.a removed redundant mov -} - replace { mov a,%1 movx @dptr,a @@ -3209,3 +3203,38 @@ replace { %2: ret } + +// applies to f.e. funptrs.c +// saves one byte if %1 is a register or @register +replace { + mov a,%1 + add a,acc +} by { + ; Peephole 254 optimized left shift + mov a,%1 + add a,%1 +} if notVolatile %1 + +// applies to f.e. switch.c +replace { + clr c + mov a,#%1 + subb a,%2 + jc %3 +%4: + mov a,%2 + add a,acc + add a,%2 + mov dptr,%5 + jmp @a+dptr +} by { + ; Peephole 255 optimized jump table index calculation + mov a,%2 + cjne a,#(%1+0x01),.+1 + jnc %3 +%4: + add a,%2 + add a,%2 + mov dptr,%5 + jmp @a+dptr +} -- 2.47.2