30 const int A = (8 - x) * (8 - y);
31 const int B = x * (8 -
y);
32 const int C = (8 - x) * y;
50 "daddiu $6, $0, 32 \r\n"
61 "punpcklbh $f2, $f2, $f20 \r\n"
62 "punpcklbh $f4, $f4, $f20 \r\n"
63 "pshufh $f6, $f6, $f20 \r\n"
64 "pshufh $f8, $f8, $f20 \r\n"
65 "pshufh $f10, $f10, $f20 \r\n"
66 "pshufh $f12, $f12, $f20 \r\n"
67 "pshufh $f14, $f14, $f20 \r\n"
68 "punpcklbh $f16, $f16, $f20 \r\n"
69 "punpcklbh $f18, $f18, $f20 \r\n"
70 "daddiu $6, $0, 6 \r\n"
72 "dsrl32 $2, $2, 0 \r\n"
73 "dsrl32 $3, $3, 0 \r\n"
74 "dsrl32 $4, $4, 0 \r\n"
75 "dsrl32 $5, $5, 0 \r\n"
76 "pmullh $f2, $f2, $f6 \r\n"
77 "pmullh $f4, $f4, $f8 \r\n"
78 "pmullh $f16, $f10, $f16 \r\n"
79 "pmullh $f18, $f12, $f18 \r\n"
80 "paddh $f2, $f2, $f14 \r\n"
81 "paddh $f4, $f4, $f16 \r\n"
82 "paddh $f2, $f2, $f18 \r\n"
83 "paddh $f2, $f2, $f4 \r\n"
84 "psrah $f24, $f2, $f22 \r\n"
89 "punpcklbh $f2, $f2, $f20 \r\n"
90 "punpcklbh $f4, $f4, $f20 \r\n"
91 "punpcklbh $f16, $f16, $f20 \r\n"
92 "punpcklbh $f18, $f18, $f20 \r\n"
93 "pmullh $f2, $f2, $f6 \r\n"
94 "pmullh $f4, $f4, $f8 \r\n"
95 "pmullh $f16, $f10, $f16 \r\n"
96 "pmullh $f18, $f12, $f18 \r\n"
97 "paddh $f2, $f2, $f14 \r\n"
98 "paddh $f4, $f4, $f16 \r\n"
99 "paddh $f2, $f2, $f18 \r\n"
100 "paddh $f2, $f2, $f4 \r\n"
101 "psrah $f2, $f2, $f22 \r\n"
102 "packushb $f2, $f24, $f2 \r\n"
105 :
"m"(*src),
"m"(*(src+7)),
"m"(*(src+1)),
"m"(*(src+8)),
106 "m"(*(src+
stride)),
"m"(*(src+stride+7)),
107 "m"(*(src+stride+1)),
"m"(*(src+stride+8)),
108 "r"(
A),
"r"(B),
"r"(
C),
"r"(D)
109 :
"$2",
"$3",
"$4",
"$5",
"$6"
116 const int step = C ? stride : 1;
118 for (i=0; i<
h; i++) {
120 "daddiu $6, $0, 32 \r\n"
131 "daddiu $6, $0, 6 \r\n"
132 "punpcklbh $f2, $f2, $f20 \r\n"
133 "punpcklbh $f4, $f4, $f20 \r\n"
134 "pshufh $f6, $f6, $f20 \r\n"
135 "pshufh $f8, $f8, $f20 \r\n"
136 "pshufh $f14, $f14, $f20 \r\n"
138 "dsrl32 $2, $2, 0 \r\n"
139 "dsrl32 $3, $3, 0 \r\n"
140 "pmullh $f2, $f2, $f6 \r\n"
141 "pmullh $f4, $f4, $f8 \r\n"
142 "paddh $f2, $f2, $f14 \r\n"
143 "paddh $f2, $f2, $f4 \r\n"
144 "psrah $f24, $f2, $f22 \r\n"
147 "punpcklbh $f2, $f2, $f20 \r\n"
148 "punpcklbh $f4, $f4, $f20 \r\n"
149 "pmullh $f2, $f2, $f6 \r\n"
150 "pmullh $f4, $f4, $f8 \r\n"
151 "paddh $f2, $f2, $f14 \r\n"
152 "paddh $f2, $f2, $f4 \r\n"
153 "psrah $f2, $f2, $f22 \r\n"
154 "packushb $f2, $f24, $f2 \r\n"
157 :
"m"(*(
src)),
"m"(*(src+7)),
158 "m"(*(src+step)),
"m"(*(src+step+7)),
160 :
"$2",
"$3",
"$4",
"$5",
"$6"
167 for (i = 0; i <
h; i++) {
169 "daddiu $6, $0, 32 \r\n"
176 "daddiu $6, $0, 6 \r\n"
177 "punpcklbh $f2, $f2, $f20 \r\n"
178 "pshufh $f6, $f6, $f20 \r\n"
179 "pshufh $f14, $f14, $f20 \r\n"
181 "dsrl32 $2, $2, 0 \r\n"
182 "pmullh $f2, $f2, $f6 \r\n"
183 "paddh $f2, $f2, $f14 \r\n"
184 "psrah $f24, $f2, $f22 \r\n"
186 "punpcklbh $f2, $f2, $f20 \r\n"
187 "pmullh $f2, $f2, $f6 \r\n"
188 "paddh $f2, $f2, $f14 \r\n"
189 "psrah $f2, $f2, $f22 \r\n"
190 "packushb $f2, $f24, $f2 \r\n"
193 :
"m"(*src),
"m"(*(src+7)),
"r"(
A)
206 const int A = (8 - x) * (8 - y);
207 const int B = x * (8 -
y);
208 const int C = (8 - x) * y;
216 for (i=0; i<
h; i++) {
226 "daddiu $6, $0, 32 \r\n"
229 "mtc1 %11, $f10 \r\n"
230 "mtc1 %12, $f12 \r\n"
237 "punpcklbh $f2, $f2, $f20 \r\n"
238 "punpcklbh $f4, $f4, $f20 \r\n"
239 "pshufh $f6, $f6, $f20 \r\n"
240 "pshufh $f8, $f8, $f20 \r\n"
241 "pshufh $f10, $f10, $f20 \r\n"
242 "pshufh $f12, $f12, $f20 \r\n"
243 "pshufh $f14, $f14, $f20 \r\n"
244 "punpcklbh $f16, $f16, $f20 \r\n"
245 "punpcklbh $f18, $f18, $f20 \r\n"
246 "daddiu $6, $0, 6 \r\n"
248 "dsrl32 $2, $2, 0 \r\n"
249 "dsrl32 $3, $3, 0 \r\n"
250 "dsrl32 $4, $4, 0 \r\n"
251 "dsrl32 $5, $5, 0 \r\n"
252 "pmullh $f2, $f2, $f6 \r\n"
253 "pmullh $f4, $f4, $f8 \r\n"
254 "pmullh $f16, $f10, $f16 \r\n"
255 "pmullh $f18, $f12, $f18 \r\n"
256 "paddh $f2, $f2, $f14 \r\n"
257 "paddh $f4, $f4, $f16 \r\n"
258 "paddh $f2, $f2, $f18 \r\n"
259 "paddh $f2, $f2, $f4 \r\n"
260 "psrah $f24, $f2, $f22 \r\n"
265 "punpcklbh $f2, $f2, $f20 \r\n"
266 "punpcklbh $f4, $f4, $f20 \r\n"
267 "punpcklbh $f16, $f16, $f20 \r\n"
268 "punpcklbh $f18, $f18, $f20 \r\n"
269 "pmullh $f2, $f2, $f6 \r\n"
270 "pmullh $f4, $f4, $f8 \r\n"
271 "pmullh $f16, $f10, $f16 \r\n"
272 "pmullh $f18, $f12, $f18 \r\n"
273 "paddh $f2, $f2, $f14 \r\n"
274 "paddh $f4, $f4, $f16 \r\n"
275 "paddh $f2, $f2, $f18 \r\n"
276 "paddh $f2, $f2, $f4 \r\n"
277 "psrah $f2, $f2, $f22 \r\n"
278 "packushb $f2, $f24, $f2 \r\n"
280 "pavgb $f2, $f2, $f4 \r\n"
283 :
"m"(*(
src)),
"m"(*(src+7)),
"m"(*(src+1)),
"m"(*(src+8)),
284 "m"(*(src+
stride)),
"m"(*(src+stride+7)),
285 "m"(*(src+stride+1)),
"m"(*(src+stride+8)),
286 "r"(
A),
"r"(B),
"r"(
C),
"r"(D)
287 :
"$2",
"$3",
"$4",
"$5",
"$6"
294 const int step = C ? stride : 1;
296 for (i=0; i<
h; i++) {
298 "daddiu $6, $0, 32 \r\n"
309 "daddiu $6, $0, 6 \r\n"
310 "punpcklbh $f2, $f2, $f20 \r\n"
311 "punpcklbh $f4, $f4, $f20 \r\n"
312 "pshufh $f6, $f6, $f20 \r\n"
313 "pshufh $f8, $f8, $f20 \r\n"
314 "pshufh $f14, $f14, $f20 \r\n"
316 "dsrl32 $2, $2, 0 \r\n"
317 "dsrl32 $3, $3, 0 \r\n"
318 "pmullh $f2, $f2, $f6 \r\n"
319 "pmullh $f4, $f4, $f8 \r\n"
320 "paddh $f2, $f2, $f14 \r\n"
321 "paddh $f2, $f2, $f4 \r\n"
322 "psrah $f24, $f2, $f22 \r\n"
325 "punpcklbh $f2, $f2, $f20 \r\n"
326 "punpcklbh $f4, $f4, $f20 \r\n"
327 "pmullh $f2, $f2, $f6 \r\n"
328 "pmullh $f4, $f4, $f8 \r\n"
329 "paddh $f2, $f2, $f14 \r\n"
330 "paddh $f2, $f2, $f4 \r\n"
331 "psrah $f2, $f2, $f22 \r\n"
332 "packushb $f2, $f24, $f2 \r\n"
334 "pavgb $f2, $f2, $f4 \r\n"
337 :
"m"(*(
src)),
"m"(*(src+7)),
338 "m"(*(src+step)),
"m"(*(src+step+7)),
"r"(
A),
"r"(E)
339 :
"$2",
"$3",
"$4",
"$5",
"$6"
351 const int A = (8 - x) * (8 - y);
352 const int B = x * (8 -
y);
353 const int C = (8 - x) * y;
361 for (i=0; i<
h; i++) {
371 "daddiu $6, $0, 32 \r\n"
374 "mtc1 %11, $f10 \r\n"
375 "mtc1 %12, $f12 \r\n"
382 "punpcklbh $f2, $f2, $f20 \r\n"
383 "punpcklbh $f4, $f4, $f20 \r\n"
384 "pshufh $f6, $f6, $f20 \r\n"
385 "pshufh $f8, $f8, $f20 \r\n"
386 "pshufh $f10, $f10, $f20 \r\n"
387 "pshufh $f12, $f12, $f20 \r\n"
388 "pshufh $f14, $f14, $f20 \r\n"
389 "punpcklbh $f16, $f16, $f20 \r\n"
390 "punpcklbh $f18, $f18, $f20 \r\n"
391 "daddiu $6, $0, 6 \r\n"
393 "pmullh $f2, $f2, $f6 \r\n"
394 "pmullh $f4, $f4, $f8 \r\n"
395 "pmullh $f16, $f10, $f16 \r\n"
396 "pmullh $f18, $f12, $f18 \r\n"
397 "paddh $f2, $f2, $f14 \r\n"
398 "paddh $f4, $f4, $f16 \r\n"
399 "paddh $f2, $f2, $f18 \r\n"
400 "paddh $f2, $f2, $f4 \r\n"
401 "psrah $f2, $f2, $f22 \r\n"
402 "packushb $f2, $f2, $f2 \r\n"
405 :
"m"(*(
src)),
"m"(*(src+7)),
"m"(*(src+1)),
"m"(*(src+8)),
406 "m"(*(src+
stride)),
"m"(*(src+stride+7)),
407 "m"(*(src+stride+1)),
"m"(*(src+stride+8)),
408 "r"(
A),
"r"(B),
"r"(
C),
"r"(D)
409 :
"$2",
"$3",
"$4",
"$5",
"$6"
416 const int step = C ? stride : 1;
418 for (i=0; i<
h; i++) {
424 "daddiu $4, $0, 32 \r\n"
431 "punpcklbh $f2, $f2, $f20 \r\n"
432 "punpcklbh $f4, $f4, $f20 \r\n"
433 "pshufh $f6, $f6, $f20 \r\n"
434 "pshufh $f8, $f8, $f20 \r\n"
435 "pshufh $f10, $f10, $f20 \r\n"
436 "daddiu $4, $0, 6 \r\n"
438 "pmullh $f2, $f2, $f6 \r\n"
439 "pmullh $f4, $f4, $f8 \r\n"
440 "paddh $f2, $f2, $f10 \r\n"
441 "paddh $f2, $f2, $f4 \r\n"
442 "psrah $f2, $f2, $f22 \r\n"
443 "packushb $f2, $f2, $f20 \r\n"
446 :
"m"(*(
src)),
"m"(*(src+7)),
"m"(*(src+step)),
447 "m"(*(src+step+7)),
"r"(
A),
"r"(E)
448 :
"$2",
"$3",
"$4",
"$5",
"$6"
455 for (i=0; i<
h; i++) {
461 :
"m"(*src),
"m"(*(src+3))
474 const int A = (8 - x) *(8 - y);
475 const int B = x * (8 -
y);
476 const int C = (8 - x) * y;
483 for (i=0; i<
h; i++) {
493 "daddiu $6, $0, 32 \r\n"
496 "mtc1 %11, $f10 \r\n"
497 "mtc1 %12, $f12 \r\n"
504 "punpcklbh $f2, $f2, $f20 \r\n"
505 "punpcklbh $f4, $f4, $f20 \r\n"
506 "pshufh $f6, $f6, $f20 \r\n"
507 "pshufh $f8, $f8, $f20 \r\n"
508 "pshufh $f10, $f10, $f20 \r\n"
509 "pshufh $f12, $f12, $f20 \r\n"
510 "pshufh $f14, $f14, $f20 \r\n"
511 "punpcklbh $f16, $f16, $f20 \r\n"
512 "punpcklbh $f18, $f18, $f20 \r\n"
513 "daddiu $6, $0, 6 \r\n"
515 "pmullh $f2, $f2, $f6 \r\n"
516 "pmullh $f4, $f4, $f8 \r\n"
517 "pmullh $f16, $f10, $f16 \r\n"
518 "pmullh $f18, $f12, $f18 \r\n"
519 "paddh $f2, $f2, $f14 \r\n"
520 "paddh $f4, $f4, $f16 \r\n"
521 "paddh $f2, $f2, $f18 \r\n"
522 "paddh $f2, $f2, $f4 \r\n"
523 "psrah $f2, $f2, $f22 \r\n"
524 "packushb $f2, $f2, $f2 \r\n"
526 "pavgb $f2, $f2, $f4 \r\n"
529 :
"m"(*(
src)),
"m"(*(src+7)),
"m"(*(src+1)),
"m"(*(src+8)),
530 "m"(*(src+
stride)),
"m"(*(src+stride+7)),
531 "m"(*(src+stride+1)),
"m"(*(src+stride+8)),
532 "r"(
A),
"r"(B),
"r"(
C),
"r"(D)
533 :
"$2",
"$3",
"$4",
"$5",
"$6"
541 const int step = C ? stride : 1;
543 for (i=0; i<
h; i++) {
549 "daddiu $4, $0, 32 \r\n"
556 "punpcklbh $f2, $f2, $f20 \r\n"
557 "punpcklbh $f4, $f4, $f20 \r\n"
558 "pshufh $f6, $f6, $f20 \r\n"
559 "pshufh $f8, $f8, $f20 \r\n"
560 "pshufh $f10, $f10, $f20 \r\n"
561 "daddiu $4, $0, 6 \r\n"
563 "pmullh $f2, $f2, $f6 \r\n"
564 "pmullh $f4, $f4, $f8 \r\n"
565 "paddh $f2, $f2, $f10 \r\n"
566 "paddh $f2, $f2, $f4 \r\n"
567 "psrah $f2, $f2, $f22 \r\n"
568 "packushb $f2, $f2, $f20 \r\n"
570 "pavgb $f2, $f2, $f4 \r\n"
573 :
"m"(*(
src)),
"m"(*(src+7)),
"m"(*(src+step)),
574 "m"(*(src+step+7)),
"r"(
A),
"r"(E)
575 :
"$2",
"$3",
"$4",
"$5",
"$6"
void ff_avg_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y)
#define av_assert2(cond)
assert() equivalent, that does lie in speed critical code.
void ff_put_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y)
void ff_avg_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y)
GLint GLenum GLboolean GLsizei stride
void ff_put_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y)