]> git.gag.com Git - fw/sdcc/commitdiff
* src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
authormaartenbrock <maartenbrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 5 Oct 2005 19:57:48 +0000 (19:57 +0000)
committermaartenbrock <maartenbrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 5 Oct 2005 19:57:48 +0000 (19:57 +0000)
* support/regression/tests/sfr16.c: added test for the sfr32 bug

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

ChangeLog
src/SDCC.y
support/regression/tests/sfr16.c

index 8a794c8ae4b2848ac19203de8cc2add295e768fd..e99c20e4a1536e75f10bb94ebd68898408494dc1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
+       * support/regression/tests/sfr16.c: added test for the sfr32 bug
+
 2005-10-04 Raphael Neider <rneider AT web.de>
 
        * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
index 4a38510e5b61aa71084b12754dc97a0cd909c666..a81e243e31054658c253d4ad8be28566e152e8a5 100644 (file)
@@ -597,7 +597,7 @@ type_specifier
           /* add this to the storage class specifier  */
            SPEC_ABSA($1) = 1;   /* set the absolute addr flag */
            /* now get the abs addr from value */
-           SPEC_ADDR($1) = (int) floatFromVal(constExprValue($3,TRUE)) ;
+           SPEC_ADDR($1) = (unsigned) floatFromVal(constExprValue($3,TRUE)) ;
         }
    ;
 
index 81ea7ad844540b7439a227991898f24e2d28cb8a..669f805eb8dfd6cb1199bf63390f7ba3cd09f6f6 100644 (file)
@@ -9,6 +9,7 @@ sfr at 0x8A TL0; //timer 0 low byte
 sfr at 0x8C TH0; //timer 0 high byte
 
 sfr16 at 0x8C8A TMR0; //timer 0
+sfr32 at 0x8C8ACDCC TIMERS; //timer 0 & 2
 #endif
 
 void
@@ -29,5 +30,9 @@ test_sfr(void)
 
   TL0++;
   ASSERT (TMR0 == 0x0101);
+
+  TIMERS = 0x12345678;
+  TIMERS -= 0x02040608;
+  ASSERT (TIMERS == 0x10305070);
 #endif
 }