You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	x86: hevc_mc: fewer xmm regs used in epel h/v
11 xmm regs seem only required for avx2. Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
				
					committed by
					
						 Michael Niedermayer
						Michael Niedermayer
					
				
			
			
				
	
			
			
			
						parent
						
							a9dc94c39c
						
					
				
				
					commit
					398f531915
				
			| @@ -730,7 +730,13 @@ cglobal hevc_put_hevc_bi_pel_pixels%1_%2, 6, 6, 6, dst, dststride, src, srcstrid | ||||
|  | ||||
|  | ||||
| %macro HEVC_PUT_HEVC_EPEL 2 | ||||
| cglobal hevc_put_hevc_epel_h%1_%2, 5, 6, 11, dst, src, srcstride, height, mx, rfilter | ||||
| %if cpuflag(avx2) | ||||
| %define XMM_REGS  11 | ||||
| %else | ||||
| %define XMM_REGS  8 | ||||
| %endif | ||||
|  | ||||
| cglobal hevc_put_hevc_epel_h%1_%2, 5, 6, XMM_REGS, dst, src, srcstride, height, mx, rfilter | ||||
| %assign %%stride ((%2 + 7)/8) | ||||
|     EPEL_FILTER       %2, mx, m4, m5, rfilter | ||||
| .loop | ||||
| @@ -740,7 +746,7 @@ cglobal hevc_put_hevc_epel_h%1_%2, 5, 6, 11, dst, src, srcstride, height, mx, rf | ||||
|     LOOP_END         dst, src, srcstride | ||||
|     RET | ||||
|  | ||||
| cglobal hevc_put_hevc_uni_epel_h%1_%2, 6, 7, 11, dst, dststride, src, srcstride, height, mx, rfilter | ||||
| cglobal hevc_put_hevc_uni_epel_h%1_%2, 6, 7, XMM_REGS, dst, dststride, src, srcstride, height, mx, rfilter | ||||
| %assign %%stride ((%2 + 7)/8) | ||||
|     movdqa            m6, [pw_%2] | ||||
|     EPEL_FILTER       %2, mx, m4, m5, rfilter | ||||
| @@ -755,7 +761,7 @@ cglobal hevc_put_hevc_uni_epel_h%1_%2, 6, 7, 11, dst, dststride, src, srcstride, | ||||
|     jnz               .loop                      ; height loop | ||||
|     RET | ||||
|  | ||||
| cglobal hevc_put_hevc_bi_epel_h%1_%2, 7, 8, 11, dst, dststride, src, srcstride, src2, height, mx, rfilter | ||||
| cglobal hevc_put_hevc_bi_epel_h%1_%2, 7, 8, XMM_REGS, dst, dststride, src, srcstride, src2, height, mx, rfilter | ||||
|     movdqa            m6, [pw_bi_%2] | ||||
|     EPEL_FILTER       %2, mx, m4, m5, rfilter | ||||
| .loop | ||||
| @@ -777,7 +783,7 @@ 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, 4, 6, 11, dst, src, srcstride, height, r3src, my | ||||
| cglobal hevc_put_hevc_epel_v%1_%2, 4, 6, XMM_REGS, dst, src, srcstride, height, r3src, my | ||||
|     movifnidn        myd, mym | ||||
|     sub             srcq, srcstrideq | ||||
|     EPEL_FILTER       %2, my, m4, m5, r3src | ||||
| @@ -789,7 +795,7 @@ cglobal hevc_put_hevc_epel_v%1_%2, 4, 6, 11, dst, src, srcstride, height, r3src, | ||||
|     LOOP_END          dst, src, srcstride | ||||
|     RET | ||||
|  | ||||
| cglobal hevc_put_hevc_uni_epel_v%1_%2, 5, 7, 11, dst, dststride, src, srcstride, height, r3src, my | ||||
| cglobal hevc_put_hevc_uni_epel_v%1_%2, 5, 7, XMM_REGS, dst, dststride, src, srcstride, height, r3src, my | ||||
|     movifnidn        myd, mym | ||||
|     movdqa            m6, [pw_%2] | ||||
|     sub             srcq, srcstrideq | ||||
| @@ -807,7 +813,7 @@ cglobal hevc_put_hevc_uni_epel_v%1_%2, 5, 7, 11, dst, dststride, src, srcstride, | ||||
|     RET | ||||
|  | ||||
|  | ||||
| cglobal hevc_put_hevc_bi_epel_v%1_%2, 6, 8, 11, dst, dststride, src, srcstride, src2, height, r3src, my | ||||
| cglobal hevc_put_hevc_bi_epel_v%1_%2, 6, 8, XMM_REGS, dst, dststride, src, srcstride, src2, height, r3src, my | ||||
|     movifnidn        myd, mym | ||||
|     movdqa            m6, [pw_bi_%2] | ||||
|     sub             srcq, srcstrideq | ||||
|   | ||||
		Reference in New Issue
	
	Block a user