f933dedbe1c8c70dbe5017389fe5893eff2c1aa1
[riscv-isa-sim.git] / softfloat / 8086 / s_f64UIToCommonNaN.c
1
2 #include <stdint.h>
3 #include "platform.h"
4 #include "specialize.h"
5 #include "softfloat.h"
6
7 /*----------------------------------------------------------------------------
8 | Returns the result of converting the double-precision floating-point NaN
9 | `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid
10 | exception is raised.
11 *----------------------------------------------------------------------------*/
12 struct commonNaN softfloat_f64UIToCommonNaN( uint_fast64_t uiA )
13 {
14 struct commonNaN z;
15
16 if ( softfloat_isSigNaNF64UI( uiA ) ) {
17 softfloat_raiseFlags( softfloat_flag_invalid );
18 }
19 z.sign = uiA>>63;
20 z.v64 = uiA<<12;
21 z.v0 = 0;
22 return z;
23
24 }
25