flag __unordsf2(float32 a, float32 b) { /* * The comparison is unordered if either input is a NaN. * Test for this by comparing each operand with itself. * We must perform both comparisons to correctly check for * signalling NaNs. */ return 1 ^ (float32_eq(a, a) & float32_eq(b, b)); }
flag __eqsf2(float32 a, float32 b) { /* libgcc1.c says !(a == b) */ return !float32_eq(a, b); }
flag __nesf2(float32 a, float32 b) { /* libgcc1.c says a != b */ return !float32_eq(a, b); }
uint32_t helper_fcmp_ne(uint32_t a, uint32_t b) { CPU_FloatU fa, fb; int flags, r; fa.l = a; fb.l = b; set_float_exception_flags(0, &env->fp_status); r = !float32_eq(fa.f, fb.f, &env->fp_status); flags = get_float_exception_flags(&env->fp_status); update_fpu_flags(flags & float_flag_invalid); return r; }
int __aeabi_fcmpge(float32 a, float32 b) { return !float32_lt(a, b) && float32_eq(a, a) && float32_eq(b, b); }
int __nesf2(float32 A, float32 B) { return !float32_eq(A, B); }
int __aeabi_fcmpeq(float32 a, float32 b) { return float32_eq(a, b); }