From: epetrich Date: Thu, 2 Sep 2004 14:24:21 +0000 (+0000) Subject: * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=7860ea6460151466a37ba9471227ff59d7c95ab6;p=fw%2Fsdcc * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for accumulator result if it needs sign extension git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3474 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/ChangeLog b/ChangeLog index 9e1e06ef..437444f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-09-02 Erik Petrich + + * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for + accumulator result if it needs sign extension + 2004-09-02 Maarten Brock * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug diff --git a/src/hc08/ralloc.c b/src/hc08/ralloc.c index a91e687f..fdb71ba6 100644 --- a/src/hc08/ralloc.c +++ b/src/hc08/ralloc.c @@ -2538,7 +2538,8 @@ canDefAccResult (iCode * ic) { case LEFT_OP: case RIGHT_OP: - return isOperandLiteral (IC_RIGHT (ic)); + return isOperandLiteral (IC_RIGHT (ic)) + && SPEC_USIGN (operandType (IC_RESULT (ic))); case CALL: case PCALL: case '*':