From 7d1e3eba1dbdfe8bab4f2edb424c5271a8e561f6 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Fri, 25 Jan 2008 19:05:44 +0000 Subject: [PATCH] merge from gcc --- libdecnumber/ChangeLog | 20 ++++++++++++++++++++ libdecnumber/Makefile.in | 7 ++++--- libdecnumber/decCommon.c | 2 ++ libdecnumber/decCommonSymbols.h | 9 +++++++++ libdecnumber/decContextSymbols.h | 2 ++ libdecnumber/decDPD.h | 4 +++- libdecnumber/decDPDSymbols.h | 15 +++++++++++++++ libdecnumber/decNumberLocal.h | 2 ++ libdecnumber/decNumberSymbols.h | 2 ++ libdecnumber/dpd/decimal128.c | 4 ---- libdecnumber/dpd/decimal128Symbols.h | 10 ++++++++++ libdecnumber/dpd/decimal32.c | 4 ---- libdecnumber/dpd/decimal32Symbols.h | 10 ++++++++++ libdecnumber/dpd/decimal64.c | 4 ---- libdecnumber/dpd/decimal64Symbols.h | 10 ++++++++++ 15 files changed, 89 insertions(+), 16 deletions(-) create mode 100644 libdecnumber/decCommonSymbols.h create mode 100644 libdecnumber/decDPDSymbols.h diff --git a/libdecnumber/ChangeLog b/libdecnumber/ChangeLog index 939e00ec3f..8e8cf1ac0f 100644 --- a/libdecnumber/ChangeLog +++ b/libdecnumber/ChangeLog @@ -1,3 +1,23 @@ +2008-01-25 Janis Johnson + + * decCommonSymbols.h: Commit. + * decDPDSybmols.h: Commit. + + * Makefile.in (libdecnumber_a_SOURCES): List Symbols headers. + * decCommonSymbols.h: New file. + * decCommon.c: Include it. + * decDPDSymbols.h: New file. + * decDPD.h: Include it. + * decNumberLocal.h: Include the two new files. + * decContextSymbols.h (DECPOWERS, DECSTICKYTAB): New. + * decNumberSymbols.h (LNnn, d2utable): New. + * dpd/decimal32Symbols.h (COMBEXP, COMBMSD, DPD2BIN, BIN2DPD): New. + * dpd/decimal64Symbols.h (COMBEXP, COMBMSD, DPD2BIN, BIN2DPD): New. + * dpd/decimal128Symbols.h (COMBEXP, COMBMSD, DPD2BIN, BIN2DPD): New. + * dpd/decimal32.c: Remove redefine of DPD2BIN, BIN2DPD. + * dpd/decimal64.c: Ditto. + * dpd/decimal128.c: Ditto. + 2007-11-26 Thiago Jung Bauermann * Makefile.in (decimal32.o): Prepend $(srcdir) to dependencies diff --git a/libdecnumber/Makefile.in b/libdecnumber/Makefile.in index 7e0b6acfd5..00b16b297d 100644 --- a/libdecnumber/Makefile.in +++ b/libdecnumber/Makefile.in @@ -65,9 +65,10 @@ libdecnumber_a_OBJS = decNumber.o decContext.o \ libdecnumber_a_SOURCES = decContext.c decContext.h decDPD.h \ decNumber.c decNumber.h decNumberLocal.h \ - dpd/decimal128.c dpd/decimal128.h \ - dpd/decimal32.c dpd/decimal32.h \ - dpd/decimal64.c dpd/decimal64.h \ + decContextSymbols.h decDPDSymbols.h decNumberSymbols.h \ + dpd/decimal128.c dpd/decimal128.h dpd/decimal128Symbols.h \ + dpd/decimal32.c dpd/decimal32.h dpd/decimal32Symbols.h \ + dpd/decimal64.c dpd/decimal64.h dpd/decimal64Symbols.h \ bid/decimal128.c bid/decimal128.h \ bid/decimal32.c bid/decimal32.h \ bid/decimal64.c bid/decimal64.h diff --git a/libdecnumber/decCommon.c b/libdecnumber/decCommon.c index 84e1b2ad53..fa16e792e6 100644 --- a/libdecnumber/decCommon.c +++ b/libdecnumber/decCommon.c @@ -50,6 +50,8 @@ /* OR) or the rounding mode read; all other fields are ignored and */ /* untouched. */ +#include "decCommonSymbols.h" + /* names for simpler testing and default context */ #if DECPMAX==7 #define SINGLE 1 diff --git a/libdecnumber/decCommonSymbols.h b/libdecnumber/decCommonSymbols.h new file mode 100644 index 0000000000..ee01652f26 --- /dev/null +++ b/libdecnumber/decCommonSymbols.h @@ -0,0 +1,9 @@ +#if !defined(DECCOMMONSYMBOLS) +#define DECCOMMONSYMBOLS + +#ifdef IN_LIBGCC2 +#define DECCOMBFROM __decCOMBFROM +#define DECCOMBMSD __decCOMBMSD +#endif + +#endif diff --git a/libdecnumber/decContextSymbols.h b/libdecnumber/decContextSymbols.h index 38830a916d..4646053659 100644 --- a/libdecnumber/decContextSymbols.h +++ b/libdecnumber/decContextSymbols.h @@ -17,6 +17,8 @@ #define decContextTestSavedStatus __decContextTestSavedStatus #define decContextTestStatus __decContextTestStatus #define decContextZeroStatus __decContextZeroStatus +#define DECPOWERS __decPOWERS +#define DECSTICKYTAB __decSTICKYTAB #endif #endif diff --git a/libdecnumber/decDPD.h b/libdecnumber/decDPD.h index 8e0347c6aa..a4710d6439 100644 --- a/libdecnumber/decDPD.h +++ b/libdecnumber/decDPD.h @@ -34,7 +34,9 @@ /* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */ /* For details, see: http://www2.hursley.ibm.com/decimal/DPDecimal.html */ -/* */ + +#include "decDPDSymbols.h" + /* This include file defines several DPD and BCD conversion tables: */ /* */ /* uint16_t BCD2DPD[2458]; -- BCD -> DPD (0x999 => 2457) */ diff --git a/libdecnumber/decDPDSymbols.h b/libdecnumber/decDPDSymbols.h new file mode 100644 index 0000000000..847248d556 --- /dev/null +++ b/libdecnumber/decDPDSymbols.h @@ -0,0 +1,15 @@ +#if !defined(DECDPDSYMBOLS) +#define DECDPDSYMBOLS + +#ifdef IN_LIBGCC2 +#define BCD2DPD __decBCD2DPD +#define BIN2BCD8 __decBIN2BCD8 +#define BIN2CHAR __decBIN2CHAR +#define BIN2DPD __decBIN2DPD +#define DPD2BCD8 __decDPD2BCD8 +#define DPD2BIN __decDPD2BIN +#define DPD2BINK __decDPD2BINK +#define DPD2BINM __decDPD2BINM +#endif + +#endif diff --git a/libdecnumber/decNumberLocal.h b/libdecnumber/decNumberLocal.h index 891a0841c8..c07e8cd6ef 100644 --- a/libdecnumber/decNumberLocal.h +++ b/libdecnumber/decNumberLocal.h @@ -100,6 +100,7 @@ extern const uByte DECSTICKYTAB[10]; /* re-round digits if sticky */ extern const uInt DECPOWERS[10]; /* powers of ten table */ /* The following are included from decDPD.h */ +#include "decDPDSymbols.h" extern const uShort DPD2BIN[1024]; /* DPD -> 0-999 */ extern const uShort BIN2DPD[1000]; /* 0-999 -> DPD */ extern const uInt DPD2BINK[1024]; /* DPD -> 0-999000 */ @@ -325,6 +326,7 @@ #define DFISSNAN(df) ((DFWORD(df, 0)&0x7e000000)==0x7e000000) /* Shared lookup tables */ +#include "decCommonSymbols.h" extern const uInt DECCOMBMSD[64]; /* Combination field -> MSD */ extern const uInt DECCOMBFROM[48]; /* exp+msd -> Combination */ diff --git a/libdecnumber/decNumberSymbols.h b/libdecnumber/decNumberSymbols.h index e638a070b1..93558961bc 100644 --- a/libdecnumber/decNumberSymbols.h +++ b/libdecnumber/decNumberSymbols.h @@ -64,6 +64,8 @@ #define decNumberVersion __decNumberVersion #define decNumberXor __decNumberXor #define decNumberZero __decNumberZero +#define LNnn __decLNnn +#define d2utable __decd2utable #endif #endif diff --git a/libdecnumber/dpd/decimal128.c b/libdecnumber/dpd/decimal128.c index 6aa98b5a21..0e32ceb181 100644 --- a/libdecnumber/dpd/decimal128.c +++ b/libdecnumber/dpd/decimal128.c @@ -49,10 +49,6 @@ #include "decimal128.h" /* our primary include */ /* Utility routines and tables [in decimal64.c] */ -/* DPD2BIN and the reverse are renamed to prevent link-time conflict */ -/* if decQuad is also built in the same executable */ -#define DPD2BIN DPD2BINx -#define BIN2DPD BIN2DPDx extern const uInt COMBEXP[32], COMBMSD[32]; extern const uShort DPD2BIN[1024]; extern const uShort BIN2DPD[1000]; /* [not used] */ diff --git a/libdecnumber/dpd/decimal128Symbols.h b/libdecnumber/dpd/decimal128Symbols.h index da9d76beaf..b30687c2b4 100644 --- a/libdecnumber/dpd/decimal128Symbols.h +++ b/libdecnumber/dpd/decimal128Symbols.h @@ -11,6 +11,16 @@ #define decimal128ToEngString __decimal128ToEngString #define decimal128ToNumber __decimal128ToNumber #define decimal128ToString __decimal128ToString +#define COMBEXP __decnnCOMBEXP +#define COMBMSD __decnnCOMBMSD + +/* DPD2BIN and BIN2DPD are used in support for decimal32/decimal64/decimal128 + and also in support for decSingle/decDouble/decQuad. Rename them in case + both types of support are used in the same executable. */ +#undef DPD2BIN +#define DPD2BIN __decnnDPD2BIN +#undef BIN2DPD +#define BIN2DPD __decnnBIN2DPD #endif #endif diff --git a/libdecnumber/dpd/decimal32.c b/libdecnumber/dpd/decimal32.c index 692c2f70ec..42bddf172a 100644 --- a/libdecnumber/dpd/decimal32.c +++ b/libdecnumber/dpd/decimal32.c @@ -49,10 +49,6 @@ #include "decimal32.h" /* our primary include */ /* Utility tables and routines [in decimal64.c] */ -/* DPD2BIN and the reverse are renamed to prevent link-time conflict */ -/* if decQuad is also built in the same executable */ -#define DPD2BIN DPD2BINx -#define BIN2DPD BIN2DPDx extern const uInt COMBEXP[32], COMBMSD[32]; extern const uShort DPD2BIN[1024]; extern const uShort BIN2DPD[1000]; diff --git a/libdecnumber/dpd/decimal32Symbols.h b/libdecnumber/dpd/decimal32Symbols.h index de119346c4..c4aa74fdfd 100644 --- a/libdecnumber/dpd/decimal32Symbols.h +++ b/libdecnumber/dpd/decimal32Symbols.h @@ -11,6 +11,16 @@ #define decimal32ToEngString __decimal32ToEngString #define decimal32ToNumber __decimal32ToNumber #define decimal32ToString __decimal32ToString +#define COMBEXP __decnnCOMBEXP +#define COMBMSD __decnnCOMBMSD + +/* DPD2BIN and BIN2DPD are used in support for decimal32/decimal64/decimal128 + and also in support for decSingle/decDouble/decQuad. Rename them in case + both types of support are used in the same executable. */ +#undef DPD2BIN +#define DPD2BIN __decnnDPD2BIN +#undef BIN2DPD +#define BIN2DPD __decnnBIN2DPD #endif #endif diff --git a/libdecnumber/dpd/decimal64.c b/libdecnumber/dpd/decimal64.c index 359214e5db..c3617c46c0 100644 --- a/libdecnumber/dpd/decimal64.c +++ b/libdecnumber/dpd/decimal64.c @@ -49,10 +49,6 @@ #include "decimal64.h" /* our primary include */ /* Utility routines and tables [in decimal64.c]; externs for C++ */ -/* DPD2BIN and the reverse are renamed to prevent link-time conflict */ -/* if decQuad is also built in the same executable */ -#define DPD2BIN DPD2BINx -#define BIN2DPD BIN2DPDx extern const uInt COMBEXP[32], COMBMSD[32]; extern const uShort DPD2BIN[1024]; extern const uShort BIN2DPD[1000]; diff --git a/libdecnumber/dpd/decimal64Symbols.h b/libdecnumber/dpd/decimal64Symbols.h index cf965bf5bd..efb6446381 100644 --- a/libdecnumber/dpd/decimal64Symbols.h +++ b/libdecnumber/dpd/decimal64Symbols.h @@ -11,6 +11,16 @@ #define decimal64ToEngString __decimal64ToEngString #define decimal64ToNumber __decimal64ToNumber #define decimal64ToString __decimal64ToString +#define COMBEXP __decnnCOMBEXP +#define COMBMSD __decnnCOMBMSD + +/* DPD2BIN and BIN2DPD are used in support for decimal32/decimal64/decimal128 + and also in support for decSingle/decDouble/decQuad. Rename them in case + both types of support are used in the same executable. */ +#undef DPD2BIN +#define DPD2BIN __decnnDPD2BIN +#undef BIN2DPD +#define BIN2DPD __decnnBIN2DPD #endif #endif