master
 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