2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
6 #include <_mingw_mac.h>
15 .globl __MINGW_USYMBOL(floorl)
16 .def __MINGW_USYMBOL(floorl); .scl 2; .type 32; .endef
17 __MINGW_USYMBOL(floorl):
18 #if defined(_AMD64_) || defined(__x86_64__)
22 fstcw 8(%rsp) /* store fpu control word */
24 /* We use here %edx although only the low 1 bits are defined.
25 But none of the operations should care and they are faster
26 than the 16 bit operations. */
27 movl $0x400,%edx /* round towards -oo */
31 fldcw (%rsp) /* load modified control word */
35 fldcw 8(%rsp) /* restore original control word */
42 #elif defined(_ARM_) || defined(__arm__)
44 bic r0, r1, #0x00c00000
45 orr r0, r0, #0x00800000 /* Round towards Minus Infinity */
51 #elif defined(_X86_) || defined(__i386__)
55 fstcw 4(%esp) /* store fpu control word */
57 /* We use here %edx although only the low 1 bits are defined.
58 But none of the operations should care and they are faster
59 than the 16 bit operations. */
60 movl $0x400,%edx /* round towards -oo */
64 fldcw (%esp) /* load modified control word */
68 fldcw 4(%esp) /* restore original control word */