Ignore:
File:
1 edited

Legend:

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

    r3212921 ra35b458  
    587587        if ((is_float32_nan(ua.data)) || (is_float32_nan(ub.data))) {
    588588                // TODO: sigNaNs
    589                 return 0;
     589                return -1;
    590590        }
    591591
     
    606606        if ((is_float32_nan(ua.data)) || (is_float32_nan(ub.data))) {
    607607                // TODO: sigNaNs
    608                 return 0;
     608                return 1;
    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 0;
     627                return -1;
    628628        }
    629629
    630630        if (is_float32_eq(ua.data, ub.data))
    631                 return 1;
     631                return 0;
    632632
    633633        if (is_float32_gt(ua.data, ub.data))
    634634                return 1;
    635635
    636         return 0;
    637 }
    638 
    639 int __aeabi_fcmple(float32_t a, float32_t b)
     636        return -1;
     637}
     638
     639int __aeabi_fcmpeq(float32_t a, float32_t b)
    640640{
    641641        float32_u ua;
     
    647647        if ((is_float32_nan(ua.data)) || (is_float32_nan(ub.data))) {
    648648                // 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;
    659 }
    660 
    661 int __aeabi_fcmpeq(float32_t a, float32_t b)
    662 {
    663         float32_u ua;
    664         ua.val = a;
    665 
    666         float32_u ub;
    667         ub.val = b;
    668 
    669         if ((is_float32_nan(ua.data)) || (is_float32_nan(ub.data))) {
    670                 // TODO: sigNaNs
    671                 return 0;
    672         }
    673 
    674         return is_float32_eq(ua.data, ub.data);
     649                return 1;
     650        }
     651
     652        return is_float32_eq(ua.data, ub.data) - 1;
    675653}
    676654
     
    826804        if ((is_float64_nan(ua.data)) || (is_float64_nan(ub.data))) {
    827805                // TODO: sigNaNs
    828                 return 0;
     806                return 1;
    829807        }
    830808
    831809        if (is_float64_lt(ua.data, ub.data))
    832                 return 1;
     810                return -1;
    833811
    834812        return 0;
     
    845823        if ((is_float64_nan(ua.data)) || (is_float64_nan(ub.data))) {
    846824                // TODO: sigNaNs
    847                 return 0;
    848         }
    849 
    850         return is_float64_eq(ua.data, ub.data);
     825                return 1;
     826        }
     827
     828        return is_float64_eq(ua.data, ub.data) - 1;
    851829}
    852830
     
    861839        if ((is_float64_nan(ua.data)) || (is_float64_nan(ub.data))) {
    862840                // TODO: sigNaNs
    863                 return 0;
     841                return -1;
    864842        }
    865843
     
    880858        if ((is_float64_nan(ua.data)) || (is_float64_nan(ub.data))) {
    881859                // TODO: sigNaNs
    882                 return 0;
     860                return -1;
    883861        }
    884862
    885863        if (is_float64_eq(ua.data, ub.data))
    886                 return 1;
     864                return 0;
    887865
    888866        if (is_float64_gt(ua.data, ub.data))
    889867                return 1;
    890868
    891         return 0;
     869        return -1;
    892870}
    893871
     
    902880        if ((is_float64_nan(ua.data)) || (is_float64_nan(ub.data))) {
    903881                // TODO: sigNaNs
    904                 return 0;
     882                return 1;
    905883        }
    906884
    907885        if (is_float64_eq(ua.data, ub.data))
    908                 return 1;
     886                return 0;
    909887
    910888        if (is_float64_lt(ua.data, ub.data))
    911                 return 1;
    912 
    913         return 0;
     889                return -1;
     890
     891        return 1;
    914892}
    915893
Note: See TracChangeset for help on using the changeset viewer.