From fc75ace6977db74b90eaf9c1deeae88dba4094c2 Mon Sep 17 00:00:00 2001 From: frief Date: Tue, 4 Mar 2008 22:37:58 +0000 Subject: [PATCH] * src/SDCCmain.c: added predefined macros SDCC_REVISION (RFE #1907229), and (depending on corresponding compiler option) SDCC_PARMS_IN_BANK1, SDCC_FLOAT_REENT, SDCC_INT_LONG_REENT * device/include/mcs51/compiler.h: removed umlauts, added double underscore git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@5070 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 10 +++++++++- device/include/mcs51/compiler.h | 6 +++--- src/SDCCmain.c | 23 +++++++++++++++++++++-- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 323fbf18..366f9105 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-03-04 Frieder Ferlemann + + * src/SDCCmain.c: added predefined macros SDCC_REVISION (RFE #1907229), + and (depending on corresponding compiler option) SDCC_PARMS_IN_BANK1, + SDCC_FLOAT_REENT, SDCC_INT_LONG_REENT + * device/include/mcs51/compiler.h: removed umlauts, added double + underscore + 2008-03-04 Maarten Brock * src/SDCCptropt.c (ptrPseudoSymConvert): fixed bug 1536762 @@ -21,7 +29,7 @@ * src/pic/gen.c: removed unused prototypes, prevent internal errors on accessing OP_SYM_TYPE(op) - * src/pic/gen.h: removed unused protorype of genMinusDec() + * src/pic/gen.h: removed unused prototype of genMinusDec() * src/pic/genarith.c (genMinus): cosmetic changes, rewritten to fix #1876953 (invalid subtraction code), removed unused code diff --git a/device/include/mcs51/compiler.h b/device/include/mcs51/compiler.h index 425f3114..747d4a56 100644 --- a/device/include/mcs51/compiler.h +++ b/device/include/mcs51/compiler.h @@ -21,7 +21,7 @@ * * Header file to overcome 8051 compiler differences for specifying * special function registers. The following compilers are supported: - * SDCC, Keil, Raisonance, IAR, Hi-Tech, Tasking, Crossware, Wickenhäuser. + * SDCC, Keil, Raisonance, IAR, Hi-Tech, Tasking, Crossware, Wickenhaeuser. * Unfortunately not for use with Dunfield. The compilers are identified by * their unique predefined macros. See also: * http://predef.sourceforge.net/precomp.html @@ -65,7 +65,7 @@ #if defined SDCC # define SBIT(name, addr, bit) __sbit __at(addr+bit) name # define SFR(name, addr) __sfr __at(addr) name -# define SFRX(name, addr) xdata volatile unsigned char __at(addr) name +# define SFRX(name, addr) __xdata volatile unsigned char __at(addr) name # define SFR16(name, addr) __sfr16 __at(((addr+1U)<<8) | addr) name # define SFR16E(name, fulladdr) __sfr16 __at(fulladdr) name # define SFR32(name, addr) __sfr32 __at(((addr+3UL)<<24) | ((addr+2UL)<<16) | ((addr+1UL)<<8) | addr) name @@ -147,7 +147,7 @@ # define SFR32(name, fulladdr) /* not supported */ # define SFR32E(name, fulladdr) /* not supported */ -/** Wickenhäuser +/** Wickenhaeuser * http://www.wickenhaeuser.de */ #elif defined __UC__ diff --git a/src/SDCCmain.c b/src/SDCCmain.c index 77b695a1..fd52d592 100644 --- a/src/SDCCmain.c +++ b/src/SDCCmain.c @@ -186,8 +186,8 @@ optionsTable[] = { { 0, OPTION_SMALL_MODEL, NULL, "internal data space is used (default)" }, { 0, "--stack-auto", &options.stackAuto, "Stack automatic variables" }, { 0, "--xstack", &options.useXstack, "Use external stack" }, - { 0, "--int-long-reent", &options.intlong_rent, "Use reenterant calls on the int and long support functions" }, - { 0, "--float-reent", &options.float_rent, "Use reenterant calls on the float support functions" }, + { 0, "--int-long-reent", &options.intlong_rent, "Use reentrant calls on the int and long support functions" }, + { 0, "--float-reent", &options.float_rent, "Use reentrant calls on the float support functions" }, { 0, "--main-return", &options.mainreturn, "Issue a return after main()" }, { 0, "--xram-movc", &options.xram_movc, "Use movc instead of movx to read xram (xdata)" }, { 0, OPTION_CALLEE_SAVES, &options.calleeSavesSet, " Cause the called function to save registers insted of the caller", CLAT_SET }, @@ -2014,6 +2014,18 @@ preProcess (char **envp) break; } + /* set macro corresponding to compiler option */ + if (options.intlong_rent) + addSet(&preArgvSet, Safe_strdup("-DSDCC_INT_LONG_REENT")); + + /* set macro corresponding to compiler option */ + if (options.float_rent) + addSet(&preArgvSet, Safe_strdup("-DSDCC_FLOAT_REENT")); + + /* set macro corresponding to compiler option */ + if (options.parms_in_bank1) + addSet(&preArgvSet, Safe_strdup("-DSDCC_PARMS_IN_BANK1")); + /* add SDCC version number */ { char buf[20]; @@ -2022,6 +2034,13 @@ preProcess (char **envp) addSet(&preArgvSet, Safe_strdup(buf)); } + /* add SDCC revision number */ + { + char buf[25]; + SNPRINTF(buf, sizeof(buf), "-DSDCC_REVISION=%s", getBuildNumber()); + addSet(&preArgvSet, Safe_strdup(buf)); + } + /* add port (processor information to processor */ addSet(&preArgvSet, Safe_strdup("-DSDCC_{port}")); addSet(&preArgvSet, Safe_strdup("-D__{port}")); -- 2.30.2