8 uint_fast32_t f32_to_ui32_r_minMag( float32_t a
, bool exact
)
14 int_fast16_t shiftCount
;
19 exp
= expF32UI( uiA
);
20 sig
= fracF32UI( uiA
);
22 if ( exact
&& ( exp
| sig
) ) {
23 softfloat_exceptionFlags
|= softfloat_flag_inexact
;
27 if ( signF32UI( uiA
) ) goto invalid
;
28 shiftCount
= 0x9E - exp
;
29 if ( shiftCount
< 0 ) goto invalid
;
30 sig
= ( sig
| 0x00800000 )<<8;
32 if ( exact
&& ( sig
& ( ( (uint_fast32_t) 1<<shiftCount
) - 1 ) ) ) {
33 softfloat_exceptionFlags
|= softfloat_flag_inexact
;
37 softfloat_raiseFlags( softfloat_flag_invalid
);