aboutsummaryrefslogtreecommitdiff
path: root/softfloat/f32_to_i64.c
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@cs.berkeley.edu>2015-02-28 17:33:03 -0800
committerAndrew Waterman <waterman@cs.berkeley.edu>2015-02-28 17:33:03 -0800
commita4ae7da6ef0c09c2616a0b82f7f569e4e134f75c (patch)
tree5f01a743a211a5b7b3bacf6b53821a2bcef8295c /softfloat/f32_to_i64.c
parent5c8645013001ff125f9b28e0f861328e9b9a4d12 (diff)
downloadriscv-pk-a4ae7da6ef0c09c2616a0b82f7f569e4e134f75c.zip
riscv-pk-a4ae7da6ef0c09c2616a0b82f7f569e4e134f75c.tar.gz
riscv-pk-a4ae7da6ef0c09c2616a0b82f7f569e4e134f75c.tar.bz2
Fix softfloat float->int corner cases
Diffstat (limited to 'softfloat/f32_to_i64.c')
-rwxr-xr-xsoftfloat/f32_to_i64.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/softfloat/f32_to_i64.c b/softfloat/f32_to_i64.c
index c0b8981..34f877f 100755
--- a/softfloat/f32_to_i64.c
+++ b/softfloat/f32_to_i64.c
@@ -25,7 +25,7 @@ int_fast64_t f32_to_i64( float32_t a, int_fast8_t roundingMode, bool exact )
shiftCount = 0xBE - exp;
if ( shiftCount < 0 ) {
softfloat_raiseFlags( softfloat_flag_invalid );
- if ( ! sign || ( ( exp == 0xFF ) && sig ) ) {
+ if ( ! sign ) {
return INT64_C( 0x7FFFFFFFFFFFFFFF );
}
return - INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1;