Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/softfloat/comparison.c

    ra35b458 r3212921  
    587587        if ((is_float32_nan(ua.data)) || (is_float32_nan(ub.data))) {
    588588                // TODO: sigNaNs
    589                 return -1;
     589                return 0;
    590590        }
    591591
     
    606606        if ((is_float32_nan(ua.data)) || (is_float32_nan(ub.data))) {
    607607                // TODO: sigNaNs
    608                 return 1;
     608                return 0;
    609609        }
    610610
    611611        if (is_float32_lt(ua.data, ub.data))
    612                 return -1;
     612                return 1;
    613613
    614614        return 0;
     
    625625        if ((is_float32_nan(ua.data)) || (is_float32_nan(ub.data))) {
    626626                // TODO: sigNaNs
    627                 return -1;
     627                return 0;
    628628        }
    629629
    630630        if (is_float32_eq(ua.data, ub.data))
    631                 return 0;
     631                return 1;
    632632
    633633        if (is_float32_gt(ua.data, ub.data))
    634634                return 1;
    635635
    636         return -1;
     636        return 0;
     637}
     638
     639int __aeabi_fcmple(float32_t a, float32_t b)
     640{
     641        float32_u ua;
     642        ua.val = a;
     643
     644        float32_u ub;
     645        ub.val = b;
     646
     647        if ((is_float32_nan(ua.data)) || (is_float32_nan(ub.data))) {
     648                // TODO: sigNaNs
     649                return 0;
     650        }
     651
     652        if (is_float32_eq(ua.data, ub.data))
     653                return 1;
     654
     655        if (is_float32_lt(ua.data, ub.data))
     656                return 1;
     657
     658        return 0;
    637659}
    638660
     
    647669        if ((is_float32_nan(ua.data)) || (is_float32_nan(ub.data))) {
    648670                // TODO: sigNaNs
    649                 return 1;
    650         }
    651 
    652         return is_float32_eq(ua.data, ub.data) - 1;
     671                return 0;
     672        }
     673
     674        return is_float32_eq(ua.data, ub.data);
    653675}
    654676
     
    804826        if ((is_float64_nan(ua.data)) || (is_float64_nan(ub.data))) {
    805827                // TODO: sigNaNs
    806                 return 1;
     828                return 0;
    807829        }
    808830
    809831        if (is_float64_lt(ua.data, ub.data))
    810                 return -1;
     832                return 1;
    811833
    812834        return 0;
     
    823845        if ((is_float64_nan(ua.data)) || (is_float64_nan(ub.data))) {
    824846                // TODO: sigNaNs
    825                 return 1;
    826         }
    827 
    828         return is_float64_eq(ua.data, ub.data) - 1;
     847                return 0;
     848        }
     849
     850        return is_float64_eq(ua.data, ub.data);
    829851}
    830852
     
    839861        if ((is_float64_nan(ua.data)) || (is_float64_nan(ub.data))) {
    840862                // TODO: sigNaNs
    841                 return -1;
     863                return 0;
    842864        }
    843865
     
    858880        if ((is_float64_nan(ua.data)) || (is_float64_nan(ub.data))) {
    859881                // TODO: sigNaNs
    860                 return -1;
     882                return 0;
    861883        }
    862884
    863885        if (is_float64_eq(ua.data, ub.data))
    864                 return 0;
     886                return 1;
    865887
    866888        if (is_float64_gt(ua.data, ub.data))
    867889                return 1;
    868890
    869         return -1;
     891        return 0;
    870892}
    871893
     
    880902        if ((is_float64_nan(ua.data)) || (is_float64_nan(ub.data))) {
    881903                // TODO: sigNaNs
    882                 return 1;
     904                return 0;
    883905        }
    884906
    885907        if (is_float64_eq(ua.data, ub.data))
    886                 return 0;
     908                return 1;
    887909
    888910        if (is_float64_lt(ua.data, ub.data))
    889                 return -1;
    890 
    891         return 1;
     911                return 1;
     912
     913        return 0;
    892914}
    893915
Note: See TracChangeset for help on using the changeset viewer.