From 37eb14dd2b92c51404fa54f56b6dfcd487ab5cbb Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sun, 18 Mar 2012 22:05:20 -0400 Subject: asm for lrint family on i386 --- src/math/i386/llrint.s | 8 ++++++++ src/math/i386/llrintf.s | 9 +++++++++ src/math/i386/llrintl.s | 8 ++++++++ src/math/i386/lrint.s | 7 +++++++ src/math/i386/lrintf.s | 7 +++++++ src/math/i386/lrintl.s | 7 +++++++ 6 files changed, 46 insertions(+) create mode 100644 src/math/i386/llrint.s create mode 100644 src/math/i386/llrintf.s create mode 100644 src/math/i386/llrintl.s create mode 100644 src/math/i386/lrint.s create mode 100644 src/math/i386/lrintf.s create mode 100644 src/math/i386/lrintl.s (limited to 'src/math') diff --git a/src/math/i386/llrint.s b/src/math/i386/llrint.s new file mode 100644 index 00000000..e961b35d --- /dev/null +++ b/src/math/i386/llrint.s @@ -0,0 +1,8 @@ +.global llrint +.type llrint,@function +llrint: + fldl 4(%esp) + fistpl 4(%esp) + mov 4(%esp),%eax + mov 8(%esp),%edx + ret diff --git a/src/math/i386/llrintf.s b/src/math/i386/llrintf.s new file mode 100644 index 00000000..1905cdcd --- /dev/null +++ b/src/math/i386/llrintf.s @@ -0,0 +1,9 @@ +.global llrintf +.type llrintf,@function +llrintf: + sub $8,%esp + flds 12(%esp) + fistpq (%esp) + pop %eax + pop %edx + ret diff --git a/src/math/i386/llrintl.s b/src/math/i386/llrintl.s new file mode 100644 index 00000000..84e63867 --- /dev/null +++ b/src/math/i386/llrintl.s @@ -0,0 +1,8 @@ +.global llrintl +.type llrintl,@function +llrintl: + fldt 4(%esp) + fistpl 4(%esp) + mov 4(%esp),%eax + mov 8(%esp),%edx + ret diff --git a/src/math/i386/lrint.s b/src/math/i386/lrint.s new file mode 100644 index 00000000..02b83d9f --- /dev/null +++ b/src/math/i386/lrint.s @@ -0,0 +1,7 @@ +.global lrint +.type lrint,@function +lrint: + fldl 4(%esp) + fistpl 4(%esp) + mov 4(%esp),%eax + ret diff --git a/src/math/i386/lrintf.s b/src/math/i386/lrintf.s new file mode 100644 index 00000000..907aac29 --- /dev/null +++ b/src/math/i386/lrintf.s @@ -0,0 +1,7 @@ +.global lrintf +.type lrintf,@function +lrintf: + flds 4(%esp) + fistpl 4(%esp) + mov 4(%esp),%eax + ret diff --git a/src/math/i386/lrintl.s b/src/math/i386/lrintl.s new file mode 100644 index 00000000..3ae05aac --- /dev/null +++ b/src/math/i386/lrintl.s @@ -0,0 +1,7 @@ +.global lrintl +.type lrintl,@function +lrintl: + fldt 4(%esp) + fistpl 4(%esp) + mov 4(%esp),%eax + ret -- cgit v1.2.1