LibM: Implement sqrt()

Use the x87 fsqrt instruction for that.

We cannot use __builtin_sqrt(), since GCC expands it into
a sqrt() call, so we just loop endlessly.
This commit is contained in:
Sergey Bugaev 2019-08-09 23:23:01 +03:00 committed by Andreas Kling
parent 0a061d4314
commit cfe8fdd5aa
Notes: sideshowbarker 2024-07-19 12:47:28 +09:00

View file

@ -58,9 +58,11 @@ double tan(double angle)
return ampsin(angle) / ampsin(M_PI_2 + angle);
}
double sqrt(double)
double sqrt(double x)
{
ASSERT_NOT_REACHED();
double res;
__asm__("fsqrt" : "=t"(res) : "0"(x));
return res;
}
double sinh(double)