OSDN Git Service

* c-pragma.c (pending_weak_d, pending_weak): New.
[pf3gnuchains/gcc-fork.git] / libdecnumber / decDouble.c
index ba6a0af..9af8e15 100644 (file)
@@ -1,32 +1,27 @@
 /* decDouble module for the decNumber C Library.
-   Copyright (C) 2007 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009 Free Software Foundation, Inc.
    Contributed by IBM Corporation.  Author Mike Cowlishaw.
 
    This file is part of GCC.
 
    GCC is free software; you can redistribute it and/or modify it under
    the terms of the GNU General Public License as published by the Free
-   Software Foundation; either version 2, or (at your option) any later
+   Software Foundation; either version 3, or (at your option) any later
    version.
 
-   In addition to the permissions in the GNU General Public License,
-   the Free Software Foundation gives you unlimited permission to link
-   the compiled version of this file into combinations with other
-   programs, and to distribute those combinations without any
-   restriction coming from the use of this file.  (The General Public
-   License restrictions do apply in other respects; for example, they
-   cover modification of the file, and distribution when not linked
-   into a combine executable.)
-
    GCC is distributed in the hope that it will be useful, but WITHOUT ANY
    WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    for more details.
 
-   You should have received a copy of the GNU General Public License
-   along with GCC; see the file COPYING.  If not, write to the Free
-   Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301, USA.  */
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
 
 /* ------------------------------------------------------------------ */
 /* decDouble.c -- decDouble operations module                        */
 /* This module comprises decDouble operations (including conversions) */
 /* ------------------------------------------------------------------ */
 
-#include "decContext.h"              /* public includes */
+#include "decContext.h"       /* public includes */
 #include "decDouble.h"       /* .. */
 
 /* Constant mappings for shared code */
-#define DECPMAX            DECDOUBLE_Pmax
-#define DECEMIN            DECDOUBLE_Emin
-#define DECEMAX            DECDOUBLE_Emax
+#define DECPMAX     DECDOUBLE_Pmax
+#define DECEMIN     DECDOUBLE_Emin
+#define DECEMAX     DECDOUBLE_Emax
 #define DECEMAXD    DECDOUBLE_EmaxD
 #define DECBYTES    DECDOUBLE_Bytes
 #define DECSTRING   DECDOUBLE_String
 #define DECECONL    DECDOUBLE_EconL
-#define DECBIAS            DECDOUBLE_Bias
-#define DECLETS            DECDOUBLE_Declets
+#define DECBIAS     DECDOUBLE_Bias
+#define DECLETS     DECDOUBLE_Declets
 #define DECQTINY    (-DECDOUBLE_Bias)
 /* parameters of next-wider format */
 #define DECWBYTES   DECQUAD_Bytes
 #define DECWBIAS    DECQUAD_Bias
 
 /* Type and function mappings for shared code */
-#define decFloat              decDouble          /* Type name */
-#define decFloatWider         decQuad            /* Type name */
+#define decFloat                  decDouble      /* Type name */
+#define decFloatWider             decQuad        /* Type name */
 
 /* Utilities and conversions (binary results, extractors, etc.) */
-#define decFloatFromBCD                decDoubleFromBCD
-#define decFloatFromInt32      decDoubleFromInt32
-#define decFloatFromPacked     decDoubleFromPacked
-#define decFloatFromString     decDoubleFromString
-#define decFloatFromUInt32     decDoubleFromUInt32
-#define decFloatFromWider      decDoubleFromWider
-#define decFloatGetCoefficient decDoubleGetCoefficient
-#define decFloatGetExponent    decDoubleGetExponent
-#define decFloatSetCoefficient decDoubleSetCoefficient
-#define decFloatSetExponent    decDoubleSetExponent
-#define decFloatShow           decDoubleShow
-#define decFloatToBCD          decDoubleToBCD
-#define decFloatToEngString    decDoubleToEngString
-#define decFloatToInt32                decDoubleToInt32
-#define decFloatToInt32Exact   decDoubleToInt32Exact
-#define decFloatToPacked       decDoubleToPacked
-#define decFloatToString       decDoubleToString
-#define decFloatToUInt32       decDoubleToUInt32
-#define decFloatToUInt32Exact  decDoubleToUInt32Exact
-#define decFloatToWider                decDoubleToWider
-#define decFloatZero           decDoubleZero
+#define decFloatFromBCD           decDoubleFromBCD
+#define decFloatFromInt32         decDoubleFromInt32
+#define decFloatFromPacked        decDoubleFromPacked
+#define decFloatFromPackedChecked  decDoubleFromPackedChecked
+#define decFloatFromString        decDoubleFromString
+#define decFloatFromUInt32        decDoubleFromUInt32
+#define decFloatFromWider         decDoubleFromWider
+#define decFloatGetCoefficient    decDoubleGetCoefficient
+#define decFloatGetExponent       decDoubleGetExponent
+#define decFloatSetCoefficient    decDoubleSetCoefficient
+#define decFloatSetExponent       decDoubleSetExponent
+#define decFloatShow              decDoubleShow
+#define decFloatToBCD             decDoubleToBCD
+#define decFloatToEngString       decDoubleToEngString
+#define decFloatToInt32           decDoubleToInt32
+#define decFloatToInt32Exact      decDoubleToInt32Exact
+#define decFloatToPacked          decDoubleToPacked
+#define decFloatToString          decDoubleToString
+#define decFloatToUInt32          decDoubleToUInt32
+#define decFloatToUInt32Exact     decDoubleToUInt32Exact
+#define decFloatToWider           decDoubleToWider
+#define decFloatZero              decDoubleZero
 
 /* Computational (result is a decFloat) */
-#define decFloatAbs            decDoubleAbs
-#define decFloatAdd            decDoubleAdd
-#define decFloatAnd            decDoubleAnd
-#define decFloatDivide         decDoubleDivide
-#define decFloatDivideInteger  decDoubleDivideInteger
-#define decFloatFMA            decDoubleFMA
-#define decFloatInvert         decDoubleInvert
-#define decFloatLogB           decDoubleLogB
-#define decFloatMax            decDoubleMax
-#define decFloatMaxMag         decDoubleMaxMag
-#define decFloatMin            decDoubleMin
-#define decFloatMinMag         decDoubleMinMag
-#define decFloatMinus          decDoubleMinus
-#define decFloatMultiply       decDoubleMultiply
-#define decFloatNextMinus      decDoubleNextMinus
-#define decFloatNextPlus       decDoubleNextPlus
-#define decFloatNextToward     decDoubleNextToward
-#define decFloatOr             decDoubleOr
-#define decFloatPlus           decDoublePlus
-#define decFloatQuantize       decDoubleQuantize
-#define decFloatReduce         decDoubleReduce
-#define decFloatRemainder      decDoubleRemainder
-#define decFloatRemainderNear  decDoubleRemainderNear
-#define decFloatRotate         decDoubleRotate
-#define decFloatScaleB         decDoubleScaleB
-#define decFloatShift          decDoubleShift
-#define decFloatSubtract       decDoubleSubtract
-#define decFloatToIntegralValue decDoubleToIntegralValue
-#define decFloatToIntegralExact decDoubleToIntegralExact
-#define decFloatXor            decDoubleXor
+#define decFloatAbs               decDoubleAbs
+#define decFloatAdd               decDoubleAdd
+#define decFloatAnd               decDoubleAnd
+#define decFloatDivide            decDoubleDivide
+#define decFloatDivideInteger     decDoubleDivideInteger
+#define decFloatFMA               decDoubleFMA
+#define decFloatInvert            decDoubleInvert
+#define decFloatLogB              decDoubleLogB
+#define decFloatMax               decDoubleMax
+#define decFloatMaxMag            decDoubleMaxMag
+#define decFloatMin               decDoubleMin
+#define decFloatMinMag            decDoubleMinMag
+#define decFloatMinus             decDoubleMinus
+#define decFloatMultiply          decDoubleMultiply
+#define decFloatNextMinus         decDoubleNextMinus
+#define decFloatNextPlus          decDoubleNextPlus
+#define decFloatNextToward        decDoubleNextToward
+#define decFloatOr                decDoubleOr
+#define decFloatPlus              decDoublePlus
+#define decFloatQuantize          decDoubleQuantize
+#define decFloatReduce            decDoubleReduce
+#define decFloatRemainder         decDoubleRemainder
+#define decFloatRemainderNear     decDoubleRemainderNear
+#define decFloatRotate            decDoubleRotate
+#define decFloatScaleB            decDoubleScaleB
+#define decFloatShift             decDoubleShift
+#define decFloatSubtract          decDoubleSubtract
+#define decFloatToIntegralValue    decDoubleToIntegralValue
+#define decFloatToIntegralExact    decDoubleToIntegralExact
+#define decFloatXor               decDoubleXor
 
 /* Comparisons */
-#define decFloatCompare                decDoubleCompare
-#define decFloatCompareSignal  decDoubleCompareSignal
-#define decFloatCompareTotal   decDoubleCompareTotal
-#define decFloatCompareTotalMag decDoubleCompareTotalMag
+#define decFloatCompare           decDoubleCompare
+#define decFloatCompareSignal     decDoubleCompareSignal
+#define decFloatCompareTotal      decDoubleCompareTotal
+#define decFloatCompareTotalMag    decDoubleCompareTotalMag
 
 /* Copies */
-#define decFloatCanonical      decDoubleCanonical
-#define decFloatCopy           decDoubleCopy
-#define decFloatCopyAbs                decDoubleCopyAbs
-#define decFloatCopyNegate     decDoubleCopyNegate
-#define decFloatCopySign       decDoubleCopySign
+#define decFloatCanonical         decDoubleCanonical
+#define decFloatCopy              decDoubleCopy
+#define decFloatCopyAbs           decDoubleCopyAbs
+#define decFloatCopyNegate        decDoubleCopyNegate
+#define decFloatCopySign          decDoubleCopySign
 
 /* Non-computational */
-#define decFloatClass          decDoubleClass
-#define decFloatClassString    decDoubleClassString
-#define decFloatDigits         decDoubleDigits
-#define decFloatIsCanonical    decDoubleIsCanonical
-#define decFloatIsFinite       decDoubleIsFinite
-#define decFloatIsInfinite     decDoubleIsInfinite
-#define decFloatIsInteger      decDoubleIsInteger
-#define decFloatIsNaN          decDoubleIsNaN
-#define decFloatIsNormal       decDoubleIsNormal
-#define decFloatIsSignaling    decDoubleIsSignaling
-#define decFloatIsSignalling   decDoubleIsSignalling
-#define decFloatIsSigned       decDoubleIsSigned
-#define decFloatIsSubnormal    decDoubleIsSubnormal
-#define decFloatIsZero         decDoubleIsZero
-#define decFloatRadix          decDoubleRadix
-#define decFloatSameQuantum    decDoubleSameQuantum
-#define decFloatVersion                decDoubleVersion
-
+#define decFloatClass             decDoubleClass
+#define decFloatClassString       decDoubleClassString
+#define decFloatDigits            decDoubleDigits
+#define decFloatIsCanonical       decDoubleIsCanonical
+#define decFloatIsFinite          decDoubleIsFinite
+#define decFloatIsInfinite        decDoubleIsInfinite
+#define decFloatIsInteger         decDoubleIsInteger
+#define decFloatIsNaN             decDoubleIsNaN
+#define decFloatIsNormal          decDoubleIsNormal
+#define decFloatIsSignaling       decDoubleIsSignaling
+#define decFloatIsSignalling      decDoubleIsSignalling
+#define decFloatIsSigned          decDoubleIsSigned
+#define decFloatIsSubnormal       decDoubleIsSubnormal
+#define decFloatIsZero            decDoubleIsZero
+#define decFloatRadix             decDoubleRadix
+#define decFloatSameQuantum       decDoubleSameQuantum
+#define decFloatVersion           decDoubleVersion
 
 #include "decNumberLocal.h"   /* local includes (need DECPMAX) */
 #include "decCommon.c"       /* non-arithmetic decFloat routines */
 #include "decBasic.c"        /* basic formats routines */
 
-/* Below here will move to shared file as completed */
-