From 58ff9e8eaf99f2294232be860daa2ca6f3674faf Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Mon, 19 Mar 2012 05:15:30 -0400 Subject: asm for scalbn family unlike some implementations, these functions perform the equivalent of gcc's -ffloat-store on the result before returning. this is necessary to raise underflow/overflow/inexact exceptions, perform the correct rounding with denormals, etc. --- src/math/i386/scalbn.s | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/math/i386/scalbn.s (limited to 'src/math/i386/scalbn.s') diff --git a/src/math/i386/scalbn.s b/src/math/i386/scalbn.s new file mode 100644 index 00000000..e275d14f --- /dev/null +++ b/src/math/i386/scalbn.s @@ -0,0 +1,20 @@ +.global ldexp +.type ldexp,@function +ldexp: + nop + +.global scalbln +.type scalbln,@function +scalbln: + nop + +.global scalbn +.type scalbn,@function +scalbn: + fildl 12(%esp) + fldl 4(%esp) + fscale + fstp %st(1) + fstpl 4(%esp) + fldl 4(%esp) + ret -- cgit v1.2.1