From b8a9a05b47ebf7b87ba7d1bada2d386da1c137e6 Mon Sep 17 00:00:00 2001 From: MaartenBrock Date: Fri, 26 Oct 2007 20:07:53 +0000 Subject: [PATCH] * src/mcs51/peeph.def: added new rules 265 - 270 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4942 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 3 +- src/mcs51/peeph.def | 79 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 285bc22a..b128a229 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2007-10-26 Maarten Brock - * src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b + * src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b, + added new rules 265 - 270 * support/regression/tests/bug1721024.c:new, added 2007-10-25 Maarten Brock diff --git a/src/mcs51/peeph.def b/src/mcs51/peeph.def index 66909c94..92570a59 100644 --- a/src/mcs51/peeph.def +++ b/src/mcs51/peeph.def @@ -4582,6 +4582,85 @@ replace { } if labelRefCount(%3 1), labelRefCountChange(%3 -1) +replace { + mov %1,c + cpl %1 +} by { + ; Peephole 265 optimized mov/cpl sequence (carry differs) + cpl c + mov %1,c +} if notVolatile(%1) + +replace { + mov %1,c + jb %1,%2 +} by { + ; Peephole 266.a optimized mov/jump sequence + mov %1,c + jc %2 +} if notVolatile(%1) + +replace { + mov %1,c + jnb %1,%2 +} by { + ; Peephole 266.b optimized mov/jump sequence + mov %1,c + jnc %2 +} if notVolatile(%1) + +replace { + jnc %1 + setb %2 + sjmp %3 +%1: + clr %2 +%3: +} by { + ; Peephole 267.a optimized mov bit sequence + mov %2,c +%1: +%3: +} if labelRefCount(%1 1), labelRefCountChange(%1 -1), labelRefCountChange(%3 -1) + +replace { + jc %1 + clr %2 + sjmp %3 +%1: + setb %2 +%3: +} by { + ; Peephole 267.b optimized mov bit sequence + mov %2,c +%1: +%3: +} if labelRefCount(%1 1), labelRefCountChange(%1 -1), labelRefCountChange(%3 -1) + +replace { + mov %1,c + mov %1,c +} by { + ; Peephole 268 removed redundant mov + mov %1,c +} if notVolatile(%1) + +replace { + mov %1,c + mov c,%1 +} by { + ; Peephole 269 removed redundant mov + mov %1,c +} if notVolatile(%1) + +//accessing struct/array on stack +replace { + add a,#%1 + add a,#%2 +} by { + ; Peephole 270 removed redundant add + add a,#%1+%2 +} replace restart { pop ar%1 } by { -- 2.30.2