Lines Matching +full:- +full:- +full:-
5 * IEC/IEEE Floating-point Arithmetic Package. Those parts of the code (and
9 * the SoftFloat-2a license
11 * GPL-v2-or-later
14 * taken to be licensed under the Softfloat-2a license unless specifically
20 This C header file is part of the SoftFloat IEC/IEEE Floating-point
26 National Science Foundation under grant MIP-9311980. The original version
27 of this code was written as part of a project to build a fixed-point vector
79 * version 2 or later. See the COPYING file in the top-level directory.
85 /*----------------------------------------------------------------------------
86 | Software IEC/IEEE floating-point ordering relations
87 *----------------------------------------------------------------------------*/
90 float_relation_less = -1,
96 #include "fpu/softfloat-types.h"
97 #include "fpu/softfloat-helpers.h"
100 /*----------------------------------------------------------------------------
101 | Routine to raise any or all of the software IEC/IEEE floating-point
103 *----------------------------------------------------------------------------*/
106 status->float_exception_flags |= flags; in float_raise()
109 /*----------------------------------------------------------------------------
110 | If `a' is denormal and we are in flush-to-zero mode then set the
111 | input-denormal exception and return zero. Otherwise just return the value.
112 *----------------------------------------------------------------------------*/
118 /*----------------------------------------------------------------------------
126 | This preserves the sign of C when C is +/- 0. Used for Hexagon.
127 *----------------------------------------------------------------------------*/
135 /*----------------------------------------------------------------------------
136 | Software IEC/IEEE integer-to-floating-point conversion routines.
137 *----------------------------------------------------------------------------*/
192 /*----------------------------------------------------------------------------
193 | Software half-precision conversion routines.
194 *----------------------------------------------------------------------------*/
234 /*----------------------------------------------------------------------------
235 | Software half-precision operations.
236 *----------------------------------------------------------------------------*/
363 /*----------------------------------------------------------------------------
365 *----------------------------------------------------------------------------*/
429 /*----------------------------------------------------------------------------
431 *----------------------------------------------------------------------------*/
557 /*----------------------------------------------------------------------------
558 | The pattern for a default generated half-precision NaN.
559 *----------------------------------------------------------------------------*/
562 /*----------------------------------------------------------------------------
563 | Software IEC/IEEE single-precision conversion routines.
564 *----------------------------------------------------------------------------*/
594 /*----------------------------------------------------------------------------
595 | Software IEC/IEEE single-precision operations.
596 *----------------------------------------------------------------------------*/
734 /*----------------------------------------------------------------------------
736 | single-precision floating-point value, returning the result. After being
743 *----------------------------------------------------------------------------*/
751 /*----------------------------------------------------------------------------
752 | The pattern for a default generated single-precision NaN.
753 *----------------------------------------------------------------------------*/
756 /*----------------------------------------------------------------------------
757 | Software IEC/IEEE double-precision conversion routines.
758 *----------------------------------------------------------------------------*/
791 /*----------------------------------------------------------------------------
792 | Software IEC/IEEE double-precision operations.
793 *----------------------------------------------------------------------------*/
932 /*----------------------------------------------------------------------------
933 | The pattern for a default generated double-precision NaN.
934 *----------------------------------------------------------------------------*/
937 /*----------------------------------------------------------------------------
938 | Software IEC/IEEE double-precision operations, rounding to single precision,
940 *----------------------------------------------------------------------------*/
949 /*----------------------------------------------------------------------------
950 | Software IEC/IEEE extended double-precision conversion routines.
951 *----------------------------------------------------------------------------*/
960 /*----------------------------------------------------------------------------
961 | The pattern for an extended double-precision inf.
962 *----------------------------------------------------------------------------*/
965 /*----------------------------------------------------------------------------
966 | Software IEC/IEEE extended double-precision operations.
967 *----------------------------------------------------------------------------*/
1001 * It's target-specific whether the Integer bit is permitted in floatx80_is_infinity()
1007 !(status->floatx80_behaviour & floatx80_pseudo_inf_valid)) { in floatx80_is_infinity()
1074 /*----------------------------------------------------------------------------
1077 | correctly; this is target-specific. In Intel terminology the
1081 | exp == 0, int = 1 : pseudo-denormals
1084 | exp == 0x7fff, int = 0, mantissa == 0 : pseudo-infinities
1086 | exp == 0x7fff, int = 0, mantissa != 0 : pseudo-NaNs
1090 | x87 permits as input also pseudo-denormals.
1091 | m68k permits all those and also pseudo-infinities, pseudo-NaNs and unnormals.
1094 | pseudo-denormals in input, we don't currently have a floatx80_behaviour
1098 *----------------------------------------------------------------------------*/
1108 return !(s->floatx80_behaviour & floatx80_pseudo_nan_valid); in floatx80_invalid_encoding()
1110 return !(s->floatx80_behaviour & floatx80_pseudo_inf_valid); in floatx80_invalid_encoding()
1113 return !(s->floatx80_behaviour & floatx80_unnormal_valid); in floatx80_invalid_encoding()
1124 /*----------------------------------------------------------------------------
1125 | Returns the fraction bits of the extended double-precision floating-point
1127 *----------------------------------------------------------------------------*/
1134 /*----------------------------------------------------------------------------
1135 | Returns the exponent bits of the extended double-precision floating-point
1137 *----------------------------------------------------------------------------*/
1144 /*----------------------------------------------------------------------------
1145 | Returns the sign bit of the extended double-precision floating-point value
1147 *----------------------------------------------------------------------------*/
1154 /*----------------------------------------------------------------------------
1156 | extended double-precision floating-point value, returning the result.
1157 *----------------------------------------------------------------------------*/
1168 /*----------------------------------------------------------------------------
1169 | Normalizes the subnormal extended double-precision floating-point value
1173 *----------------------------------------------------------------------------*/
1178 /*----------------------------------------------------------------------------
1179 | Takes two extended double-precision floating-point values `a' and `b', one
1182 *----------------------------------------------------------------------------*/
1186 /*----------------------------------------------------------------------------
1187 | Takes an abstract floating-point value having sign `zSign', exponent `zExp',
1189 | and returns the proper extended double-precision floating-point value
1191 | rounded and packed into the extended double-precision format, with the
1198 | double-precision floating-point number.
1201 | result is rounded to the full precision of the extended double-precision
1207 | Floating-Point Arithmetic.
1208 *----------------------------------------------------------------------------*/
1214 /*----------------------------------------------------------------------------
1215 | Takes an abstract floating-point value having sign `zSign', exponent
1217 | and returns the proper extended double-precision floating-point value
1221 *----------------------------------------------------------------------------*/
1228 /*----------------------------------------------------------------------------
1229 | The pattern for a default generated extended double-precision NaN.
1230 *----------------------------------------------------------------------------*/
1233 /*----------------------------------------------------------------------------
1234 | Software IEC/IEEE quadruple-precision conversion routines.
1235 *----------------------------------------------------------------------------*/
1252 /*----------------------------------------------------------------------------
1253 | Software IEC/IEEE quadruple-precision operations.
1254 *----------------------------------------------------------------------------*/
1370 /*----------------------------------------------------------------------------
1371 | The pattern for a default generated quadruple-precision NaN.
1372 *----------------------------------------------------------------------------*/