105 |
cglobal interpolate8x8_halfpel_v_mmx |
cglobal interpolate8x8_halfpel_v_mmx |
106 |
cglobal interpolate8x8_halfpel_hv_mmx |
cglobal interpolate8x8_halfpel_hv_mmx |
107 |
|
|
108 |
|
cglobal interpolate8x4_halfpel_h_mmx |
109 |
|
cglobal interpolate8x4_halfpel_v_mmx |
110 |
|
cglobal interpolate8x4_halfpel_hv_mmx |
111 |
|
|
112 |
cglobal interpolate8x8_avg4_mmx |
cglobal interpolate8x8_avg4_mmx |
113 |
cglobal interpolate8x8_avg2_mmx |
cglobal interpolate8x8_avg2_mmx |
114 |
|
|
345 |
|
|
346 |
;----------------------------------------------------------------------------- |
;----------------------------------------------------------------------------- |
347 |
; |
; |
348 |
|
; void interpolate8x4_halfpel_h_mmx(uint8_t * const dst, |
349 |
|
; const uint8_t * const src, |
350 |
|
; const uint32_t stride, |
351 |
|
; const uint32_t rounding); |
352 |
|
; |
353 |
|
;----------------------------------------------------------------------------- |
354 |
|
|
355 |
|
ALIGN 16 |
356 |
|
interpolate8x4_halfpel_h_mmx: |
357 |
|
|
358 |
|
push esi |
359 |
|
push edi |
360 |
|
mov eax, [esp + 8 + 16] ; rounding |
361 |
|
|
362 |
|
movq mm7, [rounding1_mmx + eax * 8] |
363 |
|
|
364 |
|
mov edi, [esp + 8 + 4] ; dst |
365 |
|
mov esi, [esp + 8 + 8] ; src |
366 |
|
mov edx, [esp + 8 + 12] ; stride |
367 |
|
|
368 |
|
pxor mm6, mm6 ; zero |
369 |
|
|
370 |
|
COPY_H_MMX |
371 |
|
COPY_H_MMX |
372 |
|
COPY_H_MMX |
373 |
|
COPY_H_MMX |
374 |
|
|
375 |
|
pop edi |
376 |
|
pop esi |
377 |
|
|
378 |
|
ret |
379 |
|
.endfunc |
380 |
|
|
381 |
|
|
382 |
|
;----------------------------------------------------------------------------- |
383 |
|
; |
384 |
|
; void interpolate8x4_halfpel_v_mmx(uint8_t * const dst, |
385 |
|
; const uint8_t * const src, |
386 |
|
; const uint32_t stride, |
387 |
|
; const uint32_t rounding); |
388 |
|
; |
389 |
|
;----------------------------------------------------------------------------- |
390 |
|
|
391 |
|
ALIGN 16 |
392 |
|
interpolate8x4_halfpel_v_mmx: |
393 |
|
|
394 |
|
push esi |
395 |
|
push edi |
396 |
|
|
397 |
|
mov eax, [esp + 8 + 16] ; rounding |
398 |
|
|
399 |
|
movq mm7, [rounding1_mmx + eax * 8] |
400 |
|
|
401 |
|
mov edi, [esp + 8 + 4] ; dst |
402 |
|
mov esi, [esp + 8 + 8] ; src |
403 |
|
mov edx, [esp + 8 + 12] ; stride |
404 |
|
|
405 |
|
pxor mm6, mm6 ; zero |
406 |
|
|
407 |
|
|
408 |
|
COPY_V_MMX |
409 |
|
COPY_V_MMX |
410 |
|
COPY_V_MMX |
411 |
|
COPY_V_MMX |
412 |
|
|
413 |
|
pop edi |
414 |
|
pop esi |
415 |
|
|
416 |
|
ret |
417 |
|
.endfunc |
418 |
|
|
419 |
|
|
420 |
|
;----------------------------------------------------------------------------- |
421 |
|
; |
422 |
|
; void interpolate8x4_halfpel_hv_mmx(uint8_t * const dst, |
423 |
|
; const uint8_t * const src, |
424 |
|
; const uint32_t stride, |
425 |
|
; const uint32_t rounding); |
426 |
|
; |
427 |
|
; |
428 |
|
;----------------------------------------------------------------------------- |
429 |
|
|
430 |
|
ALIGN 16 |
431 |
|
interpolate8x4_halfpel_hv_mmx: |
432 |
|
|
433 |
|
push esi |
434 |
|
push edi |
435 |
|
|
436 |
|
mov eax, [esp + 8 + 16] ; rounding |
437 |
|
|
438 |
|
movq mm7, [rounding2_mmx + eax * 8] |
439 |
|
|
440 |
|
mov edi, [esp + 8 + 4] ; dst |
441 |
|
mov esi, [esp + 8 + 8] ; src |
442 |
|
|
443 |
|
mov eax, 8 |
444 |
|
|
445 |
|
pxor mm6, mm6 ; zero |
446 |
|
|
447 |
|
mov edx, [esp + 8 + 12] ; stride |
448 |
|
|
449 |
|
COPY_HV_MMX |
450 |
|
COPY_HV_MMX |
451 |
|
COPY_HV_MMX |
452 |
|
COPY_HV_MMX |
453 |
|
|
454 |
|
pop edi |
455 |
|
pop esi |
456 |
|
|
457 |
|
ret |
458 |
|
.endfunc |
459 |
|
|
460 |
|
;----------------------------------------------------------------------------- |
461 |
|
; |
462 |
; void interpolate8x8_avg2_mmx(uint8_t const *dst, |
; void interpolate8x8_avg2_mmx(uint8_t const *dst, |
463 |
; const uint8_t * const src1, |
; const uint8_t * const src1, |
464 |
; const uint8_t * const src2, |
; const uint8_t * const src2, |