From 4919b384214ed91c1d81b6a0541f84f0b08a76b2 Mon Sep 17 00:00:00 2001 From: Christophe Gisquet Date: Sat, 7 Feb 2015 18:49:36 +0000 Subject: [PATCH] x86: hevc_mc: fewer gpr autoloads for _v filters In that case, it's just to load my, but mx/r3src is not used. Signed-off-by: Michael Niedermayer --- libavcodec/x86/hevc_mc.asm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/libavcodec/x86/hevc_mc.asm b/libavcodec/x86/hevc_mc.asm index d830a2dfdd..8867738b9f 100644 --- a/libavcodec/x86/hevc_mc.asm +++ b/libavcodec/x86/hevc_mc.asm @@ -789,7 +789,8 @@ cglobal hevc_put_hevc_bi_epel_h%1_%2, 7, 8, 11, dst, dststride, src, srcstride, ; int height, int mx, int my, int width) ; ****************************** -cglobal hevc_put_hevc_epel_v%1_%2, 6, 7, 11, dst, src, srcstride, height, r3src, my, rfilter +cglobal hevc_put_hevc_epel_v%1_%2, 4, 7, 11, dst, src, srcstride, height, r3src, my, rfilter + movifnidn myd, mym lea r3srcq, [srcstrideq*3] sub srcq, srcstrideq EPEL_FILTER %2, my, m4, m5 @@ -800,7 +801,8 @@ cglobal hevc_put_hevc_epel_v%1_%2, 6, 7, 11, dst, src, srcstride, height, r3src, LOOP_END dst, src, srcstride RET -cglobal hevc_put_hevc_uni_epel_v%1_%2, 7, 8, 11, dst, dststride, src, srcstride, height, r3src, my, rfilter +cglobal hevc_put_hevc_uni_epel_v%1_%2, 5, 8, 11, dst, dststride, src, srcstride, height, r3src, my, rfilter + movifnidn myd, mym lea r3srcq, [srcstrideq*3] movdqa m6, [pw_%2] sub srcq, srcstrideq @@ -817,7 +819,8 @@ cglobal hevc_put_hevc_uni_epel_v%1_%2, 7, 8, 11, dst, dststride, src, srcstride, RET -cglobal hevc_put_hevc_bi_epel_v%1_%2, 8, 9, 11, dst, dststride, src, srcstride, src2, height, r3src, my, rfilter +cglobal hevc_put_hevc_bi_epel_v%1_%2, 6, 9, 11, dst, dststride, src, srcstride, src2, height, r3src, my, rfilter + movifnidn myd, mym lea r3srcq, [srcstrideq*3] movdqa m6, [pw_bi_%2] sub srcq, srcstrideq @@ -1112,7 +1115,8 @@ cglobal hevc_put_hevc_bi_qpel_h%1_%2, 7, 8, 16 , dst, dststride, src, srcstride, ; int height, int mx, int my, int width) ; ****************************** -cglobal hevc_put_hevc_qpel_v%1_%2, 6, 8, 16, dst, src, srcstride, height, r3src, my, rfilter +cglobal hevc_put_hevc_qpel_v%1_%2, 4, 8, 16, dst, src, srcstride, height, r3src, my, rfilter + movifnidn myd, mym lea r3srcq, [srcstrideq*3] QPEL_FILTER %2, my .loop @@ -1125,7 +1129,8 @@ cglobal hevc_put_hevc_qpel_v%1_%2, 6, 8, 16, dst, src, srcstride, height, r3src, LOOP_END dst, src, srcstride RET -cglobal hevc_put_hevc_uni_qpel_v%1_%2, 7, 9, 16, dst, dststride, src, srcstride, height, r3src, my, rfilter +cglobal hevc_put_hevc_uni_qpel_v%1_%2, 5, 9, 16, dst, dststride, src, srcstride, height, r3src, my, rfilter + movifnidn myd, mym movdqa m9, [pw_%2] lea r3srcq, [srcstrideq*3] QPEL_FILTER %2, my @@ -1143,7 +1148,8 @@ cglobal hevc_put_hevc_uni_qpel_v%1_%2, 7, 9, 16, dst, dststride, src, srcstride, jnz .loop ; height loop RET -cglobal hevc_put_hevc_bi_qpel_v%1_%2, 8, 10, 16, dst, dststride, src, srcstride, src2, height, r3src, my, rfilter +cglobal hevc_put_hevc_bi_qpel_v%1_%2, 6, 10, 16, dst, dststride, src, srcstride, src2, height, r3src, my, rfilter + movifnidn myd, mym movdqa m9, [pw_bi_%2] lea r3srcq, [srcstrideq*3] QPEL_FILTER %2, my