From 283ec58c3d36f26d72f5098f8e189eee66ef670f Mon Sep 17 00:00:00 2001 From: spth Date: Fri, 15 Aug 2008 20:39:49 +0000 Subject: [PATCH] Minor peephole improvement git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@5215 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 6 ++++++ src/z80/peep.c | 1 + src/z80/peeph-z80.def | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3f370c61..747720b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-08-14 Philipp Klaus Krause + + * src/z80/peep.c, + * src/z80/peeph-z80.def: minor peephole improvement + + 2008-08-15 Raphael Neider * src/z80/gen.c (_vemit2): suppress compiler warning diff --git a/src/z80/peep.c b/src/z80/peep.c index bef434a7..7e27c07e 100644 --- a/src/z80/peep.c +++ b/src/z80/peep.c @@ -245,6 +245,7 @@ z80MightRead(const lineNode *pl, const char *what) strncmp(pl->line, "rl\t", 3) == 0 || strncmp(pl->line, "rr\t", 3) == 0 || strncmp(pl->line, "sla\t", 4) == 0 || + strncmp(pl->line, "sra\t", 4) == 0 || strncmp(pl->line, "srl\t", 4) == 0) { return (strstr(pl->line + 3, what) != 0); diff --git a/src/z80/peeph-z80.def b/src/z80/peeph-z80.def index b34a6b0d..911dc622 100644 --- a/src/z80/peeph-z80.def +++ b/src/z80/peeph-z80.def @@ -137,6 +137,14 @@ replace restart { push de } if notUsed('de'), notUsed('hl') +replace restart { + ex de,hl + push de +} by { + ; peephole 0k' pushed de directly instead of going through hl. + push hl +} if notUsed('de'), notUsed('hl') + replace restart { ex de,hl push bc -- 2.30.2