Same enhancement as in mcs51/ralloc.c can set accuse
authorsandeep <sandeep@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 15 Oct 2001 02:08:35 +0000 (02:08 +0000)
committersandeep <sandeep@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 15 Oct 2001 02:08:35 +0000 (02:08 +0000)
if conditional & used only in IFX

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1400 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/ds390/ralloc.c

index a310023bd3103a407e687b8915238b4f966d69d6..57fb46cdd93b33bf032a4a416716f170270ff209 100644 (file)
@@ -2488,11 +2488,10 @@ packRegisters (eBBlock * ebp)
          we can leave the result of this operation in acc:b
          combination */
       if ((IS_ARITHMETIC_OP (ic)
          we can leave the result of this operation in acc:b
          combination */
       if ((IS_ARITHMETIC_OP (ic)
-
+          || IS_CONDITIONAL(ic)
           || IS_BITWISE_OP (ic)
           || IS_BITWISE_OP (ic)
-
           || ic->op == LEFT_OP || ic->op == RIGHT_OP
           || ic->op == LEFT_OP || ic->op == RIGHT_OP
-
+          || (ic->op == ADDRESS_OF && isOperandOnStack (IC_LEFT (ic)))
          ) &&
          IS_ITEMP (IC_RESULT (ic)) &&
          getSize (operandType (IC_RESULT (ic))) <= 2)
          ) &&
          IS_ITEMP (IC_RESULT (ic)) &&
          getSize (operandType (IC_RESULT (ic))) <= 2)