57 static void int32_to_float_fmul_scalar_mips(
float *dst,
const int *
src,
63 float temp1, temp3, temp5, temp7, temp9, temp11, temp13, temp15;
65 int rpom1, rpom2, rpom11, rpom21, rpom12, rpom22, rpom13, rpom23;
66 const int *src_end =
src +
len;
72 "lw %[rpom11], 0(%[src]) \n\t"
73 "lw %[rpom21], 4(%[src]) \n\t"
74 "lw %[rpom1], 8(%[src]) \n\t"
75 "lw %[rpom2], 12(%[src]) \n\t"
76 "mtc1 %[rpom11], %[temp1] \n\t"
77 "mtc1 %[rpom21], %[temp3] \n\t"
78 "mtc1 %[rpom1], %[temp5] \n\t"
79 "mtc1 %[rpom2], %[temp7] \n\t"
81 "lw %[rpom13], 16(%[src]) \n\t"
82 "lw %[rpom23], 20(%[src]) \n\t"
83 "lw %[rpom12], 24(%[src]) \n\t"
84 "lw %[rpom22], 28(%[src]) \n\t"
85 "mtc1 %[rpom13], %[temp9] \n\t"
86 "mtc1 %[rpom23], %[temp11] \n\t"
87 "mtc1 %[rpom12], %[temp13] \n\t"
88 "mtc1 %[rpom22], %[temp15] \n\t"
91 "cvt.s.w %[temp1], %[temp1] \n\t"
92 "cvt.s.w %[temp3], %[temp3] \n\t"
93 "cvt.s.w %[temp5], %[temp5] \n\t"
94 "cvt.s.w %[temp7], %[temp7] \n\t"
96 "cvt.s.w %[temp9], %[temp9] \n\t"
97 "cvt.s.w %[temp11], %[temp11] \n\t"
98 "cvt.s.w %[temp13], %[temp13] \n\t"
99 "cvt.s.w %[temp15], %[temp15] \n\t"
101 "mul.s %[temp1], %[temp1], %[mul] \n\t"
102 "mul.s %[temp3], %[temp3], %[mul] \n\t"
103 "mul.s %[temp5], %[temp5], %[mul] \n\t"
104 "mul.s %[temp7], %[temp7], %[mul] \n\t"
106 "mul.s %[temp9], %[temp9], %[mul] \n\t"
107 "mul.s %[temp11], %[temp11], %[mul] \n\t"
108 "mul.s %[temp13], %[temp13], %[mul] \n\t"
109 "mul.s %[temp15], %[temp15], %[mul] \n\t"
111 "swc1 %[temp1], 0(%[dst]) \n\t"
112 "swc1 %[temp3], 4(%[dst]) \n\t"
113 "swc1 %[temp5], 8(%[dst]) \n\t"
114 "swc1 %[temp7], 12(%[dst]) \n\t"
116 "swc1 %[temp9], 16(%[dst]) \n\t"
117 "swc1 %[temp11], 20(%[dst]) \n\t"
118 "swc1 %[temp13], 24(%[dst]) \n\t"
119 "swc1 %[temp15], 28(%[dst]) \n\t"
121 "bne %[src], %[src_end], i32tf_lp%= \n\t"
122 : [temp1]
"=&f"(temp1), [temp11]
"=&f"(temp11),
123 [temp13]
"=&f"(temp13), [temp15]
"=&f"(temp15),
124 [temp3]
"=&f"(temp3), [temp5]
"=&f"(temp5),
125 [temp7]
"=&f"(temp7), [temp9]
"=&f"(temp9),
126 [rpom1]
"=&r"(rpom1), [rpom2]
"=&r"(rpom2),
127 [rpom11]
"=&r"(rpom11), [rpom21]
"=&r"(rpom21),
128 [rpom12]
"=&r"(rpom12), [rpom22]
"=&r"(rpom22),
129 [rpom13]
"=&r"(rpom13), [rpom23]
"=&r"(rpom23),
130 [dst]
"+r"(dst), [
src]
"+r"(
src)
131 : [
mul]
"f"(
mul), [src_end]
"r"(src_end)
140 c->int32_to_float_fmul_scalar = int32_to_float_fmul_scalar_mips;