| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -410,15 +410,19 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // If no pixels needed flat8in nor flat8out, jump to a | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // writeout of the inner 4 pixels | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        cbz             x5,  7f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        cbnz            x5,  1f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        br              x14 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			1: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x5,  v7.d[0] | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.ifc \sz, .16b | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x6,  v7.d[1] | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        orr             x5,  x5,  x6 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // If no pixels need flat8out, jump to a writeout of the inner 6 pixels | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        cbz             x5,  8f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        cbnz            x5,  1f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        br              x15 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			1: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // flat8out | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // This writes all outputs into v2-v17 (skipping v6 and v16). | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // If this part is skipped, the output is read from v21-v26 (which is the input | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -549,35 +553,24 @@ endfunc | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			function vp9_loop_filter_8 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        loop_filter     8,  .8b,  0,    v16, v17, v18, v19, v28, v29, v30, v31 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x5,  #0 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ret | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			6: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x5,  #6 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ret | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        br              x13 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			9: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        br              x10 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			endfunc | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			function vp9_loop_filter_8_16b_mix | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        loop_filter     8,  .16b, 88,   v16, v17, v18, v19, v28, v29, v30, v31 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x5,  #0 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ret | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			6: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x5,  #6 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ret | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        br              x13 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			9: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        br              x10 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			endfunc | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			function vp9_loop_filter_16 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        loop_filter     16, .8b,  0,    v8,  v9,  v10, v11, v12, v13, v14, v15 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x5,  #0 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ret | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			7: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x5,  #7 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ret | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			8: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x5,  #8 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ret | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			9: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ldp             d8,  d9,  [sp], 0x10 | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -589,13 +582,6 @@ endfunc | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			function vp9_loop_filter_16_16b | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        loop_filter     16, .16b, 0,    v8,  v9,  v10, v11, v12, v13, v14, v15 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x5,  #0 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ret | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			7: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x5,  #7 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ret | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			8: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x5,  #8 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ret | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			9: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ldp             d8,  d9,  [sp], 0x10 | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -614,11 +600,14 @@ endfunc | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.endm | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.macro loop_filter_8 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // calculate alternative 'return' targets | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        adr             x13, 6f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        bl              vp9_loop_filter_8 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        cbnz            x5,  6f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.endm | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.macro loop_filter_8_16b_mix mix | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // calculate alternative 'return' targets | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        adr             x13, 6f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.if \mix == 48 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x11, #0xffffffff00000000 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.elseif \mix == 84 | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -627,21 +616,20 @@ endfunc | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        mov             x11, #0xffffffffffffffff | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        bl              vp9_loop_filter_8_16b_mix | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        cbnz            x5,  6f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.endm | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.macro loop_filter_16 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // calculate alternative 'return' targets | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        adr             x14, 7f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        adr             x15, 8f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        bl              vp9_loop_filter_16 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        cmp             x5,  7 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        b.gt            8f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        b.eq            7f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.endm | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.macro loop_filter_16_16b | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // calculate alternative 'return' targets | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        adr             x14, 7f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        adr             x15, 8f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        bl              vp9_loop_filter_16_16b | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        cmp             x5,  7 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        b.gt            8f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        b.eq            7f | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.endm | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |