|
|
|
@ -50,7 +50,8 @@ SECTION .text |
|
|
|
|
%endmacro |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred4x4_down_right(pixel *src, const pixel *topright, int stride) |
|
|
|
|
; void ff_pred4x4_down_right_10(pixel *src, const pixel *topright, |
|
|
|
|
; ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED4x4_DR 0 |
|
|
|
|
cglobal pred4x4_down_right_10, 3, 3 |
|
|
|
@ -86,7 +87,8 @@ INIT_XMM avx |
|
|
|
|
PRED4x4_DR |
|
|
|
|
|
|
|
|
|
;------------------------------------------------------------------------------ |
|
|
|
|
; void ff_pred4x4_vertical_right(pixel *src, const pixel *topright, int stride) |
|
|
|
|
; void ff_pred4x4_vertical_right_10(pixel *src, const pixel *topright, |
|
|
|
|
; ptrdiff_t stride) |
|
|
|
|
;------------------------------------------------------------------------------ |
|
|
|
|
%macro PRED4x4_VR 0 |
|
|
|
|
cglobal pred4x4_vertical_right_10, 3, 3, 6 |
|
|
|
@ -123,7 +125,8 @@ INIT_XMM avx |
|
|
|
|
PRED4x4_VR |
|
|
|
|
|
|
|
|
|
;------------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred4x4_horizontal_down(pixel *src, const pixel *topright, int stride) |
|
|
|
|
; void ff_pred4x4_horizontal_down_10(pixel *src, const pixel *topright, |
|
|
|
|
; ptrdiff_t stride) |
|
|
|
|
;------------------------------------------------------------------------------- |
|
|
|
|
%macro PRED4x4_HD 0 |
|
|
|
|
cglobal pred4x4_horizontal_down_10, 3, 3 |
|
|
|
@ -163,7 +166,7 @@ INIT_XMM avx |
|
|
|
|
PRED4x4_HD |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred4x4_dc(pixel *src, const pixel *topright, int stride) |
|
|
|
|
; void ff_pred4x4_dc_10(pixel *src, const pixel *topright, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro HADDD 2 ; sum junk |
|
|
|
|
%if mmsize == 16 |
|
|
|
@ -204,7 +207,8 @@ cglobal pred4x4_dc_10, 3, 3 |
|
|
|
|
RET |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred4x4_down_left(pixel *src, const pixel *topright, int stride) |
|
|
|
|
; void ff_pred4x4_down_left_10(pixel *src, const pixel *topright, |
|
|
|
|
; ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED4x4_DL 0 |
|
|
|
|
cglobal pred4x4_down_left_10, 3, 3 |
|
|
|
@ -232,7 +236,8 @@ INIT_XMM avx |
|
|
|
|
PRED4x4_DL |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred4x4_vertical_left(pixel *src, const pixel *topright, int stride) |
|
|
|
|
; void ff_pred4x4_vertical_left_10(pixel *src, const pixel *topright, |
|
|
|
|
; ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED4x4_VL 0 |
|
|
|
|
cglobal pred4x4_vertical_left_10, 3, 3 |
|
|
|
@ -259,7 +264,8 @@ INIT_XMM avx |
|
|
|
|
PRED4x4_VL |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred4x4_horizontal_up(pixel *src, const pixel *topright, int stride) |
|
|
|
|
; void ff_pred4x4_horizontal_up_10(pixel *src, const pixel *topright, |
|
|
|
|
; ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
INIT_MMX mmxext |
|
|
|
|
cglobal pred4x4_horizontal_up_10, 3, 3 |
|
|
|
@ -293,7 +299,7 @@ cglobal pred4x4_horizontal_up_10, 3, 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8_vertical(pixel *src, int stride) |
|
|
|
|
; void ff_pred8x8_vertical_10(pixel *src, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
INIT_XMM sse2 |
|
|
|
|
cglobal pred8x8_vertical_10, 2, 2 |
|
|
|
@ -309,7 +315,7 @@ cglobal pred8x8_vertical_10, 2, 2 |
|
|
|
|
RET |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8_horizontal(pixel *src, int stride) |
|
|
|
|
; void ff_pred8x8_horizontal_10(pixel *src, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
INIT_XMM sse2 |
|
|
|
|
cglobal pred8x8_horizontal_10, 2, 3 |
|
|
|
@ -329,7 +335,7 @@ cglobal pred8x8_horizontal_10, 2, 3 |
|
|
|
|
REP_RET |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_predict_8x8_dc(pixel *src, int stride) |
|
|
|
|
; void ff_predict_8x8_dc_10(pixel *src, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro MOV8 2-3 |
|
|
|
|
; sort of a hack, but it works |
|
|
|
@ -416,7 +422,7 @@ INIT_XMM sse2 |
|
|
|
|
PRED8x8_DC pshuflw |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8_top_dc(pixel *src, int stride) |
|
|
|
|
; void ff_pred8x8_top_dc_10(pixel *src, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
INIT_XMM sse2 |
|
|
|
|
cglobal pred8x8_top_dc_10, 2, 4 |
|
|
|
@ -443,7 +449,7 @@ cglobal pred8x8_top_dc_10, 2, 4 |
|
|
|
|
RET |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8_plane(pixel *src, int stride) |
|
|
|
|
; void ff_pred8x8_plane_10(pixel *src, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
INIT_XMM sse2 |
|
|
|
|
cglobal pred8x8_plane_10, 2, 7, 7 |
|
|
|
@ -506,8 +512,8 @@ cglobal pred8x8_plane_10, 2, 7, 7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8l_128_dc(pixel *src, int has_topleft, int has_topright, |
|
|
|
|
; int stride) |
|
|
|
|
; void ff_pred8x8l_128_dc_10(pixel *src, int has_topleft, int has_topright, |
|
|
|
|
; ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED8x8L_128_DC 0 |
|
|
|
|
cglobal pred8x8l_128_dc_10, 4, 4 |
|
|
|
@ -531,8 +537,8 @@ INIT_XMM sse2 |
|
|
|
|
PRED8x8L_128_DC |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8l_top_dc(pixel *src, int has_topleft, int has_topright, |
|
|
|
|
; int stride) |
|
|
|
|
; void ff_pred8x8l_top_dc_10(pixel *src, int has_topleft, int has_topright, |
|
|
|
|
; ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED8x8L_TOP_DC 0 |
|
|
|
|
cglobal pred8x8l_top_dc_10, 4, 4, 6 |
|
|
|
@ -569,7 +575,8 @@ INIT_XMM avx |
|
|
|
|
PRED8x8L_TOP_DC |
|
|
|
|
|
|
|
|
|
;------------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8l_dc(pixel *src, int has_topleft, int has_topright, int stride) |
|
|
|
|
; void ff_pred8x8l_dc_10(pixel *src, int has_topleft, int has_topright, |
|
|
|
|
; ptrdiff_t stride) |
|
|
|
|
;------------------------------------------------------------------------------- |
|
|
|
|
;TODO: see if scalar is faster |
|
|
|
|
%macro PRED8x8L_DC 0 |
|
|
|
@ -626,8 +633,8 @@ INIT_XMM avx |
|
|
|
|
PRED8x8L_DC |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8l_vertical(pixel *src, int has_topleft, int has_topright, |
|
|
|
|
; int stride) |
|
|
|
|
; void ff_pred8x8l_vertical_10(pixel *src, int has_topleft, int has_topright, |
|
|
|
|
; ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED8x8L_VERTICAL 0 |
|
|
|
|
cglobal pred8x8l_vertical_10, 4, 4, 6 |
|
|
|
@ -660,8 +667,8 @@ INIT_XMM avx |
|
|
|
|
PRED8x8L_VERTICAL |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8l_horizontal(uint8_t *src, int has_topleft, int has_topright, |
|
|
|
|
; int stride) |
|
|
|
|
; void ff_pred8x8l_horizontal_10(uint8_t *src, int has_topleft, |
|
|
|
|
; int has_topright, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED8x8L_HORIZONTAL 0 |
|
|
|
|
cglobal pred8x8l_horizontal_10, 4, 4, 5 |
|
|
|
@ -715,8 +722,8 @@ INIT_XMM avx |
|
|
|
|
PRED8x8L_HORIZONTAL |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8l_down_left(pixel *src, int has_topleft, int has_topright, |
|
|
|
|
; int stride) |
|
|
|
|
; void ff_pred8x8l_down_left_10(pixel *src, int has_topleft, int has_topright, |
|
|
|
|
; ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED8x8L_DOWN_LEFT 0 |
|
|
|
|
cglobal pred8x8l_down_left_10, 4, 4, 7 |
|
|
|
@ -782,8 +789,8 @@ INIT_XMM avx |
|
|
|
|
PRED8x8L_DOWN_LEFT |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8l_down_right(pixel *src, int has_topleft, int has_topright, |
|
|
|
|
; int stride) |
|
|
|
|
; void ff_pred8x8l_down_right_10(pixel *src, int has_topleft, |
|
|
|
|
; int has_topright, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED8x8L_DOWN_RIGHT 0 |
|
|
|
|
; standard forbids this when has_topleft is false |
|
|
|
@ -855,8 +862,8 @@ INIT_XMM avx |
|
|
|
|
PRED8x8L_DOWN_RIGHT |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8l_vertical_right(pixel *src, int has_topleft, |
|
|
|
|
; int has_topright, int stride) |
|
|
|
|
; void ff_pred8x8l_vertical_right_10(pixel *src, int has_topleft, |
|
|
|
|
; int has_topright, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED8x8L_VERTICAL_RIGHT 0 |
|
|
|
|
; likewise with 8x8l_down_right |
|
|
|
@ -924,8 +931,8 @@ INIT_XMM avx |
|
|
|
|
PRED8x8L_VERTICAL_RIGHT |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred8x8l_horizontal_up(pixel *src, int has_topleft, |
|
|
|
|
; int has_topright, int stride) |
|
|
|
|
; void ff_pred8x8l_horizontal_up_10(pixel *src, int has_topleft, |
|
|
|
|
; int has_topright, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED8x8L_HORIZONTAL_UP 0 |
|
|
|
|
cglobal pred8x8l_horizontal_up_10, 4, 4, 6 |
|
|
|
@ -985,7 +992,7 @@ PRED8x8L_HORIZONTAL_UP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred16x16_vertical(pixel *src, int stride) |
|
|
|
|
; void ff_pred16x16_vertical_10(pixel *src, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro MOV16 3-5 |
|
|
|
|
mova [%1+ 0], %2 |
|
|
|
@ -1021,7 +1028,7 @@ INIT_XMM sse2 |
|
|
|
|
PRED16x16_VERTICAL |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred16x16_horizontal(pixel *src, int stride) |
|
|
|
|
; void ff_pred16x16_horizontal_10(pixel *src, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED16x16_HORIZONTAL 0 |
|
|
|
|
cglobal pred16x16_horizontal_10, 2, 3 |
|
|
|
@ -1045,7 +1052,7 @@ INIT_XMM sse2 |
|
|
|
|
PRED16x16_HORIZONTAL |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred16x16_dc(pixel *src, int stride) |
|
|
|
|
; void ff_pred16x16_dc_10(pixel *src, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED16x16_DC 0 |
|
|
|
|
cglobal pred16x16_dc_10, 2, 6 |
|
|
|
@ -1091,7 +1098,7 @@ INIT_XMM sse2 |
|
|
|
|
PRED16x16_DC |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred16x16_top_dc(pixel *src, int stride) |
|
|
|
|
; void ff_pred16x16_top_dc_10(pixel *src, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED16x16_TOP_DC 0 |
|
|
|
|
cglobal pred16x16_top_dc_10, 2, 3 |
|
|
|
@ -1123,7 +1130,7 @@ INIT_XMM sse2 |
|
|
|
|
PRED16x16_TOP_DC |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred16x16_left_dc(pixel *src, int stride) |
|
|
|
|
; void ff_pred16x16_left_dc_10(pixel *src, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED16x16_LEFT_DC 0 |
|
|
|
|
cglobal pred16x16_left_dc_10, 2, 6 |
|
|
|
@ -1160,7 +1167,7 @@ INIT_XMM sse2 |
|
|
|
|
PRED16x16_LEFT_DC |
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
; void ff_pred16x16_128_dc(pixel *src, int stride) |
|
|
|
|
; void ff_pred16x16_128_dc_10(pixel *src, ptrdiff_t stride) |
|
|
|
|
;----------------------------------------------------------------------------- |
|
|
|
|
%macro PRED16x16_128_DC 0 |
|
|
|
|
cglobal pred16x16_128_dc_10, 2,3 |
|
|
|
|