[ASM]
[reactos.git] / reactos / lib / sdk / crt / math / i386 / floorf.S
index eec073b..99ef552 100644 (file)
@@ -7,57 +7,34 @@
  * Removed header file dependency for use in libmingwex.a by
  *   Danny Smith <dannysmith@users.sourceforge.net>
  */
-#include <_mingw_mac.h>
-
-       .file   "floorf.S"
-       .text
-#ifdef _WIN64
-       .align 8
-#else
-       .align 4
-#endif
-.globl __MINGW_USYMBOL(floorf)
-       .def    __MINGW_USYMBOL(floorf);        .scl    2;      .type   32;     .endef
-__MINGW_USYMBOL(floorf):
-#ifdef _WIN64
-       subq    $24,%rsp
-       movss   %xmm0,8(%rsp)
-       flds    8(%rsp)
-
-       fstcw   4(%rsp)                 /* store fpu control word */
-       movl    $0x400,%edx             /* round towards -oo */
-       orl     4(%rsp),%edx
-       andl    $0xf7ff,%edx
-       movl    %edx,(%rsp)
-       fldcw   (%rsp)                  /* load modified control word */
 
-       frndint                         /* round */
+#include <asm.inc>
 
-       fldcw   4(%rsp)                 /* restore original control word */
+.code
+.align 4
 
-       fstps   8(%rsp)
-       movss   8(%rsp),%xmm0
-       addq    $24,%rsp
-       ret
-#else
-       flds    4(%esp)
-       subl    $8,%esp
+PUBLIC _floorf
+_floorf:
 
-       fstcw   4(%esp)                 /* store fpu control word */
+       fld dword ptr [esp + 4]
+       sub esp, 8
+
+       fstcw [esp + 4]         /* 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    $0x400,%edx             /* round towards -oo */
-       orl     4(%esp),%edx
-       andl    $0xf7ff,%edx
-       movl    %edx,(%esp)
-       fldcw   (%esp)                  /* load modified control word */
+       mov edx, [esp + 4]
+       or edx, HEX(0400)               /* round towards -oo */
+       and edx, HEX(0f7ff)
+       mov [esp], edx
+       fldcw [esp]                     /* load modified control word */
 
        frndint                         /* round */
 
-       fldcw   4(%esp)                 /* restore original control word */
+       fldcw [esp + 4]                 /* restore original control word */
 
-       addl    $8,%esp
+       add esp, 8
        ret
-#endif
+
+END