* as/link/mcs51/lkihx.c (hexRecord): bugfix do not insert extended address
authorMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 17 Feb 2009 19:54:07 +0000 (19:54 +0000)
committerMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 17 Feb 2009 19:54:07 +0000 (19:54 +0000)
  when addresses are unsorted

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

ChangeLog
as/link/mcs51/lkihx.c

index 08a365a96413dcba28080e7c0d9f99e8f51180ec..efa12743c2743ec6d0ce6473953a23671fe4a6f7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-02-17 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/link/mcs51/lkihx.c (hexRecord): bugfix do not insert extended address
+         when addresses are unsorted
+
 2008-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
 
        * device/include/mcs51/p89v66x.h: added ENBOOT thanks
 2008-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
 
        * device/include/mcs51/p89v66x.h: added ENBOOT thanks
@@ -26,7 +31,7 @@
 
 2008-02-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
 
 
 2008-02-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
 
-       * support/regression/tests/float_single.c: added regression 
+       * support/regression/tests/float_single.c: added regression
          test. Some testpoints for probably rarely used functions
          (acosf, sinhf, tanf, expf) disabled for some targets
 
          test. Some testpoints for probably rarely used functions
          (acosf, sinhf, tanf, expf) disabled for some targets
 
index cce29ff4ec16de338f4a48e4181062af76b42ddf..bfe383e300f0d99ca9be668edfc97d005218c5bc 100644 (file)
@@ -143,7 +143,8 @@ hexRecord(unsigned addr, int rtvalIndex)
     if (chksum == 0)
         return;         // nothing to output
 
     if (chksum == 0)
         return;         // nothing to output
 
-    if ( (lastHexAddr > addr) && (rflag) ) {
+    /* Is this record in the same bank as previous? */
+    if ( ((lastHexAddr>>16) != (addr>>16)) && (rflag) ) {
         overrun = hexPageOverrun + 1;
         ihxExtendedLinearAddress(lastExtendedAddress + overrun);
         hexPageOverrun = overrun;
         overrun = hexPageOverrun + 1;
         ihxExtendedLinearAddress(lastExtendedAddress + overrun);
         hexPageOverrun = overrun;