OpenLIBM: local modification - elf notes on assembly
[dragonfly.git] / contrib / openbsd_libm / arch / amd64 / s_floorf.S
1 /*      $OpenBSD: s_floorf.S,v 1.4 2009/04/08 22:30:41 martynas Exp $ */
2 /*
3  * Written by J.T. Conklin <jtc@NetBSD.org>.
4  * Public domain.
5  */
6
7 #include <machine/asm.h>
8
9 ENTRY(floorf)
10         movss   %xmm0, -4(%rsp)
11         fstcw   -8(%rsp)
12         movw    -8(%rsp),%dx
13         orw     $0x0400,%dx
14         andw    $0xf7ff,%dx  
15         movw    %dx,-12(%rsp)
16         fldcw   -12(%rsp)
17         flds    -4(%rsp)
18         frndint
19         fldcw   -8(%rsp)
20         fstps   -4(%rsp)
21         movss   -4(%rsp),%xmm0
22         ret
23 END(floorf)
24
25         .section .note.GNU-stack,"",%progbits