security/nss/lib/freebl/mpi/montmulf.il

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:a11630691dc9
1 !
2 ! This Source Code Form is subject to the terms of the Mozilla Public
3 ! License, v. 2.0. If a copy of the MPL was not distributed with this
4 ! file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
6 !
7 ! double upper32(double /*frs1*/);
8 !
9 .inline upper32,8
10 std %o0,[%sp+0x48]
11 ldd [%sp+0x48],%f10
12
13 fdtox %f10,%f10
14 fitod %f10,%f0
15 .end
16
17 !
18 ! double lower32(double /*frs1*/, double /* Zero */);
19 !
20 .inline lower32,8
21 std %o0,[%sp+0x48]
22 ldd [%sp+0x48],%f10
23 std %o2,[%sp+0x48]
24 ldd [%sp+0x48],%f12
25
26 fdtox %f10,%f10
27 fmovs %f12,%f10
28 fxtod %f10,%f0
29 .end
30
31 !
32 ! double mod(double /*x*/, double /*1/m*/, double /*m*/);
33 !
34 .inline mod,12
35 std %o0,[%sp+0x48]
36 ldd [%sp+0x48],%f2
37 std %o2,[%sp+0x48]
38 ldd [%sp+0x48],%f4
39 std %o4,[%sp+0x48]
40 ldd [%sp+0x48],%f6
41
42 fmuld %f2,%f4,%f4
43 fdtox %f4,%f4
44 fxtod %f4,%f4
45 fmuld %f4,%f6,%f4
46 fsubd %f2,%f4,%f0
47 .end
48
49
50 !
51 ! void i16_to_d16_and_d32x4(double * /*1/(2^16)*/, double * /* 2^16*/,
52 ! double * /* 0 */,
53 ! double * /*result16*/, double * /* result32 */
54 ! float * /*source - should be unsigned int*
55 ! converted to float* */);
56 !
57 .inline i16_to_d16_and_d32x4,24
58 ldd [%o0],%f2 ! 1/(2^16)
59 ldd [%o1],%f4 ! 2^16
60 ldd [%o2],%f22
61
62 fmovd %f22,%f6
63 ld [%o5],%f7
64 fmovd %f22,%f10
65 ld [%o5+4],%f11
66 fmovd %f22,%f14
67 ld [%o5+8],%f15
68 fmovd %f22,%f18
69 ld [%o5+12],%f19
70 fxtod %f6,%f6
71 std %f6,[%o4]
72 fxtod %f10,%f10
73 std %f10,[%o4+8]
74 fxtod %f14,%f14
75 std %f14,[%o4+16]
76 fxtod %f18,%f18
77 std %f18,[%o4+24]
78 fmuld %f2,%f6,%f8
79 fmuld %f2,%f10,%f12
80 fmuld %f2,%f14,%f16
81 fmuld %f2,%f18,%f20
82 fdtox %f8,%f8
83 fdtox %f12,%f12
84 fdtox %f16,%f16
85 fdtox %f20,%f20
86 fxtod %f8,%f8
87 std %f8,[%o3+8]
88 fxtod %f12,%f12
89 std %f12,[%o3+24]
90 fxtod %f16,%f16
91 std %f16,[%o3+40]
92 fxtod %f20,%f20
93 std %f20,[%o3+56]
94 fmuld %f8,%f4,%f8
95 fmuld %f12,%f4,%f12
96 fmuld %f16,%f4,%f16
97 fmuld %f20,%f4,%f20
98 fsubd %f6,%f8,%f8
99 std %f8,[%o3]
100 fsubd %f10,%f12,%f12
101 std %f12,[%o3+16]
102 fsubd %f14,%f16,%f16
103 std %f16,[%o3+32]
104 fsubd %f18,%f20,%f20
105 std %f20,[%o3+48]
106 .end
107
108

mercurial