From: Andrew Waterman Date: Tue, 24 Feb 2015 02:35:14 +0000 (-0800) Subject: Softfloat fcvt.{w/l}.d now returns -MaxInt for -NaN X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c0e63cb0d414c06ee8aba0adeb32cefa26dc23b1;p=riscv-isa-sim.git Softfloat fcvt.{w/l}.d now returns -MaxInt for -NaN --- diff --git a/softfloat/f64_to_i32.c b/softfloat/f64_to_i32.c index 0778a86..8259ee2 100755 --- a/softfloat/f64_to_i32.c +++ b/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 ); diff --git a/softfloat/f64_to_i64.c b/softfloat/f64_to_i64.c index 676e944..0e6ddcd 100755 --- a/softfloat/f64_to_i64.c +++ b/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; }