Replace the files with the NetBSD ones, which are the rewritten ones by
[dragonfly.git] / lib / msun / i387 / s_floor.S
1 /*
2  * Written by J.T. Conklin <jtc@NetBSD.org>.
3  * Public domain.
4  */
5
6 #include <machine/asm.h>
7
8 #if 0
9 RCSID("$NetBSD: s_floor.S,v 1.7 2002/03/26 15:17:37 fvdl Exp $")
10 #endif
11 RCSID("$DragonFly: src/lib/msun/i387/Attic/s_floor.S,v 1.3 2004/12/29 11:40:18 asmodai Exp $")
12
13 ENTRY(floor)
14 #ifdef __i386__
15         pushl   %ebp
16         movl    %esp,%ebp
17         subl    $8,%esp
18
19         fstcw   -4(%ebp)                /* store fpu control word */
20         movw    -4(%ebp),%dx
21         orw     $0x0400,%dx             /* round towards -oo */
22         andw    $0xf7ff,%dx
23         movw    %dx,-8(%ebp)
24         fldcw   -8(%ebp)                /* load modfied control word */
25
26         fldl    8(%ebp);                /* round */
27         frndint
28
29         fldcw   -4(%ebp)                /* restore original control word */
30
31         leave
32 #else
33         movsd   %xmm0, -8(%rsp)
34         fstcw   -12(%rsp)
35         movw    -12(%rsp),%dx
36         orw     $0x0400,%dx
37         andw    $0xf7ff,%dx
38         movw    %dx,-16(%rsp)
39         fldcw   -16(%rsp)
40         fldl    -8(%rsp)
41         frndint
42         fldcw   -12(%rsp)
43         fstpl   -8(%rsp)
44         movsd   -8(%rsp),%xmm0
45 #endif
46         ret