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 109