From e558590d6bba4cf9b7a7f2b6e457e7e9618b26ac Mon Sep 17 00:00:00 2001 From: maartenbrock Date: Wed, 5 Oct 2005 19:57:48 +0000 Subject: [PATCH] * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC * 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 | 5 +++++ src/SDCC.y | 2 +- support/regression/tests/sfr16.c | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 8a794c8a..e99c20e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-10-05 Maarten Brock + + * 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 * device/include/pic16/pic18fregs.h, src/pic16/devices.inc, diff --git a/src/SDCC.y b/src/SDCC.y index 4a38510e..a81e243e 100644 --- a/src/SDCC.y +++ b/src/SDCC.y @@ -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)) ; } ; diff --git a/support/regression/tests/sfr16.c b/support/regression/tests/sfr16.c index 81ea7ad8..669f805e 100644 --- a/support/regression/tests/sfr16.c +++ b/support/regression/tests/sfr16.c @@ -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 } -- 2.30.2