* src/avr/ralloc.c (serialRegAssign),
authorepetrich <epetrich@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 26 Feb 2005 22:18:06 +0000 (22:18 +0000)
committerepetrich <epetrich@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 26 Feb 2005 22:18:06 +0000 (22:18 +0000)
* src/ds390/ralloc.c (serialRegAssign),
* src/hc08/ralloc.c (serialRegAssign),
* src/mcs51/ralloc.c (serialRegAssign),
* src/pic/ralloc.c (serialRegAssign),
* src/pic16/ralloc.c (serialRegAssign),
* src/xa51/ralloc.c (serialRegAssign),
* src/z80/ralloc.c (serialRegAssign): fixed bug #1105154

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

ChangeLog
src/avr/ralloc.c
src/ds390/ralloc.c
src/hc08/ralloc.c
src/mcs51/ralloc.c
src/pic/ralloc.c
src/pic16/ralloc.c
src/xa51/ralloc.c
src/z80/ralloc.c

index bfbbc86afd83e8c571822cd3ad67fc32fa3936f1..930efe4378892c1469cd2896f9d954780fc5bddc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2004-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/avr/ralloc.c (serialRegAssign),
+       * src/ds390/ralloc.c (serialRegAssign),
+       * src/hc08/ralloc.c (serialRegAssign),
+       * src/mcs51/ralloc.c (serialRegAssign),
+       * src/pic/ralloc.c (serialRegAssign),
+       * src/pic16/ralloc.c (serialRegAssign),
+       * src/xa51/ralloc.c (serialRegAssign),
+       * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
+
 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * src/SDCCast.c (decorateType): fixed bug 1124787
index 4724d789f1f6ea5f6c65a52cd5ca7dd81af64b8d..96426bb469d760067f25e802f44e8ec15d705903 100644 (file)
@@ -1365,6 +1365,12 @@ serialRegAssign (eBBlock ** ebbs, int count)
                                int willCS;
                                int j=0;
 
+                               /* Make sure any spill location is definately allocated */
+                               if (sym->isspilt && !sym->remat && sym->usl.spillLoc &&
+                                   !sym->usl.spillLoc->allocreq) {
+                                       sym->usl.spillLoc->allocreq++;
+                               }
+
                                /* if it does not need or is spilt 
                                   or is already assigned to registers
                                   or will not live beyond this instructions */
index fbb65ed8174bbdffb2a4db8bf59433602d00f963..627cc4756f95f04f7d4a9cdcc39a3ed8d1c88ae5 100644 (file)
@@ -1307,6 +1307,13 @@ serialRegAssign (eBBlock ** ebbs, int count)
               int willCS;
               int j;
               int ptrRegSet = 0;
+                
+              /* Make sure any spill location is definately allocated */
+              if (sym->isspilt && !sym->remat && sym->usl.spillLoc &&
+                  !sym->usl.spillLoc->allocreq)
+                {
+                  sym->usl.spillLoc->allocreq++;
+                }
 
               /* if it does not need or is spilt
                  or is already assigned to registers
index 175f83dd3c698b25054632a10973bbf9b300bc37..97a6cdafbb8caa16ec4cac53daa3ac7451a5c2b7 100644 (file)
@@ -1265,7 +1265,13 @@ serialRegAssign (eBBlock ** ebbs, int count)
                int j;
                int ptrRegSet = 0;
 
-               /* if it does not need or is spilt
+               /* Make sure any spill location is definately allocated */
+               if (sym->isspilt && !sym->remat && sym->usl.spillLoc &&
+                   !sym->usl.spillLoc->allocreq) {
+                   sym->usl.spillLoc->allocreq++;
+               }
+
+                /* if it does not need or is spilt
                   or is already assigned to registers
                   or will not live beyond this instructions */
                if (!sym->nRegs ||
index ca0deef7a0f5c740464642ba072613c9129ba630..c6db735b06a7e1b9d9799efa3e3ad072c52c41df 100644 (file)
@@ -1217,6 +1217,13 @@ serialRegAssign (eBBlock ** ebbs, int count)
                 int j;
                 int ptrRegSet = 0;
 
+                /* Make sure any spill location is definately allocated */
+                if (sym->isspilt && !sym->remat && sym->usl.spillLoc &&
+                    !sym->usl.spillLoc->allocreq)
+                  {
+                    sym->usl.spillLoc->allocreq++;
+                  }
+                  
                 /* if it does not need or is spilt
                    or is already assigned to registers
                    or will not live beyond this instructions */
index 1f70bc37c4d0ae180e23f3bfe0e250067af12264..d836a1682ceb2b5d1a2d66ded8f3ff46b8b8ca3c 100644 (file)
@@ -2291,7 +2291,14 @@ serialRegAssign (eBBlock ** ebbs, int count)
                                int willCS;
                                int j;
                                int ptrRegSet = 0;
-                               
+
+                               /* Make sure any spill location is definately allocated */
+                               if (sym->isspilt && !sym->remat && sym->usl.spillLoc &&
+                                   !sym->usl.spillLoc->allocreq)
+                               {
+                                       sym->usl.spillLoc->allocreq++;
+                               }
+
                                /* if it does not need or is spilt 
                                or is already assigned to registers
                                or will not live beyond this instructions */
index 58cc571a10d15dc2a8b3a131effe82ae664509d5..032029018a5063f812e4f538a0d07978806a2ef2 100644 (file)
@@ -2275,6 +2275,13 @@ serialRegAssign (eBBlock ** ebbs, int count)
              int j;
              int ptrRegSet = 0;
 
+             /* Make sure any spill location is definately allocated */
+             if (sym->isspilt && !sym->remat && sym->usl.spillLoc &&
+                 !sym->usl.spillLoc->allocreq)
+               {
+                 sym->usl.spillLoc->allocreq++;
+               }
+
              /* if it does not need or is spilt 
                 or is already assigned to registers
                 or will not live beyond this instructions */
index 364895bdc6fd87f2489d0e3d447dc37a3414ce36..e53ea595c02c987a99c39502c29283de222a8549 100755 (executable)
@@ -985,7 +985,13 @@ serialRegAssign (eBBlock ** ebbs, int count)
        bitVect *spillable;
        int willCS;
        
-       /* if it does not need or is spilt 
+       /* Make sure any spill location is definately allocated */
+       if (sym->isspilt && !sym->remat && sym->usl.spillLoc &&
+           !sym->usl.spillLoc->allocreq) {
+         sym->usl.spillLoc->allocreq++;
+       }
+       
+        /* if it does not need or is spilt 
           or is already assigned to registers
           or will not live beyond this instructions */
        if (!sym->nRegs ||
index 076277902ed9216c408ae3adb6653b85e6b26e5a..2b44c0e0fb42943f7d0c225762f5dde9f71f08d9 100644 (file)
@@ -1131,6 +1131,13 @@ serialRegAssign (eBBlock ** ebbs, int count)
              int j;
 
              D (D_ALLOC, ("serialRegAssign: in loop on result %p\n", sym));
+                
+             /* Make sure any spill location is definately allocated */
+             if (sym->isspilt && !sym->remat && sym->usl.spillLoc &&
+                 !sym->usl.spillLoc->allocreq)
+               {
+                 sym->usl.spillLoc->allocreq++;
+               }
 
              /* if it does not need or is spilt 
                 or is already assigned to registers