revert between 56095 -> 55830 in arch
[AROS.git] / arch / m68k-all / mathieeedoubbas / fpu.S
blob281a991b1b106462e4d6635db34022402e6b5208
2         #include "aros/m68k/asm.h"
4         .chip 68040
5         .text
6         .balign 4
7         .globl  AROS_SLIB_ENTRY(Mul_6888x,MathIeeeDoubBas, 13)
8         .type   AROS_SLIB_ENTRY(Mul_6888x,MathIeeeDoubBas, 13),@function
9 AROS_SLIB_ENTRY(Mul_6888x,MathIeeeDoubBas, 13):
10         movem.l %d0-%d3,%sp@-
11         fmove.d %sp@+,%fp0
12         fmul.d %sp@+,%fp0
13         fmove.d %fp0,%sp@-
14         movem.l %sp@+,%d0-%d1
15         rts
17         .balign 4
18         .globl  AROS_SLIB_ENTRY(Div_6888x,MathIeeeDoubBas, 14)
19         .type   AROS_SLIB_ENTRY(Div_6888x,MathIeeeDoubBas, 14),@function
20 AROS_SLIB_ENTRY(Div_6888x,MathIeeeDoubBas, 14):
21         movem.l %d0-%d3,%sp@-
22         fmove.d %sp@+,%fp0
23         fdiv.d %sp@+,%fp0
24         fmove.d %fp0,%sp@-
25         movem.l %sp@+,%d0-%d1
26         rts
28         .balign 4
29         .globl  AROS_SLIB_ENTRY(Add_6888x,MathIeeeDoubBas, 11)
30         .type   AROS_SLIB_ENTRY(Add_6888x,MathIeeeDoubBas, 11),@function
31 AROS_SLIB_ENTRY(Add_6888x,MathIeeeDoubBas, 11):
32         movem.l %d0-%d3,%sp@-
33         fmove.d %sp@+,%fp0
34         fadd.d %sp@+,%fp0
35         fmove.d %fp0,%sp@-
36         movem.l %sp@+,%d0-%d1
37         rts
39         .balign 4
40         .globl  AROS_SLIB_ENTRY(Sub_6888x,MathIeeeDoubBas, 12)
41         .type   AROS_SLIB_ENTRY(Sub_6888x,MathIeeeDoubBas, 12),@function
42 AROS_SLIB_ENTRY(Sub_6888x,MathIeeeDoubBas, 12):
43         movem.l %d0-%d3,%sp@-
44         fmove.d %sp@+,%fp0
45         fsub.d %sp@+,%fp0
46         fmove.d %fp0,%sp@-
47         movem.l %sp@+,%d0-%d1
48         rts
50         .balign 4
51         .globl  AROS_SLIB_ENTRY(Neg_6888x,MathIeeeDoubBas, 10)
52         .type   AROS_SLIB_ENTRY(Neg_6888x,MathIeeeDoubBas, 10),@function
53 AROS_SLIB_ENTRY(Neg_6888x,MathIeeeDoubBas, 10):
54         movem.l %d0-%d1,%sp@-
55         fneg.d %sp@+,%fp0
56         fmove.d %fp0,%sp@-
57         movem.l %sp@+,%d0-%d1
58         rts
60         .balign 4
61         .globl  AROS_SLIB_ENTRY(Abs_6888x,MathIeeeDoubBas, 9)
62         .type   AROS_SLIB_ENTRY(Abs_6888x,MathIeeeDoubBas, 9),@function
63 AROS_SLIB_ENTRY(Abs_6888x,MathIeeeDoubBas, 9):
64         movem.l %d0-%d1,%sp@-
65         fabs.d %sp@+,%fp0
66         fmove.d %fp0,%sp@-
67         movem.l %sp@+,%d0-%d1
68         rts
70         .balign 4
71         .globl  AROS_SLIB_ENTRY(Fix_6888x,MathIeeeDoubBas, 5)
72         .type   AROS_SLIB_ENTRY(Fix_6888x,MathIeeeDoubBas, 5),@function
73 AROS_SLIB_ENTRY(Fix_6888x,MathIeeeDoubBas, 5):
74         movem.l %d0-%d1,%sp@-
75         fmove.d %sp@+,%fp0
76         fmove.l %fp0,%d0
77         rts
79         .balign 4
80         .globl  AROS_SLIB_ENTRY(Flt_6888x,MathIeeeDoubBas, 6)
81         .type   AROS_SLIB_ENTRY(Flt_6888x,MathIeeeDoubBas, 6),@function
82 AROS_SLIB_ENTRY(Flt_6888x,MathIeeeDoubBas, 6):
83         fmove.l %d0,%fp0
84         fmove.d %fp0,%sp@-
85         movem.l %sp@+,%d0-%d1
86         rts
88         .globl init_6888x_double
89 init_6888x_double:
90         /* Round to zero, double precision */
91         moveq #0,%d0
92         move.w #0x10+0x80,%d0
93         fmove.l %d0,%fpcr
94         rts