diff options
Diffstat (limited to 'sysdeps/libm-i387/s_ceilf.S')
-rw-r--r-- | sysdeps/libm-i387/s_ceilf.S | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/sysdeps/libm-i387/s_ceilf.S b/sysdeps/libm-i387/s_ceilf.S index 768d117021..352d40d7ce 100644 --- a/sysdeps/libm-i387/s_ceilf.S +++ b/sysdeps/libm-i387/s_ceilf.S @@ -8,27 +8,25 @@ RCSID("$NetBSD: s_ceilf.S,v 1.3 1995/05/08 23:52:44 jtc Exp $") ENTRY(__ceilf) - pushl %ebp - movl %esp,%ebp + flds 4(%esp) subl $8,%esp - fstcw -4(%ebp) /* store fpu control word */ + fstcw 4(%esp) /* store fpu control word */ /* We use here %edx although only the low 1 bits are defined. But none of the operations should care and they are faster than the 16 bit operations. */ - movl -4(%ebp),%edx - orl $0x0800,%edx /* round towards +oo */ + movl $0x0800,%edx /* round towards +oo */ + orl 4(%esp),%edx andl $0xfbff,%edx - movl %edx,-8(%ebp) - fldcw -8(%ebp) /* load modified control word */ + movl %edx,(%esp) + fldcw (%esp) /* load modified control word */ - flds 8(%ebp); /* round */ - frndint + frndint /* round */ - fldcw -4(%ebp) /* restore original control word */ + fldcw 4(%esp) /* restore original control word */ - leave + addl $8,%esp ret END (__ceilf) weak_alias (__ceilf, ceilf) |