* src/SDCClrange.c (computeClash): fixed bug #971834
authorepetrich <epetrich@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 21 Jun 2004 04:05:19 +0000 (04:05 +0000)
committerepetrich <epetrich@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 21 Jun 2004 04:05:19 +0000 (04:05 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3362 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCClrange.c

index d544d7256caea29722a797ba0e8f42357de83650..db4b211571f3b3de61bddef332c62a7b1252daa6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCClrange.c (computeClash): fixed bug #971834
+
 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
 
        * src/mcs51/gen.c (genCmp): fixed bug #975903
@@ -9,7 +13,7 @@
        * src/mcs51/gen.c (operandsEqu): fixed bug #976283
        * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
 
-2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
 
        * src/SDCCcse.c (cseBBlock): fixed bug #966963
 
index 1c2c8493d53d05ad8217944d321e8fbd1d788579..fe7eadc6c14524451ecc6fbd8f03c7a1d9791ad6 100644 (file)
@@ -535,7 +535,9 @@ computeClash (eBBlock ** ebbs, int count)
                      IS_ITEMP(IC_RESULT(ic)) &&
                      (IS_ITEMP(IC_LEFT(ic)) || IS_ITEMP(IC_RIGHT(ic))))
                    {
-                     if (OP_SYMBOL(IC_RESULT(ic))->key == key1)
+                     if (OP_SYMBOL(IC_RESULT(ic))->key == key1
+                         && sym1->liveFrom == ic->seq
+                         && sym2->liveTo == ic->seq)
                        {
                          if (IS_SYMOP(IC_LEFT(ic)))
                            if (OP_SYMBOL(IC_LEFT(ic))->key == key2)
@@ -545,7 +547,9 @@ computeClash (eBBlock ** ebbs, int count)
                              continue;
                        }
 
-                     if (OP_SYMBOL(IC_RESULT(ic))->key == key2)
+                     if (OP_SYMBOL(IC_RESULT(ic))->key == key2
+                         && sym2->liveFrom == ic->seq
+                         && sym1->liveTo == ic->seq)
                        {
                          if (IS_SYMOP(IC_LEFT(ic)))
                            if (OP_SYMBOL(IC_LEFT(ic))->key == key1)