X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fpic%2Fgenarith.c;h=78582d50197e4193f727bbd18dfc89354bcd94ea;hb=ccadc6c89f74c72232dc551f6d7047285c658b7f;hp=66bb1e24a60d1caec11bf293b96e3118d9300c58;hpb=73dcfcdb63f80c8d624e320f41ffb74b2b77e252;p=fw%2Fsdcc diff --git a/src/pic/genarith.c b/src/pic/genarith.c index 66bb1e24..78582d50 100644 --- a/src/pic/genarith.c +++ b/src/pic/genarith.c @@ -523,6 +523,8 @@ static void genAddLit (iCode *ic, int lit) result = IC_RESULT(ic); same = pic14_sameRegs(AOP(left), AOP(result)); size = pic14_getDataSize(result); + if (size > pic14_getDataSize(left)) + size = pic14_getDataSize(left); if(same) { @@ -831,6 +833,11 @@ static void genAddLit (iCode *ic, int lit) } } } + + size = pic14_getDataSize(result); + if (size > pic14_getDataSize(left)) + size = pic14_getDataSize(left); + addSign(result, size, 0); } /*-----------------------------------------------------------------*/ @@ -1093,9 +1100,11 @@ void genPlus (iCode *ic) poc = POC_MOVLW; while(leftsize-- > 0) { emitpcode(poc, popGetAddr(AOP(IC_LEFT(ic)),offset,0)); - emitpcode(POC_MOVWF, popGet(AOP(IC_RESULT(ic)),offset)); emitSKPNC; - emitpcode(POC_INCF, popGet(AOP(IC_RESULT(ic)),offset)); + emitpcode(POC_ADDLW, popGetLit(0x01)); + emitpcode(POC_MOVWF, popGet(AOP(IC_RESULT(ic)),offset)); + //emitSKPNC; + //emitpcode(POC_INCF, popGet(AOP(IC_RESULT(ic)),offset)); /* INCF does not update Carry! */ offset++; if (size) size--;