Skip to content

Commit 81d5e16

Browse files
authored
1 parent 465ca0a commit 81d5e16

File tree

4 files changed

+121
-1
lines changed

4 files changed

+121
-1
lines changed

amd64/Make.files

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ $(CUR_SRCS) = fenv.c e_remainder.S e_remainderf.S e_remainderl.S \
33
s_llrint.S s_llrintf.S s_llrintl.S \
44
s_logbl.S s_lrint.S s_lrintf.S s_lrintl.S \
55
s_remquo.S s_remquof.S s_remquol.S \
6-
s_rintl.S s_scalbn.S s_scalbnf.S s_scalbnl.S
6+
s_rintl.S s_scalbn.S s_scalbnf.S s_scalbnl.S \
7+
e_fmod.S e_fmodf.S e_fmodl.S

amd64/e_fmod.S

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*
2+
* Copyright (c) 1993,94 Winning Strategies, Inc.
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions
7+
* are met:
8+
* 1. Redistributions of source code must retain the above copyright
9+
* notice, this list of conditions and the following disclaimer.
10+
* 2. Redistributions in binary form must reproduce the above copyright
11+
* notice, this list of conditions and the following disclaimer in the
12+
* documentation and/or other materials provided with the distribution.
13+
* 3. All advertising materials mentioning features or use of this software
14+
* must display the following acknowledgement:
15+
* This product includes software developed by Winning Strategies, Inc.
16+
* 4. The name of the author may not be used to endorse or promote products
17+
* derived from this software without specific prior written permission.
18+
*
19+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20+
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21+
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28+
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
31+
/*
32+
* Based on the i387 version written by:
33+
* J.T. Conklin ([email protected]), Winning Strategies, Inc.
34+
*/
35+
36+
#include <amd64/bsd_asm.h>
37+
38+
ENTRY(fmod)
39+
movsd %xmm0,-8(%rsp)
40+
movsd %xmm1,-16(%rsp)
41+
fldl -16(%rsp)
42+
fldl -8(%rsp)
43+
1: fprem
44+
fstsw %ax
45+
testw $0x400,%ax
46+
jne 1b
47+
fstpl -8(%rsp)
48+
movsd -8(%rsp),%xmm0
49+
fstp %st
50+
ret
51+
END(fmod)

amd64/e_fmodf.S

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/*
2+
* Based on the i387 version written by J.T. Conklin <[email protected]>.
3+
* Public domain.
4+
*/
5+
6+
#include <amd64/bsd_asm.h>
7+
8+
ENTRY(fmodf)
9+
movss %xmm0,-4(%rsp)
10+
movss %xmm1,-8(%rsp)
11+
flds -8(%rsp)
12+
flds -4(%rsp)
13+
1: fprem
14+
fstsw %ax
15+
testw $0x400,%ax
16+
jne 1b
17+
fstps -4(%rsp)
18+
movss -4(%rsp),%xmm0
19+
fstp %st
20+
ret
21+
END(fmodf)

amd64/e_fmodl.S

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* Copyright (c) 1993,94 Winning Strategies, Inc.
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions
7+
* are met:
8+
* 1. Redistributions of source code must retain the above copyright
9+
* notice, this list of conditions and the following disclaimer.
10+
* 2. Redistributions in binary form must reproduce the above copyright
11+
* notice, this list of conditions and the following disclaimer in the
12+
* documentation and/or other materials provided with the distribution.
13+
* 3. All advertising materials mentioning features or use of this software
14+
* must display the following acknowledgement:
15+
* This product includes software developed by Winning Strategies, Inc.
16+
* 4. The name of the author may not be used to endorse or promote products
17+
* derived from this software without specific prior written permission.
18+
*
19+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20+
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21+
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28+
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
31+
/*
32+
* Based on the i387 version written by:
33+
* J.T. Conklin ([email protected]), Winning Strategies, Inc.
34+
*/
35+
36+
#include <amd64/bsd_asm.h>
37+
38+
ENTRY(fmodl)
39+
fldt 24(%rsp)
40+
fldt 8(%rsp)
41+
1: fprem
42+
fstsw %ax
43+
testw $0x400,%ax
44+
jne 1b
45+
fstp %st(1)
46+
ret
47+
END(fmodl)

0 commit comments

Comments
 (0)