Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static float full_pow2f(float p)
- {
- float result;
- asm(
- "fld %1;"
- "fld1;"
- "fscale;"
- "fstp %0;"
- : "=m" (result)
- : "m" (p)
- : "%st(1)");
- return result;
- }
- static float frac_pow2f(float p)
- {
- float result;
- asm(
- "fld1;"
- "fld %1;"
- "fprem;"
- "f2xm1;"
- "faddp %%st(0), %%st(1);"
- "fstp %0;"
- : "=m" (result)
- : "m" (p)
- : "%st(1)"
- );
- return result;
- }
- static float pow2f(float p)
- {
- return full_pow2f(p) * frac_pow2f(p);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement