diff options
Diffstat (limited to 'softfloat/s_roundPackToUI32.c')
-rwxr-xr-x | softfloat/s_roundPackToUI32.c | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/softfloat/s_roundPackToUI32.c b/softfloat/s_roundPackToUI32.c deleted file mode 100755 index ab44ec7..0000000 --- a/softfloat/s_roundPackToUI32.c +++ /dev/null @@ -1,44 +0,0 @@ - -#include <stdbool.h> -#include <stdint.h> -#include "platform.h" -#include "internals.h" -#include "softfloat.h" - -uint_fast32_t - softfloat_roundPackToUI32( - bool sign, uint_fast64_t sig, int_fast8_t roundingMode, bool exact ) -{ - bool roundNearestEven; - int roundIncrement, roundBits; - uint_fast32_t z; - - roundNearestEven = ( roundingMode == softfloat_round_nearest_even ); - roundIncrement = 0x40; - if ( - ! roundNearestEven - && ( roundingMode != softfloat_round_nearest_maxMag ) - ) { - roundIncrement = - ( roundingMode == softfloat_round_minMag ) - || ( roundingMode - == ( sign ? softfloat_round_max : softfloat_round_min ) ) - ? 0 - : 0x7F; - } - roundBits = sig & 0x7F; - sig += roundIncrement; - if ( sig & UINT64_C( 0xFFFFFF8000000000 ) ) goto invalid; - z = sig>>7; - z &= ~ ( ! ( roundBits ^ 0x40 ) & roundNearestEven ); - if ( sign && z ) goto invalid; - if ( exact && roundBits ) { - softfloat_exceptionFlags |= softfloat_flag_inexact; - } - return z; - invalid: - softfloat_raiseFlags( softfloat_flag_invalid ); - return 0xFFFFFFFF; - -} - |