1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/security/nss/lib/freebl/mpi/montmulf.il Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,108 @@ 1.4 +! 1.5 +! This Source Code Form is subject to the terms of the Mozilla Public 1.6 +! License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 +! file, You can obtain one at http://mozilla.org/MPL/2.0/. 1.8 + 1.9 +! 1.10 +! double upper32(double /*frs1*/); 1.11 +! 1.12 + .inline upper32,8 1.13 + std %o0,[%sp+0x48] 1.14 + ldd [%sp+0x48],%f10 1.15 + 1.16 + fdtox %f10,%f10 1.17 + fitod %f10,%f0 1.18 + .end 1.19 + 1.20 +! 1.21 +! double lower32(double /*frs1*/, double /* Zero */); 1.22 +! 1.23 + .inline lower32,8 1.24 + std %o0,[%sp+0x48] 1.25 + ldd [%sp+0x48],%f10 1.26 + std %o2,[%sp+0x48] 1.27 + ldd [%sp+0x48],%f12 1.28 + 1.29 + fdtox %f10,%f10 1.30 + fmovs %f12,%f10 1.31 + fxtod %f10,%f0 1.32 + .end 1.33 + 1.34 +! 1.35 +! double mod(double /*x*/, double /*1/m*/, double /*m*/); 1.36 +! 1.37 + .inline mod,12 1.38 + std %o0,[%sp+0x48] 1.39 + ldd [%sp+0x48],%f2 1.40 + std %o2,[%sp+0x48] 1.41 + ldd [%sp+0x48],%f4 1.42 + std %o4,[%sp+0x48] 1.43 + ldd [%sp+0x48],%f6 1.44 + 1.45 + fmuld %f2,%f4,%f4 1.46 + fdtox %f4,%f4 1.47 + fxtod %f4,%f4 1.48 + fmuld %f4,%f6,%f4 1.49 + fsubd %f2,%f4,%f0 1.50 + .end 1.51 + 1.52 + 1.53 +! 1.54 +! void i16_to_d16_and_d32x4(double * /*1/(2^16)*/, double * /* 2^16*/, 1.55 +! double * /* 0 */, 1.56 +! double * /*result16*/, double * /* result32 */ 1.57 +! float * /*source - should be unsigned int* 1.58 +! converted to float* */); 1.59 +! 1.60 + .inline i16_to_d16_and_d32x4,24 1.61 + ldd [%o0],%f2 ! 1/(2^16) 1.62 + ldd [%o1],%f4 ! 2^16 1.63 + ldd [%o2],%f22 1.64 + 1.65 + fmovd %f22,%f6 1.66 + ld [%o5],%f7 1.67 + fmovd %f22,%f10 1.68 + ld [%o5+4],%f11 1.69 + fmovd %f22,%f14 1.70 + ld [%o5+8],%f15 1.71 + fmovd %f22,%f18 1.72 + ld [%o5+12],%f19 1.73 + fxtod %f6,%f6 1.74 + std %f6,[%o4] 1.75 + fxtod %f10,%f10 1.76 + std %f10,[%o4+8] 1.77 + fxtod %f14,%f14 1.78 + std %f14,[%o4+16] 1.79 + fxtod %f18,%f18 1.80 + std %f18,[%o4+24] 1.81 + fmuld %f2,%f6,%f8 1.82 + fmuld %f2,%f10,%f12 1.83 + fmuld %f2,%f14,%f16 1.84 + fmuld %f2,%f18,%f20 1.85 + fdtox %f8,%f8 1.86 + fdtox %f12,%f12 1.87 + fdtox %f16,%f16 1.88 + fdtox %f20,%f20 1.89 + fxtod %f8,%f8 1.90 + std %f8,[%o3+8] 1.91 + fxtod %f12,%f12 1.92 + std %f12,[%o3+24] 1.93 + fxtod %f16,%f16 1.94 + std %f16,[%o3+40] 1.95 + fxtod %f20,%f20 1.96 + std %f20,[%o3+56] 1.97 + fmuld %f8,%f4,%f8 1.98 + fmuld %f12,%f4,%f12 1.99 + fmuld %f16,%f4,%f16 1.100 + fmuld %f20,%f4,%f20 1.101 + fsubd %f6,%f8,%f8 1.102 + std %f8,[%o3] 1.103 + fsubd %f10,%f12,%f12 1.104 + std %f12,[%o3+16] 1.105 + fsubd %f14,%f16,%f16 1.106 + std %f16,[%o3+32] 1.107 + fsubd %f18,%f20,%f20 1.108 + std %f20,[%o3+48] 1.109 + .end 1.110 + 1.111 +