From c829570ca8686212a6ab50dced1e65abe2d12ba1 Mon Sep 17 00:00:00 2001 From: frief Date: Fri, 19 Nov 2004 09:06:39 +0000 Subject: [PATCH] added peepholes 3.d-g and 177.g,h provided by anonymous in RFE #1067986, thanks git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3577 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 7 +++- src/mcs51/peeph.def | 78 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b61e99b0..c36dcd32 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-11-19 Frieder Ferlemann + + * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided + by anonymous in RFE #1067986, thanks + 2004-11-18 Maarten Brock * .version: bumped version to 2.4.7 @@ -42,7 +47,7 @@ * support/regression/ports/ucz80/spec.mk: use include and lib files from built version of sdcc instead of installed version -2004-11-11 Maarten Brock +2004-11-14 Maarten Brock * src/mcs51/gen.c (toBoolean): fixed bug 1065458 * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and diff --git a/src/mcs51/peeph.def b/src/mcs51/peeph.def index b8f09739..fb786d95 100644 --- a/src/mcs51/peeph.def +++ b/src/mcs51/peeph.def @@ -57,6 +57,66 @@ replace { mov a,%3 } +replace { + clr a + mov %1,a + mov %2,a + clr a +} by { + clr a + mov %1,a + mov %2,a + ; Peephole 3.d removed redundant clr +} + +replace { + clr a + mov %1,a + mov %2,a + mov %3,a + clr a +} by { + clr a + mov %1,a + mov %2,a + mov %3,a + ; Peephole 3.e removed redundant clr +} + +replace { + clr a + mov %1,a + mov %2,a + mov %3,a + mov %4,a + clr a +} by { + clr a + mov %1,a + mov %2,a + mov %3,a + mov %4,a + ; Peephole 3.f removed redundant clr +} + +replace { + clr a + mov %1,a + mov %2,a + mov %3,a + mov %4,a + mov %5,a + clr a +} by { + clr a + mov %1,a + mov %2,a + mov %3,a + mov %4,a + mov %5,a + ; Peephole 3.g removed redundant clr +} + replace { mov %1,a mov dptr,#%2 @@ -1050,6 +1110,24 @@ replace { mov r%1,%3 } if notVolatile %2 +replace { + mov %1,%2 + mov a,%1 +} by { + ; peephole 177.g optimized mov sequence + mov a,%2 + mov %1,a +} if notVolatile %1 + +replace { + mov %1,%2 + mov a,%2 +} by { + ; peephole 177.h optimized mov sequence + mov a,%2 + mov %1,a +} if notVolatile %2 + replace { mov a,%1 mov b,a -- 2.47.2