From b096fe2b5c726c1b702b7688417c4f4db5e6de87 Mon Sep 17 00:00:00 2001 From: sdattalo Date: Wed, 30 Apr 2003 04:44:04 +0000 Subject: [PATCH] Patch from Jim Hawkridge that prevents stack registers from being optimized away. git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2577 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 5 +++++ src/pic/pcoderegs.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 61df7cdd..63042037 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-04-29 Scott Dattalo + + * src/pic/pcoderegs.c Applied patch from Jim Hawkridge + that tame's the PIC's over-aggressive optimizer. + 2003-04-29 Jesus Calvino-Fraga * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker diff --git a/src/pic/pcoderegs.c b/src/pic/pcoderegs.c index b3e35cb3..633e8df5 100644 --- a/src/pic/pcoderegs.c +++ b/src/pic/pcoderegs.c @@ -317,7 +317,7 @@ void RemoveRegsFromSet(set *regset) pc = setFirstItem(reg->reglives.usedpCodes); - if(reg->type == REG_SFR) { + if(reg->type == REG_SFR || reg->type == REG_STK) { //fprintf(stderr, "not removing SFR reg %s even though used only once\n",reg->name); continue; } @@ -660,7 +660,7 @@ void OptimizeRegUsage(set *fregs, int optimize_multi_uses, int optimize_level) reg = fregs->item; fregs = fregs->next; - if(reg->type == REG_SFR) { + if(reg->type == REG_SFR || reg->type == REG_STK) { //fprintf(stderr,"skipping SFR: %s\n",reg->name); continue; } -- 2.30.2