mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			142 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
| /* decQuad module for the decNumber C Library.
 | |
|    Copyright (C) 2007-2019 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 */
 | |
| 
 |