montmulfv9.il (1845B)
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 fdtox %f0,%f10 11 fitod %f10,%f0 12 .end 13 14 ! 15 ! double lower32(double /*frs1*/, double /* Zero */); 16 ! 17 .inline lower32,8 18 fdtox %f0,%f10 19 fmovs %f2,%f10 20 fxtod %f10,%f0 21 .end 22 23 ! 24 ! double mod(double /*x*/, double /*1/m*/, double /*m*/); 25 ! 26 .inline mod,12 27 fmuld %f0,%f2,%f2 28 fdtox %f2,%f2 29 fxtod %f2,%f2 30 fmuld %f2,%f4,%f2 31 fsubd %f0,%f2,%f0 32 .end 33 34 35 ! 36 ! void i16_to_d16_and_d32x4(double * /*1/(2^16)*/, double * /* 2^16*/, 37 ! double * /* 0 */, 38 ! double * /*result16*/, double * /* result32 */ 39 ! float * /*source - should be unsigned int* 40 ! converted to float* */); 41 ! 42 .inline i16_to_d16_and_d32x4,24 43 ldd [%o0],%f2 ! 1/(2^16) 44 ldd [%o1],%f4 ! 2^16 45 ldd [%o2],%f22 46 47 fmovd %f22,%f6 48 ld [%o5],%f7 49 fmovd %f22,%f10 50 ld [%o5+4],%f11 51 fmovd %f22,%f14 52 ld [%o5+8],%f15 53 fmovd %f22,%f18 54 ld [%o5+12],%f19 55 fxtod %f6,%f6 56 std %f6,[%o4] 57 fxtod %f10,%f10 58 std %f10,[%o4+8] 59 fxtod %f14,%f14 60 std %f14,[%o4+16] 61 fxtod %f18,%f18 62 std %f18,[%o4+24] 63 fmuld %f2,%f6,%f8 64 fmuld %f2,%f10,%f12 65 fmuld %f2,%f14,%f16 66 fmuld %f2,%f18,%f20 67 fdtox %f8,%f8 68 fdtox %f12,%f12 69 fdtox %f16,%f16 70 fdtox %f20,%f20 71 fxtod %f8,%f8 72 std %f8,[%o3+8] 73 fxtod %f12,%f12 74 std %f12,[%o3+24] 75 fxtod %f16,%f16 76 std %f16,[%o3+40] 77 fxtod %f20,%f20 78 std %f20,[%o3+56] 79 fmuld %f8,%f4,%f8 80 fmuld %f12,%f4,%f12 81 fmuld %f16,%f4,%f16 82 fmuld %f20,%f4,%f20 83 fsubd %f6,%f8,%f8 84 std %f8,[%o3] 85 fsubd %f10,%f12,%f12 86 std %f12,[%o3+16] 87 fsubd %f14,%f16,%f16 88 std %f16,[%o3+32] 89 fsubd %f18,%f20,%f20 90 std %f20,[%o3+48] 91 .end 92 93