fixed bug #494721
authorjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 19 Dec 2001 13:10:51 +0000 (13:10 +0000)
committerjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 19 Dec 2001 13:10:51 +0000 (13:10 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1715 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/avr/ralloc.c
src/mcs51/ralloc.c
src/pic/ralloc.c
src/z80/ralloc.c

index 6ff0008847c8805d0f2197683e610829ec392715..6efc4aedf2f214354b96f5ecd448c6ee42cd1b2e 100644 (file)
@@ -1892,7 +1892,8 @@ packRegsForOneuse (iCode * ic, operand * op, eBBlock * ebp)
        /* now check if it is the return from
           a function call */
        if (dic->op == CALL || dic->op == PCALL) {
-               if (ic->op != SEND && ic->op != RETURN) {
+               if (ic->op != SEND && ic->op != RETURN &&
+                   !POINTER_SET(ic) && !POINTER_GET(ic)) {
                        OP_SYMBOL (op)->ruonly = 1;
                        return dic;
                }
index 21dd4bd427a79666189f1efec6ffab821e7d7207..1578ae1dafbad175a9f4141712c5465058682568 100644 (file)
@@ -2095,7 +2095,8 @@ packRegsForOneuse (iCode * ic, operand * op, eBBlock * ebp)
      a function call */
   if (dic->op == CALL || dic->op == PCALL)
     {
-      if (ic->op != SEND && ic->op != RETURN)
+      if (ic->op != SEND && ic->op != RETURN &&
+         !POINTER_SET(ic) && !POINTER_GET(ic))
        {
          OP_SYMBOL (op)->ruonly = 1;
          return dic;
index 08b72f929a38ded88573195b48cf01bd2b43583e..125bd81211d65701a0b7aab5478c76659ab7ee36 100644 (file)
@@ -2477,7 +2477,8 @@ packRegsForOneuse (iCode * ic, operand * op, eBBlock * ebp)
      a function call */
   if (dic->op == CALL || dic->op == PCALL)
     {
-      if (ic->op != SEND && ic->op != RETURN)
+      if (ic->op != SEND && ic->op != RETURN &&
+         !POINTER_SET(ic) && !POINTER_GET(ic))
        {
          OP_SYMBOL (op)->ruonly = 1;
          return dic;
index 9d58ded2361927dd8445fdcd0910ed2dd9f21ad8..b23b4b221e41543f502ba3d71f37643eaa8d7238 100644 (file)
@@ -1899,7 +1899,8 @@ packRegsForOneuse (iCode * ic, operand * op, eBBlock * ebp)
   /* now check if it is the return from a function call */
   if (dic->op == CALL || dic->op == PCALL)
     {
-      if (ic->op != SEND && ic->op != RETURN)
+      if (ic->op != SEND && ic->op != RETURN &&
+         !POINTER_SET(ic) && !POINTER_GET(ic))
        {
          OP_SYMBOL (op)->ruonly = 1;
          return dic;