missed a spot where ronly can be set
authorsandeep <sandeep@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 11 Sep 2000 19:29:12 +0000 (19:29 +0000)
committersandeep <sandeep@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 11 Sep 2000 19:29:12 +0000 (19:29 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@354 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/mcs51/ralloc.c

index f1954d61d5232f8e6aa5947b6bd732993e974b42..dd6d5a73e54c75cbde4b3232e92e2fd908dc5c5b 100644 (file)
@@ -1793,7 +1793,7 @@ static iCode *packRegsForOneuse (iCode *ic, operand *op , eBBlock *ebp)
 
     /* also make sure the intervenening instructions
        don't have any thing in far space */
-    for (dic = dic->next ; dic && dic != ic ; dic = dic->next) {
+    for (dic = dic->next ; dic && dic != ic && sic != ic; dic = dic->next) {
                
        /* if there is an intervening function call then no */
        if (dic->op == CALL || dic->op == PCALL)
@@ -2155,7 +2155,7 @@ static void packRegisters (eBBlock *ebp)
           can be eliminated for return statements */
        if ((ic->op == RETURN || ic->op == SEND) &&
            !isOperandInFarSpace(IC_LEFT(ic))    &&
-           !options.model)
+           options.model == MODEL_SMALL)
            packRegsForOneuse (ic,IC_LEFT(ic),ebp);     
 
        /* if pointer set & left has a size more than