* device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
authorfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 11 Mar 2007 20:22:30 +0000 (20:22 +0000)
committerfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 11 Mar 2007 20:22:30 +0000 (20:22 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4681 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
device/lib/printfl.c

index e2be7033cc2f982032e9b520ed6f4e9765a45a5c..7b3b0c459b5ef9ea89d5cdddc3678ca0b7cf9159 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
 
+       * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
        * device/lib/printf_large.c: pointer was converted to generic
        pointer for mcs51 models other than model-small (Maarten noticed)
 
index b863d7a5f5257a5ac0af6fc5da1310c8c21fd330..70d4235af29883e33331adb7fad62561c9d5f971 100644 (file)
 #include <8051.h>
 #endif
 
-static data char radix ;
+static __data char radix ;
 static bit  long_flag = 0;
 static bit  string_flag =0;
 static bit  char_flag = 0;
-static char * data str ;
-static data long val;
+static char * __data str ;
+static __data long val;
 
 /* This great loop fails with the ds390 port (2003-01-13).
 
@@ -67,7 +67,7 @@ static data long val;
 */
 
 #if NICE_LIFO_IMPLEMENTATION_BUT_NOT_PORTABLE
-static data volatile char ch;
+static __data volatile char ch;
 static bit sign;
 
 static void pval(void)
@@ -177,12 +177,16 @@ void printf_small (char * fmt, ... ) reentrant
 #else
             if (radix)
             {
-              static char data buffer[12], c;
+              static char __idata buffer[12]; /* 37777777777(oct) */
+              char __idata * stri;
 
               _ltoa (val, buffer, radix);
-              str = buffer;
-              while ((c = *str++) != '\0')
-                putchar (c);
+              stri = buffer;
+              while (*stri)
+                {
+                  putchar (*stri);
+                  stri++;
+                }
             }
 #endif
             else