diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libm/arch/i387/Makefile | 5 | ||||
| -rw-r--r-- | lib/libm/arch/i387/lrint.S | 18 |
2 files changed, 21 insertions, 2 deletions
diff --git a/lib/libm/arch/i387/Makefile b/lib/libm/arch/i387/Makefile index 9068bcd197b..93aaebad906 100644 --- a/lib/libm/arch/i387/Makefile +++ b/lib/libm/arch/i387/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.4 2002/08/19 14:55:16 lukem Exp $ +# $NetBSD: Makefile,v 1.5 2004/07/01 17:30:48 drochner Exp $ # NOLINT= # defined @@ -13,6 +13,7 @@ SRCS=e_acos.S e_asin.S e_atan2.S e_exp.S e_expf.S e_fmod.S e_log.S \ s_finite.S s_finitef.S s_floor.S s_floorf.S s_ilogb.S s_ilogbf.S \ s_log1p.S s_log1pf.S s_logb.S s_logbf.S s_rint.S s_rintf.S \ s_scalbn.S s_scalbnf.S s_significand.S s_significandf.S s_sin.S \ - s_sinf.S s_tan.S s_tanf.S + s_sinf.S s_tan.S s_tanf.S \ + lrint.S .include <bsd.lib.mk> diff --git a/lib/libm/arch/i387/lrint.S b/lib/libm/arch/i387/lrint.S new file mode 100644 index 00000000000..9f3ba1d50fa --- /dev/null +++ b/lib/libm/arch/i387/lrint.S @@ -0,0 +1,18 @@ +/* $NetBSD: lrint.S,v 1.1 2004/07/01 17:30:48 drochner Exp $ */ + +#include <machine/asm.h> + +ENTRY(lrint) +#ifdef __i386__ + pushl %ebp + movl %esp,%ebp + subl $4,%esp + fldl 8(%ebp) + fistpl (%esp) + movl (%esp),%eax + leave + ret +#else + cvtsd2siq %xmm0,%rax + ret +#endif |
