From: Rich Felker Date: Mon, 19 Mar 2012 13:42:51 +0000 (-0400) Subject: asm for remquo X-Git-Tag: v0.8.8~92 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=27deb538896b5c3b8ceca206ec505ff834c97300;p=oweals%2Fmusl.git asm for remquo this could perhaps use some additional testing for corner cases, but it seems to be correct. --- diff --git a/src/math/i386/remquo.s b/src/math/i386/remquo.s new file mode 100644 index 00000000..86ae2dc3 --- /dev/null +++ b/src/math/i386/remquo.s @@ -0,0 +1,41 @@ +.global remquof +.type remquof,@function +remquof: + mov 12(%esp),%ecx + fldl 4(%esp) + fldl 8(%esp) + jmp 1f + +.global remquol +.type remquol,@function +remquol: + mov 28(%esp),%ecx + fldl 4(%esp) + fldl 16(%esp) + jmp 1f + +.global remquo +.type remquo,@function +remquo: + mov 20(%esp),%ecx + fldl 4(%esp) + fldl 12(%esp) +1: fld %st(1) +1: fprem1 + fnstsw %ax + sahf + jp 1b + fsubr %st(0),%st(2) + fxch %st(2) + fdivp + mov $0x4f000000,%eax + mov %eax,4(%esp) + flds 4(%esp) + fxch %st(1) +1: fprem + fnstsw %ax + sahf + jp 1b + fistpl (%ecx) + fstp %st(0) + ret diff --git a/src/math/i386/remquof.s b/src/math/i386/remquof.s new file mode 100644 index 00000000..511a6bc7 --- /dev/null +++ b/src/math/i386/remquof.s @@ -0,0 +1 @@ +# see remquo.s diff --git a/src/math/i386/remquol.s b/src/math/i386/remquol.s new file mode 100644 index 00000000..511a6bc7 --- /dev/null +++ b/src/math/i386/remquol.s @@ -0,0 +1 @@ +# see remquo.s