From 3ffd2f60b596ba0a39044404b77a8fb853ab4543 Mon Sep 17 00:00:00 2001 From: sandeep Date: Sat, 14 Oct 2000 20:08:39 +0000 Subject: [PATCH 1/1] Fixed a loop invariant bug & a casting bug git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@462 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/avr/ralloc.c | 3 ++- src/ds390/ralloc.c | 3 ++- src/mcs51/ralloc.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/avr/ralloc.c b/src/avr/ralloc.c index dc2404f7..c0392675 100644 --- a/src/avr/ralloc.c +++ b/src/avr/ralloc.c @@ -2141,7 +2141,8 @@ static void packRegisters (eBBlock *ebp) link *toType = operandType(IC_LEFT(ic)); if (IS_INTEGRAL(fromType) && IS_INTEGRAL(toType) && - getSize(fromType) != getSize(toType) ) { + getSize(fromType) != getSize(toType) && + SPEC_USIGN(fromType) == SPEC_USIGN(toType)) { iCode *dic = packRegsForOneuse(ic,IC_RIGHT(ic),ebp); if (dic) { diff --git a/src/ds390/ralloc.c b/src/ds390/ralloc.c index 7555de4e..9d12c973 100644 --- a/src/ds390/ralloc.c +++ b/src/ds390/ralloc.c @@ -2191,7 +2191,8 @@ static void packRegisters (eBBlock *ebp) link *toType = operandType(IC_LEFT(ic)); if (IS_INTEGRAL(fromType) && IS_INTEGRAL(toType) && - getSize(fromType) != getSize(toType) ) { + getSize(fromType) != getSize(toType) && + SPEC_USIGN(fromType) == SPEC_USIGN(toType)) { iCode *dic = packRegsForOneuse(ic,IC_RIGHT(ic),ebp); if (dic) { diff --git a/src/mcs51/ralloc.c b/src/mcs51/ralloc.c index 2a3726c3..cf088764 100644 --- a/src/mcs51/ralloc.c +++ b/src/mcs51/ralloc.c @@ -2190,7 +2190,8 @@ static void packRegisters (eBBlock *ebp) link *toType = operandType(IC_LEFT(ic)); if (IS_INTEGRAL(fromType) && IS_INTEGRAL(toType) && - getSize(fromType) != getSize(toType) ) { + getSize(fromType) != getSize(toType) && + SPEC_USIGN(fromType) == SPEC_USIGN(toType)) { iCode *dic = packRegsForOneuse(ic,IC_RIGHT(ic),ebp); if (dic) { -- 2.30.2