From: wiml Date: Thu, 19 Sep 2002 06:52:00 +0000 (+0000) Subject: fixed the stupid mistake I made in genMinus() X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=f3bb9804b6fc03d01d2eba03d578863e8b63e06c;p=fw%2Fsdcc fixed the stupid mistake I made in genMinus() git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2102 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/src/mcs51/gen.c b/src/mcs51/gen.c index dea40707..86b86649 100644 --- a/src/mcs51/gen.c +++ b/src/mcs51/gen.c @@ -3451,9 +3451,7 @@ genMinus (iCode * ic) else { asmop *leftOp, *rightOp; - bool borrow; - borrow = FALSE; leftOp = AOP(IC_LEFT(ic)); rightOp = AOP(IC_RIGHT(ic)); @@ -3462,7 +3460,7 @@ genMinus (iCode * ic) if (aopGetUsesAcc(rightOp, offset)) { wassertl(!aopGetUsesAcc(leftOp, offset), "accumulator clash"); MOVA (aopGet(rightOp, offset, FALSE, TRUE)); - if (borrow) { + if (offset > 0) { emitcode( "cpl", "c"); } else { emitcode( "setb", "c"); @@ -3471,12 +3469,13 @@ genMinus (iCode * ic) emitcode("cpl", "a"); } else { MOVA (aopGet (leftOp, offset, FALSE, FALSE)); - emitcode ((borrow? "subb" : "sub"), "a,%s", + if (offset == 0) + CLRC; + emitcode ("subb", "a,%s", aopGet(rightOp, offset, FALSE, TRUE)); } aopPut (AOP (IC_RESULT (ic)), "a", offset++); - borrow = TRUE; /* subsequent subtracts must propagate borrow */ } }