[BACK]Return to s_ceil.S CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libm / arch / i387

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>