Browse Source

Softfloat fcvt.{w/l}.d now returns -MaxInt for -NaN

pull/18/head
Andrew Waterman 12 years ago
parent
commit
c0e63cb0d4
  1. 1
      softfloat/f64_to_i32.c
  2. 2
      softfloat/f64_to_i64.c

1
softfloat/f64_to_i32.c

@ -20,7 +20,6 @@ int_fast32_t f64_to_i32( float64_t a, int_fast8_t roundingMode, bool exact )
sign = signF64UI( uiA );
exp = expF64UI( uiA );
sig = fracF64UI( uiA );
if ( ( exp == 0x7FF ) && sig ) sign = 0;
if ( exp ) sig |= UINT64_C( 0x0010000000000000 );
shiftCount = 0x42C - exp;
if ( 0 < shiftCount ) sig = softfloat_shift64RightJam( sig, shiftCount );

2
softfloat/f64_to_i64.c

@ -28,8 +28,6 @@ int_fast64_t f64_to_i64( float64_t a, int_fast8_t roundingMode, bool exact )
softfloat_raiseFlags( softfloat_flag_invalid );
return
! sign
|| ( ( exp == 0x7FF )
&& fracF64UI( uiA ) )
? INT64_C( 0x7FFFFFFFFFFFFFFF )
: - INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1;
}

Loading…
Cancel
Save