Annotation of src/lib/libm/arch/i387/s_ceil.S, Revision 1.7
1.1 jtc 1: /*
1.7 ! salo 2: * Written by J.T. Conklin <jtc@NetBSD.org>.
1.3 jtc 3: * Public domain.
1.1 jtc 4: */
5:
6: #include <machine/asm.h>
7:
1.5 fvdl 8: #include "abi.h"
9:
1.7 ! salo 10: RCSID("$NetBSD: s_ceil.S,v 1.6 2002/03/26 15:17:37 fvdl Exp $")
1.2 jtc 11:
1.1 jtc 12: ENTRY(ceil)
1.5 fvdl 13: #ifdef __i386__
1.1 jtc 14: pushl %ebp
15: movl %esp,%ebp
16: subl $8,%esp
17:
1.6 fvdl 18: fstcw -4(%ebp) /* store fpu control word */
19: movw -4(%ebp),%dx
1.1 jtc 20: orw $0x0800,%dx /* round towards +oo */
21: andw $0xfbff,%dx
1.6 fvdl 22: movw %dx,-8(%ebp)
23: fldcw -8(%ebp) /* load modfied control word */
1.1 jtc 24:
25: fldl 8(%ebp); /* round */
26: frndint
27:
1.6 fvdl 28: fldcw -4(%ebp) /* restore original control word */
1.1 jtc 29:
30: leave
1.5 fvdl 31: #else
32: fstcw -12(%rsp)
33: movw -12(%rsp),%dx
34: orw $0x0800,%dx
35: andw $0xfbff,%dx
36: movw %dx,-16(%rsp)
37: fldcw -16(%rsp)
38: movsd %xmm0,-8(%rsp)
39: fldl -8(%rsp)
40: frndint
41: fldcw -12(%rsp)
42: fstpl -8(%rsp)
43: movsd -8(%rsp),%xmm0
44: #endif
1.1 jtc 45: ret
CVSweb <webmaster@jp.NetBSD.org>