Lines Matching +full:high +full:- +full:z

1 /*	$NetBSD: softfloat-specialize,v 1.6 2011/03/06 10:27:37 martin Exp $	*/
8 This C source fragment is part of the SoftFloat IEC/IEEE Floating-point
14 National Science Foundation under grant MIP-9311980. The original version
15 of this code was written as part of a project to build a fixed-point vector
40 -------------------------------------------------------------------------------
41 Underflow tininess-detection mode, statically initialized to default value.
43 -------------------------------------------------------------------------------
55 -------------------------------------------------------------------------------
56 Raises the exceptions specified by `flags'. Floating-point traps can be
60 -------------------------------------------------------------------------------
97 -------------------------------------------------------------------------------
99 -------------------------------------------------------------------------------
103 bits64 high, low;
107 -------------------------------------------------------------------------------
108 The pattern for a default generated single-precision NaN.
109 -------------------------------------------------------------------------------
114 -------------------------------------------------------------------------------
115 Returns 1 if the single-precision floating-point value `a' is a NaN;
117 -------------------------------------------------------------------------------
130 -------------------------------------------------------------------------------
131 Returns 1 if the single-precision floating-point value `a' is a signaling
133 -------------------------------------------------------------------------------
147 -------------------------------------------------------------------------------
148 Returns the result of converting the single-precision floating-point NaN
151 -------------------------------------------------------------------------------
155 commonNaNT z;
158 z.sign = a>>31;
159 z.low = 0;
160 z.high = ( (bits64) a )<<41;
161 return z;
166 -------------------------------------------------------------------------------
167 Returns the result of converting the canonical NaN `a' to the single-
168 precision floating-point format.
169 -------------------------------------------------------------------------------
174 return ( ( (bits32) a.sign )<<31 ) | 0x7FC00000 | ( a.high>>41 );
179 -------------------------------------------------------------------------------
180 Takes two single-precision floating-point values `a' and `b', one of which
183 -------------------------------------------------------------------------------
206 -------------------------------------------------------------------------------
207 The pattern for a default generated double-precision NaN.
208 -------------------------------------------------------------------------------
213 -------------------------------------------------------------------------------
214 Returns 1 if the double-precision floating-point value `a' is a NaN;
216 -------------------------------------------------------------------------------
230 -------------------------------------------------------------------------------
231 Returns 1 if the double-precision floating-point value `a' is a signaling
233 -------------------------------------------------------------------------------
249 -------------------------------------------------------------------------------
250 Returns the result of converting the double-precision floating-point NaN
253 -------------------------------------------------------------------------------
257 commonNaNT z;
260 z.sign = FLOAT64_DEMANGLE(a)>>63;
261 z.low = 0;
262 z.high = FLOAT64_DEMANGLE(a)<<12;
263 return z;
268 -------------------------------------------------------------------------------
269 Returns the result of converting the canonical NaN `a' to the double-
270 precision floating-point format.
271 -------------------------------------------------------------------------------
279 | ( a.high>>12 ) );
284 -------------------------------------------------------------------------------
285 Takes two double-precision floating-point values `a' and `b', one of which
288 -------------------------------------------------------------------------------
313 -------------------------------------------------------------------------------
314 The pattern for a default generated extended double-precision NaN. The
315 `high' and `low' values hold the most- and least-significant bits,
317 -------------------------------------------------------------------------------
323 -------------------------------------------------------------------------------
324 Returns 1 if the extended double-precision floating-point value `a' is a
326 -------------------------------------------------------------------------------
331 return ( ( a.high & 0x7FFF ) == 0x7FFF ) && (bits64) ( a.low<<1 );
336 -------------------------------------------------------------------------------
337 Returns 1 if the extended double-precision floating-point value `a' is a
339 -------------------------------------------------------------------------------
347 ( ( a.high & 0x7FFF ) == 0x7FFF )
354 -------------------------------------------------------------------------------
355 Returns the result of converting the extended double-precision floating-
358 -------------------------------------------------------------------------------
362 commonNaNT z;
365 z.sign = a.high>>15;
366 z.low = 0;
367 z.high = a.low<<1;
368 return z;
373 -------------------------------------------------------------------------------
375 double-precision floating-point format.
376 -------------------------------------------------------------------------------
380 floatx80 z;
382 z.low = LIT64( 0xC000000000000000 ) | ( a.high>>1 );
383 z.high = ( ( (bits16) a.sign )<<15 ) | 0x7FFF;
384 return z;
389 -------------------------------------------------------------------------------
390 Takes two extended double-precision floating-point values `a' and `b', one
393 -------------------------------------------------------------------------------
420 -------------------------------------------------------------------------------
421 The pattern for a default generated quadruple-precision NaN. The `high' and
422 `low' values hold the most- and least-significant bits, respectively.
423 -------------------------------------------------------------------------------
429 -------------------------------------------------------------------------------
430 Returns 1 if the quadruple-precision floating-point value `a' is a NaN;
432 -------------------------------------------------------------------------------
438 ( LIT64( 0xFFFE000000000000 ) <= (bits64) ( a.high<<1 ) )
439 && ( a.low || ( a.high & LIT64( 0x0000FFFFFFFFFFFF ) ) );
444 -------------------------------------------------------------------------------
445 Returns 1 if the quadruple-precision floating-point value `a' is a
447 -------------------------------------------------------------------------------
453 ( ( ( a.high>>47 ) & 0xFFFF ) == 0xFFFE )
454 && ( a.low || ( a.high & LIT64( 0x00007FFFFFFFFFFF ) ) );
459 -------------------------------------------------------------------------------
460 Returns the result of converting the quadruple-precision floating-point NaN
463 -------------------------------------------------------------------------------
467 commonNaNT z;
470 z.sign = a.high>>63;
471 shortShift128Left( a.high, a.low, 16, &z.high, &z.low );
472 return z;
477 -------------------------------------------------------------------------------
478 Returns the result of converting the canonical NaN `a' to the quadruple-
479 precision floating-point format.
480 -------------------------------------------------------------------------------
484 float128 z;
486 shift128Right( a.high, a.low, 16, &z.high, &z.low );
487 z.high |= ( ( (bits64) a.sign )<<63 ) | LIT64( 0x7FFF800000000000 );
488 return z;
493 -------------------------------------------------------------------------------
494 Takes two quadruple-precision floating-point values `a' and `b', one of
497 -------------------------------------------------------------------------------
507 a.high |= LIT64( 0x0000800000000000 );
508 b.high |= LIT64( 0x0000800000000000 );