* src/SDCCicode.h,
[fw/sdcc] / src / mcs51 / ralloc.c
index 0d4181a290ab9b7d1c8af1ff56d42a8d0e747c36..5ec469bab7a86bc72b1b541145d1393d8ed58151 100644 (file)
@@ -620,6 +620,8 @@ spillThis (symbol * sym)
   return;
 }
 
+
+
 /*-----------------------------------------------------------------*/
 /* selectSpil - select a iTemp to spil : rather a simple procedure */
 /*-----------------------------------------------------------------*/
@@ -675,7 +677,9 @@ selectSpil (iCode * ic, eBBlock * ebp, symbol * forSym)
 
       /* check if there are any live ranges that not
          used in the remainder of the block */
-      if (!_G.blockSpil && (selectS = liveRangesWith (lrcs, notUsedInRemaining, ebp, ic)))
+      if (!_G.blockSpil &&
+          !isiCodeInFunctionCall (ic) &&
+          (selectS = liveRangesWith (lrcs, notUsedInRemaining, ebp, ic)))
         {
           sym = leastUsedLR (selectS);
           if (sym != forSym)