| /* decQuad module for the decNumber C Library. | 
 |    Copyright (C) 2007-2018 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 3, or (at your option) any later | 
 |    version. | 
 |  | 
 |    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. | 
 |  | 
 | 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/>.  */ | 
 |  | 
 | /* ------------------------------------------------------------------ */ | 
 | /* decQuad.c -- decQuad operations module			      */ | 
 | /* ------------------------------------------------------------------ */ | 
 | /* This module comprises decQuad operations (including conversions)   */ | 
 | /* ------------------------------------------------------------------ */ | 
 |  | 
 | #include "decContext.h"       /* public includes */ | 
 | #include "decQuad.h"	      /* .. */ | 
 |  | 
 | /* Constant mappings for shared code */ | 
 | #define DECPMAX     DECQUAD_Pmax | 
 | #define DECEMIN     DECQUAD_Emin | 
 | #define DECEMAX     DECQUAD_Emax | 
 | #define DECEMAXD    DECQUAD_EmaxD | 
 | #define DECBYTES    DECQUAD_Bytes | 
 | #define DECSTRING   DECQUAD_String | 
 | #define DECECONL    DECQUAD_EconL | 
 | #define DECBIAS     DECQUAD_Bias | 
 | #define DECLETS     DECQUAD_Declets | 
 | #define DECQTINY   (-DECQUAD_Bias) | 
 |  | 
 | /* Type and function mappings for shared code */ | 
 | #define decFloat		   decQuad	  /* Type name */ | 
 |  | 
 | /* Utilities and conversions (binary results, extractors, etc.) */ | 
 | #define decFloatFromBCD 	   decQuadFromBCD | 
 | #define decFloatFromInt32	   decQuadFromInt32 | 
 | #define decFloatFromPacked	   decQuadFromPacked | 
 | #define decFloatFromPackedChecked  decQuadFromPackedChecked | 
 | #define decFloatFromString	   decQuadFromString | 
 | #define decFloatFromUInt32	   decQuadFromUInt32 | 
 | #define decFloatFromWider	   decQuadFromWider | 
 | #define decFloatGetCoefficient	   decQuadGetCoefficient | 
 | #define decFloatGetExponent	   decQuadGetExponent | 
 | #define decFloatSetCoefficient	   decQuadSetCoefficient | 
 | #define decFloatSetExponent	   decQuadSetExponent | 
 | #define decFloatShow		   decQuadShow | 
 | #define decFloatToBCD		   decQuadToBCD | 
 | #define decFloatToEngString	   decQuadToEngString | 
 | #define decFloatToInt32 	   decQuadToInt32 | 
 | #define decFloatToInt32Exact	   decQuadToInt32Exact | 
 | #define decFloatToPacked	   decQuadToPacked | 
 | #define decFloatToString	   decQuadToString | 
 | #define decFloatToUInt32	   decQuadToUInt32 | 
 | #define decFloatToUInt32Exact	   decQuadToUInt32Exact | 
 | #define decFloatToWider 	   decQuadToWider | 
 | #define decFloatZero		   decQuadZero | 
 |  | 
 | /* Computational (result is a decFloat) */ | 
 | #define decFloatAbs		   decQuadAbs | 
 | #define decFloatAdd		   decQuadAdd | 
 | #define decFloatAnd		   decQuadAnd | 
 | #define decFloatDivide		   decQuadDivide | 
 | #define decFloatDivideInteger	   decQuadDivideInteger | 
 | #define decFloatFMA		   decQuadFMA | 
 | #define decFloatInvert		   decQuadInvert | 
 | #define decFloatLogB		   decQuadLogB | 
 | #define decFloatMax		   decQuadMax | 
 | #define decFloatMaxMag		   decQuadMaxMag | 
 | #define decFloatMin		   decQuadMin | 
 | #define decFloatMinMag		   decQuadMinMag | 
 | #define decFloatMinus		   decQuadMinus | 
 | #define decFloatMultiply	   decQuadMultiply | 
 | #define decFloatNextMinus	   decQuadNextMinus | 
 | #define decFloatNextPlus	   decQuadNextPlus | 
 | #define decFloatNextToward	   decQuadNextToward | 
 | #define decFloatOr		   decQuadOr | 
 | #define decFloatPlus		   decQuadPlus | 
 | #define decFloatQuantize	   decQuadQuantize | 
 | #define decFloatReduce		   decQuadReduce | 
 | #define decFloatRemainder	   decQuadRemainder | 
 | #define decFloatRemainderNear	   decQuadRemainderNear | 
 | #define decFloatRotate		   decQuadRotate | 
 | #define decFloatScaleB		   decQuadScaleB | 
 | #define decFloatShift		   decQuadShift | 
 | #define decFloatSubtract	   decQuadSubtract | 
 | #define decFloatToIntegralValue    decQuadToIntegralValue | 
 | #define decFloatToIntegralExact    decQuadToIntegralExact | 
 | #define decFloatXor		   decQuadXor | 
 |  | 
 | /* Comparisons */ | 
 | #define decFloatCompare 	   decQuadCompare | 
 | #define decFloatCompareSignal	   decQuadCompareSignal | 
 | #define decFloatCompareTotal	   decQuadCompareTotal | 
 | #define decFloatCompareTotalMag    decQuadCompareTotalMag | 
 |  | 
 | /* Copies */ | 
 | #define decFloatCanonical	   decQuadCanonical | 
 | #define decFloatCopy		   decQuadCopy | 
 | #define decFloatCopyAbs 	   decQuadCopyAbs | 
 | #define decFloatCopyNegate	   decQuadCopyNegate | 
 | #define decFloatCopySign	   decQuadCopySign | 
 |  | 
 | /* Non-computational */ | 
 | #define decFloatClass		   decQuadClass | 
 | #define decFloatClassString	   decQuadClassString | 
 | #define decFloatDigits		   decQuadDigits | 
 | #define decFloatIsCanonical	   decQuadIsCanonical | 
 | #define decFloatIsFinite	   decQuadIsFinite | 
 | #define decFloatIsInfinite	   decQuadIsInfinite | 
 | #define decFloatIsInteger	   decQuadIsInteger | 
 | #define decFloatIsNaN		   decQuadIsNaN | 
 | #define decFloatIsNormal	   decQuadIsNormal | 
 | #define decFloatIsSignaling	   decQuadIsSignaling | 
 | #define decFloatIsSignalling	   decQuadIsSignalling | 
 | #define decFloatIsSigned	   decQuadIsSigned | 
 | #define decFloatIsSubnormal	   decQuadIsSubnormal | 
 | #define decFloatIsZero		   decQuadIsZero | 
 | #define decFloatRadix		   decQuadRadix | 
 | #define decFloatSameQuantum	   decQuadSameQuantum | 
 | #define decFloatVersion 	   decQuadVersion | 
 |  | 
 | #include "decNumberLocal.h"   /* local includes (need DECPMAX) */ | 
 | #include "decCommon.c"	      /* non-arithmetic decFloat routines */ | 
 | #include "decBasic.c"	      /* basic formats routines */ | 
 |  |