1/** 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. 5 */ 6#include <_mingw_mac.h> 7 8 .file "remquol.S" 9 .text 10#ifdef __x86_64__ 11 .align 8 12#else 13 .align 4 14#endif 15.globl __MINGW_USYMBOL(remquol) 16__MINGW_USYMBOL(remquol): 17#ifdef __x86_64__ 18 pushq %rcx 19 fldt (%r8) 20 fldt (%rdx) 211: fprem1 22 fstsw %ax 23 sahf 24 jp 1b 25 fstp %st(1) 26 movl %eax, %ecx 27 shrl $8, %eax 28 shrl $12, %ecx 29 andl $4, %ecx 30 andl $3, %eax 31 orl %eax, %ecx 32 movl $0xef2a60, %eax 33 leal (%ecx,%ecx,2),%ecx 34 shrl %cl, %eax 35 andl $7, %eax 36 movl 8(%rdx), %edx 37 xorl 8(%r8), %edx 38 testl $0x8000, %edx 39 jz 1f 40 negl %eax 411: movl %eax, (%r9) 42 43 popq %rcx 44 movq %rcx,%rax 45 movq $0,8(%rcx) 46 fstpt (%rcx) 47 ret 48#else 49 fldt 4 +12(%esp) 50 fldt 4(%esp) 511: fprem1 52 fstsw %ax 53 sahf 54 jp 1b 55 fstp %st(1) 56 movl %eax, %ecx 57 shrl $8, %eax 58 shrl $12, %ecx 59 andl $4, %ecx 60 andl $3, %eax 61 orl %eax, %ecx 62 movl $0xef2a60, %eax 63 leal (%ecx,%ecx,2),%ecx 64 shrl %cl, %eax 65 andl $7, %eax 66 movl 4 +12 +12(%esp), %ecx 67 movl 4 +8(%esp), %edx 68 xorl 4 +12 +8(%esp), %edx 69 testl $0x8000, %edx 70 jz 1f 71 negl %eax 721: movl %eax, (%ecx) 73 74 ret 75#endif 76