@@ -1368,23 +1368,15 @@ void HELPER(ln_FP0)(CPUState *env)
void HELPER(log10_FP0)(CPUState *env)
{
- float64 f, log2, log210;
- floatx80 res;
-
- /* log10(x) = log2(x) / log2(10) */
-
- DBG_FPUH("log10_FP0 %Lg", floatx80_to_ldouble(FP0_to_floatx80(env)));
- f = floatx80_to_float64(FP0_to_floatx80(env), &env->fp_status);
+ floatx80 val;
+ long double res;
- log2 = float64_log2(f, &env->fp_status);
- log210 = float64_log2(floatx80_to_float64(floatx80_10, &env->fp_status),
- &env->fp_status);
- res = floatx80_div(float64_to_floatx80(log2, &env->fp_status),
- float64_to_floatx80(log210, &env->fp_status),
- &env->fp_status);
- DBG_FPU(" = %Lg\n", floatx80_to_ldouble(res));
+ val = FP0_to_floatx80(env);
+ DBG_FPUH("log10_FP0 %Lg", floatx80_to_ldouble(val));
+ res = log10l(floatx80_to_ldouble(val));
+ DBG_FPU(" = %Lg\n", res);
- floatx80_to_FP0(env, res);
+ floatx80_to_FP0(env, ldouble_to_floatx80(res));
}
void HELPER(atan_FP0)(CPUState *env)