Revision fd728f2f

b/fpu/softfloat.c
6667 6667

  
6668 6668
uint32 float64_to_uint32_round_to_zero( float64 a STATUS_PARAM )
6669 6669
{
6670
    int64_t v;
6670
    uint64_t v;
6671 6671
    uint32 res;
6672
    int old_exc_flags = get_float_exception_flags(status);
6672 6673

  
6673
    v = float64_to_int64_round_to_zero(a STATUS_VAR);
6674
    if (v < 0) {
6675
        res = 0;
6676
        float_raise( float_flag_invalid STATUS_VAR);
6677
    } else if (v > 0xffffffff) {
6674
    v = float64_to_uint64_round_to_zero(a STATUS_VAR);
6675
    if (v > 0xffffffff) {
6678 6676
        res = 0xffffffff;
6679
        float_raise( float_flag_invalid STATUS_VAR);
6680 6677
    } else {
6681
        res = v;
6678
        return v;
6682 6679
    }
6680
    set_float_exception_flags(old_exc_flags, status);
6681
    float_raise(float_flag_invalid STATUS_VAR);
6683 6682
    return res;
6684 6683
}
6685 6684

  

Also available in: Unified diff