diff options
author | Andrew Waterman <waterman@cs.berkeley.edu> | 2015-02-23 18:35:14 -0800 |
---|---|---|
committer | Andrew Waterman <waterman@cs.berkeley.edu> | 2015-02-23 18:35:14 -0800 |
commit | c0e63cb0d414c06ee8aba0adeb32cefa26dc23b1 (patch) | |
tree | c05175756e00a4a2ac396834b8863482f5dc1225 /softfloat | |
parent | 7e4df4d518b5090eb76f88e6195d8206ae413ca7 (diff) | |
download | riscv-isa-sim-c0e63cb0d414c06ee8aba0adeb32cefa26dc23b1.zip riscv-isa-sim-c0e63cb0d414c06ee8aba0adeb32cefa26dc23b1.tar.gz riscv-isa-sim-c0e63cb0d414c06ee8aba0adeb32cefa26dc23b1.tar.bz2 |
Softfloat fcvt.{w/l}.d now returns -MaxInt for -NaN
Diffstat (limited to 'softfloat')
-rwxr-xr-x | softfloat/f64_to_i32.c | 1 | ||||
-rwxr-xr-x | softfloat/f64_to_i64.c | 2 |
2 files changed, 0 insertions, 3 deletions
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;
}
|