@ -40,75 +40,89 @@ function ff_clear_blocks_neon, export=1
bx l r
bx l r
endfunc
endfunc
.macro pixels16 a vg=0
.macro pixels16 rnd=1 , a v g =0
.if \ avg
.if \ avg
mov i p , r0
mov r12 , r0
.endif
.endif
1 : vld1 . 6 4 { d0 , d1 } , [ r1 ] , r2
1 : vld1 . 6 4 { q0 } , [ r1 ] , r2
vld1 . 6 4 { d2 , d3 } , [ r1 ] , r2
vld1 . 6 4 { q1 } , [ r1 ] , r2
vld1 . 6 4 { d4 , d5 } , [ r1 ] , r2
vld1 . 6 4 { q2 } , [ r1 ] , r2
pld [ r1 , r2 , l s l #2 ]
pld [ r1 , r2 , l s l #2 ]
vld1 . 6 4 { d6 , d7 } , [ r1 ] , r2
vld1 . 6 4 { q3 } , [ r1 ] , r2
pld [ r1 ]
pld [ r1 ]
pld [ r1 , r2 ]
pld [ r1 , r2 ]
pld [ r1 , r2 , l s l #1 ]
pld [ r1 , r2 , l s l #1 ]
.if \ avg
.if \ avg
vld1 . 6 4 { d16 ,d17 } , [ i p ,: 1 2 8 ] , r2
vld1 . 6 4 { q8 } , [ r12 ,: 1 2 8 ] , r2
vrhadd. u 8 q0 , q0 , q8
vrhadd. u 8 q0 , q0 , q8
vld1 . 6 4 { d18 ,d19 } , [ i p ,: 1 2 8 ] , r2
vld1 . 6 4 { q9 } , [ r12 ,: 1 2 8 ] , r2
vrhadd. u 8 q1 , q1 , q9
vrhadd. u 8 q1 , q1 , q9
vld1 . 6 4 { d20 ,d21 } , [ i p ,: 1 2 8 ] , r2
vld1 . 6 4 { q10 } , [ r12 ,: 1 2 8 ] , r2
vrhadd. u 8 q2 , q2 , q10
vrhadd. u 8 q2 , q2 , q10
vld1 . 6 4 { d22 ,d23 } , [ i p ,: 1 2 8 ] , r2
vld1 . 6 4 { q11 } , [ r12 ,: 1 2 8 ] , r2
vrhadd. u 8 q3 , q3 , q11
vrhadd. u 8 q3 , q3 , q11
.endif
.endif
subs r3 , r3 , #4
subs r3 , r3 , #4
vst1 . 6 4 { d0 , d1 } , [ r0 ,: 1 2 8 ] , r2
vst1 . 6 4 { q0 } , [ r0 ,: 1 2 8 ] , r2
vst1 . 6 4 { d2 , d3 } , [ r0 ,: 1 2 8 ] , r2
vst1 . 6 4 { q1 } , [ r0 ,: 1 2 8 ] , r2
vst1 . 6 4 { d4 , d5 } , [ r0 ,: 1 2 8 ] , r2
vst1 . 6 4 { q2 } , [ r0 ,: 1 2 8 ] , r2
vst1 . 6 4 { d6 , d7 } , [ r0 ,: 1 2 8 ] , r2
vst1 . 6 4 { q3 } , [ r0 ,: 1 2 8 ] , r2
bne 1 b
bne 1 b
bx l r
bx l r
.endm
.endm
.macro pixels16_x2 vhadd=vrhadd . u 8
.macro pixels16_x2 rnd=1 , a v g =0
1 : vld1 . 6 4 { d0 - d2 } , [ r1 ] , r2
1 : vld1 . 6 4 { d0 - d2 } , [ r1 ] , r2
vld1 . 6 4 { d4 - d6 } , [ r1 ] , r2
vld1 . 6 4 { d4 - d6 } , [ r1 ] , r2
pld [ r1 ]
pld [ r1 ]
pld [ r1 , r2 ]
pld [ r1 , r2 ]
subs r3 , r3 , #2
subs r3 , r3 , #2
vext. 8 q1 , q0 , q1 , #1
vext. 8 q1 , q0 , q1 , #1
\ vhadd q0 , q0 , q1
avg q0 , q0 , q1
vext. 8 q3 , q2 , q3 , #1
vext. 8 q3 , q2 , q3 , #1
\ vhadd q2 , q2 , q3
avg q2 , q2 , q3
vst1 . 6 4 { d0 , d1 } , [ r0 ,: 1 2 8 ] , r2
.if \ avg
vst1 . 6 4 { d4 , d5 } , [ r0 ,: 1 2 8 ] , r2
vld1 . 8 { q1 } , [ r0 ,: 1 2 8 ] , r2
vld1 . 8 { q3 } , [ r0 ,: 1 2 8 ]
vrhadd. u 8 q0 , q0 , q1
vrhadd. u 8 q2 , q2 , q3
sub r0 , r0 , r2
.endif
vst1 . 6 4 { q0 } , [ r0 ,: 1 2 8 ] , r2
vst1 . 6 4 { q2 } , [ r0 ,: 1 2 8 ] , r2
bne 1 b
bne 1 b
bx l r
bx l r
.endm
.endm
.macro pixels16_y2 vhadd=vrhadd . u 8
.macro pixels16_y2 rnd=1 , a v g =0
vld1 . 6 4 { d0 , d1 } , [ r1 ] , r2
vld1 . 6 4 { q0 } , [ r1 ] , r2
vld1 . 6 4 { d2 , d3 } , [ r1 ] , r2
vld1 . 6 4 { q1 } , [ r1 ] , r2
1 : subs r3 , r3 , #2
1 : subs r3 , r3 , #2
\ vhadd q2 , q0 , q1
avg q2 , q0 , q1
vld1 . 6 4 { d0 , d1 } , [ r1 ] , r2
vld1 . 6 4 { q0 } , [ r1 ] , r2
\ vhadd q3 , q0 , q1
avg q3 , q0 , q1
vld1 . 6 4 { d2 , d3 } , [ r1 ] , r2
vld1 . 6 4 { q1 } , [ r1 ] , r2
pld [ r1 ]
pld [ r1 ]
pld [ r1 , r2 ]
pld [ r1 , r2 ]
vst1 . 6 4 { d4 , d5 } , [ r0 ,: 1 2 8 ] , r2
.if \ avg
vst1 . 6 4 { d6 , d7 } , [ r0 ,: 1 2 8 ] , r2
vld1 . 8 { q8 } , [ r0 ,: 1 2 8 ] , r2
vld1 . 8 { q9 } , [ r0 ,: 1 2 8 ]
vrhadd. u 8 q2 , q2 , q8
vrhadd. u 8 q3 , q3 , q9
sub r0 , r0 , r2
.endif
vst1 . 6 4 { q2 } , [ r0 ,: 1 2 8 ] , r2
vst1 . 6 4 { q3 } , [ r0 ,: 1 2 8 ] , r2
bne 1 b
bne 1 b
bx l r
bx l r
.endm
.endm
.macro pixels16_xy2 vshrn=vrshrn . u 1 6 n o _ r n d =0
.macro pixels16_xy2 rnd=1 , a v g =0
vld1 . 6 4 { d0 - d2 } , [ r1 ] , r2
vld1 . 6 4 { d0 - d2 } , [ r1 ] , r2
vld1 . 6 4 { d4 - d6 } , [ r1 ] , r2
vld1 . 6 4 { d4 - d6 } , [ r1 ] , r2
.if \ no_ r n d
.ifeq \ rn d
vmov. i 1 6 q13 , #1
vmov. i 1 6 q13 , #1
.endif
.endif
pld [ r1 ]
pld [ r1 ]
pld [ r1 , r2 ]
pld [ r1 , r2 ]
vext. 8 q1 , q0 , q1 , #1
vext. 8 q1 , q0 , q1 , #1
@ -118,109 +132,129 @@ endfunc
vaddl. u 8 q9 , d4 , d6
vaddl. u 8 q9 , d4 , d6
vaddl. u 8 q11 , d5 , d7
vaddl. u 8 q11 , d5 , d7
1 : subs r3 , r3 , #2
1 : subs r3 , r3 , #2
vld1 . 6 4 { d0 - d2 } , [ r1 ] , r2
vld1 . 6 4 { d0 - d2 } , [ r1 ] , r2
vadd. u 1 6 q12 , q8 , q9
vadd. u 1 6 q12 , q8 , q9
pld [ r1 ]
pld [ r1 ]
.if \ no_ r n d
.ifeq \ rn d
vadd. u 1 6 q12 , q12 , q13
vadd. u 1 6 q12 , q12 , q13
.endif
.endif
vext. 8 q15 , q0 , q1 , #1
vext. 8 q15 , q0 , q1 , #1
vadd. u 1 6 q1 , q10 , q11
vadd. u 1 6 q1 , q10 , q11
\ v shrn d28 , q12 , #2
shrn d28 , q12 , #2
.if \ no_ r n d
.ifeq \ rn d
vadd. u 1 6 q1 , q1 , q13
vadd. u 1 6 q1 , q1 , q13
.endif
.endif
\ vshrn d29 , q1 , #2
shrn d29 , q1 , #2
.if \ avg
vld1 . 8 { q8 } , [ r0 ,: 1 2 8 ]
vrhadd. u 8 q14 , q14 , q8
.endif
vaddl. u 8 q8 , d0 , d30
vaddl. u 8 q8 , d0 , d30
vld1 . 6 4 { d2 - d4 } , [ r1 ] , r2
vld1 . 6 4 { d2 - d4 } , [ r1 ] , r2
vaddl. u 8 q10 , d1 , d31
vaddl. u 8 q10 , d1 , d31
vst1 . 6 4 { d28 ,d29 } , [ r0 ,: 1 2 8 ] , r2
vst1 . 6 4 { q14 } , [ r0 ,: 1 2 8 ] , r2
vadd. u 1 6 q12 , q8 , q9
vadd. u 1 6 q12 , q8 , q9
pld [ r1 , r2 ]
pld [ r1 , r2 ]
.if \ no_ r n d
.ifeq \ rn d
vadd. u 1 6 q12 , q12 , q13
vadd. u 1 6 q12 , q12 , q13
.endif
.endif
vext. 8 q2 , q1 , q2 , #1
vext. 8 q2 , q1 , q2 , #1
vadd. u 1 6 q0 , q10 , q11
vadd. u 1 6 q0 , q10 , q11
\ v shrn d30 , q12 , #2
shrn d30 , q12 , #2
.if \ no_ r n d
.ifeq \ rn d
vadd. u 1 6 q0 , q0 , q13
vadd. u 1 6 q0 , q0 , q13
.endif
.endif
\ vshrn d31 , q0 , #2
shrn d31 , q0 , #2
.if \ avg
vld1 . 8 { q9 } , [ r0 ,: 1 2 8 ]
vrhadd. u 8 q15 , q15 , q9
.endif
vaddl. u 8 q9 , d2 , d4
vaddl. u 8 q9 , d2 , d4
vaddl. u 8 q11 , d3 , d5
vaddl. u 8 q11 , d3 , d5
vst1 . 6 4 { d30 ,d31 } , [ r0 ,: 1 2 8 ] , r2
vst1 . 6 4 { q15 } , [ r0 ,: 1 2 8 ] , r2
bgt 1 b
bgt 1 b
bx l r
bx l r
.endm
.endm
.macro pixels8 a vg=0
.macro pixels8 rnd=1 , a v g =0
1 : vld1 . 6 4 { d0 } , [ r1 ] , r2
1 : vld1 . 6 4 { d0 } , [ r1 ] , r2
vld1 . 6 4 { d1 } , [ r1 ] , r2
vld1 . 6 4 { d1 } , [ r1 ] , r2
vld1 . 6 4 { d2 } , [ r1 ] , r2
vld1 . 6 4 { d2 } , [ r1 ] , r2
pld [ r1 , r2 , l s l #2 ]
pld [ r1 , r2 , l s l #2 ]
vld1 . 6 4 { d3 } , [ r1 ] , r2
vld1 . 6 4 { d3 } , [ r1 ] , r2
pld [ r1 ]
pld [ r1 ]
pld [ r1 , r2 ]
pld [ r1 , r2 ]
pld [ r1 , r2 , l s l #1 ]
pld [ r1 , r2 , l s l #1 ]
.if \ avg
.if \ avg
vld1 . 6 4 { d4 } , [ r0 ,: 6 4 ] , r2
vld1 . 6 4 { d4 } , [ r0 ,: 6 4 ] , r2
vrhadd. u 8 d0 , d0 , d4
vrhadd. u 8 d0 , d0 , d4
vld1 . 6 4 { d5 } , [ r0 ,: 6 4 ] , r2
vld1 . 6 4 { d5 } , [ r0 ,: 6 4 ] , r2
vrhadd. u 8 d1 , d1 , d5
vrhadd. u 8 d1 , d1 , d5
vld1 . 6 4 { d6 } , [ r0 ,: 6 4 ] , r2
vld1 . 6 4 { d6 } , [ r0 ,: 6 4 ] , r2
vrhadd. u 8 d2 , d2 , d6
vrhadd. u 8 d2 , d2 , d6
vld1 . 6 4 { d7 } , [ r0 ,: 6 4 ] , r2
vld1 . 6 4 { d7 } , [ r0 ,: 6 4 ] , r2
vrhadd. u 8 d3 , d3 , d7
vrhadd. u 8 d3 , d3 , d7
sub r0 , r0 , r2 , l s l #2
sub r0 , r0 , r2 , l s l #2
.endif
.endif
subs r3 , r3 , #4
subs r3 , r3 , #4
vst1 . 6 4 { d0 } , [ r0 ,: 6 4 ] , r2
vst1 . 6 4 { d0 } , [ r0 ,: 6 4 ] , r2
vst1 . 6 4 { d1 } , [ r0 ,: 6 4 ] , r2
vst1 . 6 4 { d1 } , [ r0 ,: 6 4 ] , r2
vst1 . 6 4 { d2 } , [ r0 ,: 6 4 ] , r2
vst1 . 6 4 { d2 } , [ r0 ,: 6 4 ] , r2
vst1 . 6 4 { d3 } , [ r0 ,: 6 4 ] , r2
vst1 . 6 4 { d3 } , [ r0 ,: 6 4 ] , r2
bne 1 b
bne 1 b
bx l r
bx l r
.endm
.endm
.macro pixels8_x2 vhadd=vrhadd . u 8
.macro pixels8_x2 rnd=1 , a v g =0
1 : vld1 . 6 4 { d0 , d1 } , [ r1 ] , r2
1 : vld1 . 6 4 { q0 } , [ r1 ] , r2
vext. 8 d1 , d0 , d1 , #1
vext. 8 d1 , d0 , d1 , #1
vld1 . 6 4 { d2 , d3 } , [ r1 ] , r2
vld1 . 6 4 { q1 } , [ r1 ] , r2
vext. 8 d3 , d2 , d3 , #1
vext. 8 d3 , d2 , d3 , #1
pld [ r1 ]
pld [ r1 ]
pld [ r1 , r2 ]
pld [ r1 , r2 ]
subs r3 , r3 , #2
subs r3 , r3 , #2
vswp d1 , d2
vswp d1 , d2
\ vhadd q0 , q0 , q1
avg q0 , q0 , q1
vst1 . 6 4 { d0 } , [ r0 ,: 6 4 ] , r2
.if \ avg
vst1 . 6 4 { d1 } , [ r0 ,: 6 4 ] , r2
vld1 . 8 { d4 } , [ r0 ,: 6 4 ] , r2
vld1 . 8 { d5 } , [ r0 ,: 6 4 ]
vrhadd. u 8 q0 , q0 , q2
sub r0 , r0 , r2
.endif
vst1 . 6 4 { d0 } , [ r0 ,: 6 4 ] , r2
vst1 . 6 4 { d1 } , [ r0 ,: 6 4 ] , r2
bne 1 b
bne 1 b
bx l r
bx l r
.endm
.endm
.macro pixels8_y2 vhadd=vrhadd . u 8
.macro pixels8_y2 rnd=1 , a v g =0
vld1 . 6 4 { d0 } , [ r1 ] , r2
vld1 . 6 4 { d0 } , [ r1 ] , r2
vld1 . 6 4 { d1 } , [ r1 ] , r2
vld1 . 6 4 { d1 } , [ r1 ] , r2
1 : subs r3 , r3 , #2
1 : subs r3 , r3 , #2
\ vhadd d4 , d0 , d1
avg d4 , d0 , d1
vld1 . 6 4 { d0 } , [ r1 ] , r2
vld1 . 6 4 { d0 } , [ r1 ] , r2
\ vhadd d5 , d0 , d1
avg d5 , d0 , d1
vld1 . 6 4 { d1 } , [ r1 ] , r2
vld1 . 6 4 { d1 } , [ r1 ] , r2
pld [ r1 ]
pld [ r1 ]
pld [ r1 , r2 ]
pld [ r1 , r2 ]
vst1 . 6 4 { d4 } , [ r0 ,: 6 4 ] , r2
.if \ avg
vst1 . 6 4 { d5 } , [ r0 ,: 6 4 ] , r2
vld1 . 8 { d2 } , [ r0 ,: 6 4 ] , r2
vld1 . 8 { d3 } , [ r0 ,: 6 4 ]
vrhadd. u 8 q2 , q2 , q1
sub r0 , r0 , r2
.endif
vst1 . 6 4 { d4 } , [ r0 ,: 6 4 ] , r2
vst1 . 6 4 { d5 } , [ r0 ,: 6 4 ] , r2
bne 1 b
bne 1 b
bx l r
bx l r
.endm
.endm
.macro pixels8_xy2 vshrn=vrshrn . u 1 6 n o _ r n d =0
.macro pixels8_xy2 rnd=1 , a v g =0
vld1 . 6 4 { d0 , d1 } , [ r1 ] , r2
vld1 . 6 4 { q0 } , [ r1 ] , r2
vld1 . 6 4 { d2 , d3 } , [ r1 ] , r2
vld1 . 6 4 { q1 } , [ r1 ] , r2
.if \ no_ r n d
.ifeq \ rn d
vmov. i 1 6 q11 , #1
vmov. i 1 6 q11 , #1
.endif
.endif
pld [ r1 ]
pld [ r1 ]
pld [ r1 , r2 ]
pld [ r1 , r2 ]
vext. 8 d4 , d0 , d1 , #1
vext. 8 d4 , d0 , d1 , #1
@ -228,70 +262,101 @@ endfunc
vaddl. u 8 q8 , d0 , d4
vaddl. u 8 q8 , d0 , d4
vaddl. u 8 q9 , d2 , d6
vaddl. u 8 q9 , d2 , d6
1 : subs r3 , r3 , #2
1 : subs r3 , r3 , #2
vld1 . 6 4 { d0 , d1 } , [ r1 ] , r2
vld1 . 6 4 { q0 } , [ r1 ] , r2
pld [ r1 ]
pld [ r1 ]
vadd. u 1 6 q10 , q8 , q9
vadd. u 1 6 q10 , q8 , q9
vext. 8 d4 , d0 , d1 , #1
vext. 8 d4 , d0 , d1 , #1
.if \ no_ r n d
.ifeq \ rn d
vadd. u 1 6 q10 , q10 , q11
vadd. u 1 6 q10 , q10 , q11
.endif
.endif
vaddl. u 8 q8 , d0 , d4
vaddl. u 8 q8 , d0 , d4
\ v shrn d5 , q10 , #2
shrn d5 , q10 , #2
vld1 . 6 4 { d2 , d3 } , [ r1 ] , r2
vld1 . 6 4 { q1 } , [ r1 ] , r2
vadd. u 1 6 q10 , q8 , q9
vadd. u 1 6 q10 , q8 , q9
pld [ r1 , r2 ]
pld [ r1 , r2 ]
.if \ no_ r n d
.if \ avg
vld1 . 8 { d7 } , [ r0 ,: 6 4 ]
vrhadd. u 8 d5 , d5 , d7
.endif
.ifeq \ rnd
vadd. u 1 6 q10 , q10 , q11
vadd. u 1 6 q10 , q10 , q11
.endif
.endif
vst1 . 6 4 { d5 } , [ r0 ,: 6 4 ] , r2
vst1 . 6 4 { d5 } , [ r0 ,: 6 4 ] , r2
\ vshrn d7 , q10 , #2
shrn d7 , q10 , #2
.if \ avg
vld1 . 8 { d5 } , [ r0 ,: 6 4 ]
vrhadd. u 8 d7 , d7 , d5
.endif
vext. 8 d6 , d2 , d3 , #1
vext. 8 d6 , d2 , d3 , #1
vaddl. u 8 q9 , d2 , d6
vaddl. u 8 q9 , d2 , d6
vst1 . 6 4 { d7 } , [ r0 ,: 6 4 ] , r2
vst1 . 6 4 { d7 } , [ r0 ,: 6 4 ] , r2
bgt 1 b
bgt 1 b
bx l r
bx l r
.endm
.endm
.macro pixfunc pfx n a m e s u f r n d _ o p a r g s : v a r a r g
.macro pixfunc pfx, n a m e , s u f , r n d =1 , a v g =0
.if \ rnd
.macro avg rd, r n , r m
vrhadd. u 8 \ r d , \ r n , \ r m
.endm
.macro shrn rd, r n , r m
vrshrn. u 1 6 \ r d , \ r n , \ r m
.endm
.else
.macro avg rd, r n , r m
vhadd. u 8 \ r d , \ r n , \ r m
.endm
.macro shrn rd, r n , r m
vshrn. u 1 6 \ r d , \ r n , \ r m
.endm
.endif
function f f _ \ p f x \ n a m e \ s u f \ ( ) _ n e o n , e x p o r t =1
function f f _ \ p f x \ n a m e \ s u f \ ( ) _ n e o n , e x p o r t =1
\ name \ r n d _ o p \ a r g s
\ name \ r n d , \ a v g
endfunc
endfunc
.endm
.purgem avg
.purgem shrn
.endm
.macro pixfunc2 pfx n a m e a r g s : v a r a r g
.macro pixfunc2 pfx, n a m e , a v g =0
pixfunc \ p f x \ n a m e
pixfunc \ p f x , \ n a m e , r n d =1 , a v g = \ a v g
pixfunc \ p f x \ n a m e \ a r g s
pixfunc \ p f x , \ n a m e , _ n o _ r n d , r n d =0 , a v g = \ a v g
.endm
.endm
function f f _ p u t _ h26 4 _ q p e l 1 6 _ m c00 _ n e o n , e x p o r t =1
function f f _ p u t _ h26 4 _ q p e l 1 6 _ m c00 _ n e o n , e x p o r t =1
mov r3 , #16
mov r3 , #16
endfunc
endfunc
pixfunc p u t _ p i x e l s16
pixfunc p u t _ , p i x e l s16 , a v g =0
pixfunc2 p u t _ p i x e l s16 _ x2 , _ n o _ r n d , v h a d d . u 8
pixfunc2 p u t _ , p i x e l s16 _ x2 , a v g =0
pixfunc2 p u t _ p i x e l s16 _ y 2 , _ n o _ r n d , v h a d d . u 8
pixfunc2 p u t _ , p i x e l s16 _ y 2 , a v g =0
pixfunc2 p u t _ p i x e l s16 _ x y 2 , _ n o _ r n d , v s h r n . u 1 6 , 1
pixfunc2 p u t _ , p i x e l s16 _ x y 2 , a v g =0
function f f _ a v g _ h26 4 _ q p e l 1 6 _ m c00 _ n e o n , e x p o r t =1
function f f _ a v g _ h26 4 _ q p e l 1 6 _ m c00 _ n e o n , e x p o r t =1
mov r3 , #16
mov r3 , #16
endfunc
endfunc
pixfunc a v g _ p i x e l s16 ,, 1
pixfunc a v g _ , p i x e l s16 , a v g =1
pixfunc2 a v g _ , p i x e l s16 _ x2 , a v g =1
pixfunc2 a v g _ , p i x e l s16 _ y 2 , a v g =1
pixfunc2 a v g _ , p i x e l s16 _ x y 2 , a v g =1
function f f _ p u t _ h26 4 _ q p e l 8 _ m c00 _ n e o n , e x p o r t =1
function f f _ p u t _ h26 4 _ q p e l 8 _ m c00 _ n e o n , e x p o r t =1
mov r3 , #8
mov r3 , #8
endfunc
endfunc
pixfunc p u t _ p i x e l s8
pixfunc p u t _ , p i x e l s8 , a v g =0
pixfunc2 p u t _ p i x e l s8 _ x2 , _ n o _ r n d , v h a d d . u 8
pixfunc2 p u t _ , p i x e l s8 _ x2 , a v g =0
pixfunc2 p u t _ p i x e l s8 _ y 2 , _ n o _ r n d , v h a d d . u 8
pixfunc2 p u t _ , p i x e l s8 _ y 2 , a v g =0
pixfunc2 p u t _ p i x e l s8 _ x y 2 , _ n o _ r n d , v s h r n . u 1 6 , 1
pixfunc2 p u t _ , p i x e l s8 _ x y 2 , a v g =0
function f f _ a v g _ h26 4 _ q p e l 8 _ m c00 _ n e o n , e x p o r t =1
function f f _ a v g _ h26 4 _ q p e l 8 _ m c00 _ n e o n , e x p o r t =1
mov r3 , #8
mov r3 , #8
endfunc
endfunc
pixfunc a v g _ p i x e l s8 ,, 1
pixfunc a v g _ , p i x e l s8 , a v g =1
pixfunc2 a v g _ , p i x e l s8 _ x2 , a v g =1
pixfunc2 a v g _ , p i x e l s8 _ y 2 , a v g =1
pixfunc2 a v g _ , p i x e l s8 _ x y 2 , a v g =1
function f f _ p u t _ p i x e l s _ c l a m p e d _ n e o n , e x p o r t =1
function f f _ p u t _ p i x e l s _ c l a m p e d _ n e o n , e x p o r t =1
vld1 . 6 4 { d16 - d19 } , [ r0 ,: 1 2 8 ] !
vld1 . 6 4 { d16 - d19 } , [ r0 ,: 1 2 8 ] !