mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-09 16:19:35 +00:00
x86: hevc_mc: fix register count usage
A macro was using a fixed register, causing too many GPRs to be declared as used. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
d38edeee9b
commit
a507623bad
@ -270,12 +270,12 @@ QPEL_TABLE 12, 4, w, sse4
|
|||||||
%endif
|
%endif
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%macro QPEL_V_LOAD 4
|
%macro QPEL_V_LOAD 5
|
||||||
lea r12q, [%2]
|
lea %5q, [%2]
|
||||||
sub r12q, r3srcq
|
sub %5q, r3srcq
|
||||||
movdqu m0, [r12 ] ;load x- 3*srcstride
|
movdqu m0, [%5q ] ;load x- 3*srcstride
|
||||||
movdqu m1, [r12+ %3q ] ;load x- 2*srcstride
|
movdqu m1, [%5q+ %3q ] ;load x- 2*srcstride
|
||||||
movdqu m2, [r12+ 2*%3q ] ;load x-srcstride
|
movdqu m2, [%5q+ 2*%3q ] ;load x-srcstride
|
||||||
movdqu m3, [%2 ] ;load x
|
movdqu m3, [%2 ] ;load x
|
||||||
movdqu m4, [%2+ %3q] ;load x+stride
|
movdqu m4, [%2+ %3q] ;load x+stride
|
||||||
movdqu m5, [%2+ 2*%3q] ;load x+2*stride
|
movdqu m5, [%2+ 2*%3q] ;load x+2*stride
|
||||||
@ -869,11 +869,11 @@ cglobal hevc_put_hevc_bi_qpel_h%1_%2, 8, 9, 16 , dst, dststride, src, srcstride,
|
|||||||
; int width, int height, int mx, int my)
|
; int width, int height, int mx, int my)
|
||||||
; ******************************
|
; ******************************
|
||||||
|
|
||||||
cglobal hevc_put_hevc_qpel_v%1_%2, 7, 14, 15 , dst, dststride, src, srcstride, height, r3src, my, rfilter
|
cglobal hevc_put_hevc_qpel_v%1_%2, 7, 9, 15, dst, dststride, src, srcstride, height, r3src, my, rfilter
|
||||||
lea r3srcq, [srcstrideq*3]
|
lea r3srcq, [srcstrideq*3]
|
||||||
QPEL_FILTER %2, my
|
QPEL_FILTER %2, my
|
||||||
.loop
|
.loop
|
||||||
QPEL_V_LOAD %2, srcq, srcstride, %1
|
QPEL_V_LOAD %2, srcq, srcstride, %1, r8
|
||||||
QPEL_COMPUTE %1, %2
|
QPEL_COMPUTE %1, %2
|
||||||
%if %2 > 8
|
%if %2 > 8
|
||||||
packssdw m0, m1
|
packssdw m0, m1
|
||||||
@ -882,12 +882,12 @@ cglobal hevc_put_hevc_qpel_v%1_%2, 7, 14, 15 , dst, dststride, src, srcstride, h
|
|||||||
LOOP_END dst, dststride, src, srcstride
|
LOOP_END dst, dststride, src, srcstride
|
||||||
RET
|
RET
|
||||||
|
|
||||||
cglobal hevc_put_hevc_uni_qpel_v%1_%2, 7, 14, 15 , dst, dststride, src, srcstride, height, r3src, my, rfilter
|
cglobal hevc_put_hevc_uni_qpel_v%1_%2, 7, 9, 15, dst, dststride, src, srcstride, height, r3src, my, rfilter
|
||||||
movdqa m9, [pw_%2]
|
movdqa m9, [pw_%2]
|
||||||
lea r3srcq, [srcstrideq*3]
|
lea r3srcq, [srcstrideq*3]
|
||||||
QPEL_FILTER %2, my
|
QPEL_FILTER %2, my
|
||||||
.loop
|
.loop
|
||||||
QPEL_V_LOAD %2, srcq, srcstride, %1
|
QPEL_V_LOAD %2, srcq, srcstride, %1, r8
|
||||||
QPEL_COMPUTE %1, %2
|
QPEL_COMPUTE %1, %2
|
||||||
%if %2 > 8
|
%if %2 > 8
|
||||||
packusdw m0, m1
|
packusdw m0, m1
|
||||||
@ -900,13 +900,13 @@ cglobal hevc_put_hevc_uni_qpel_v%1_%2, 7, 14, 15 , dst, dststride, src, srcstrid
|
|||||||
jnz .loop ; height loop
|
jnz .loop ; height loop
|
||||||
RET
|
RET
|
||||||
|
|
||||||
cglobal hevc_put_hevc_bi_qpel_v%1_%2, 9, 14, 16 , dst, dststride, src, srcstride, src2, src2stride, height, r3src, my, rfilter
|
cglobal hevc_put_hevc_bi_qpel_v%1_%2, 9, 11, 16, dst, dststride, src, srcstride, src2, src2stride, height, r3src, my, rfilter
|
||||||
movdqa m9, [pw_bi_%2]
|
movdqa m9, [pw_bi_%2]
|
||||||
lea r3srcq, [srcstrideq*3]
|
lea r3srcq, [srcstrideq*3]
|
||||||
QPEL_FILTER %2, my
|
QPEL_FILTER %2, my
|
||||||
.loop
|
.loop
|
||||||
SIMPLE_BILOAD %1, src2q, m10, m11
|
SIMPLE_BILOAD %1, src2q, m10, m11
|
||||||
QPEL_V_LOAD %2, srcq, srcstride, %1
|
QPEL_V_LOAD %2, srcq, srcstride, %1, r10
|
||||||
QPEL_COMPUTE %1, %2
|
QPEL_COMPUTE %1, %2
|
||||||
%if %2 > 8
|
%if %2 > 8
|
||||||
packssdw m0, m1
|
packssdw m0, m1
|
||||||
|
Loading…
Reference in New Issue
Block a user