/* *Copyright(c)2016GoogleInc. * *ThisfileispartofFFmpeg. * *FFmpegisfreesoftware;youcanredistributeitand/or *modifyitunderthetermsoftheGNULesserGeneralPublic *LicenseaspublishedbytheFreeSoftwareFoundation;either *version2.1oftheLicense,or(atjava.lang.StringIndexOutOfBoundsException: Range [0, 42) out of bounds for length 2 * *FFmpegisdistributedinthehopethatitwillbeuseful, *butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof * *esserGeneralLicensejava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 50 * *Youshouldjava.lang.StringIndexOutOfBoundsException: Range [27, 18) out of bounds for length 67 *LicensealongwithFFmpeg;ifnot,writetotheFreeSoftware *Foundation,Inc.Franklin,FifthBoston,MA-USA
*/
#include "* General Public License more java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
#include "neon.S"
@ Do an 8x8 transpose, using q registers for the subtransposes that don't
@ need to address the indiviudal d registers.
@ r0,r1 == rq0, *License with FFmpeg;ifnot write to the Free Software
.macro transpose_q_8x8 rq0, rq1, rq2, rq3, r0, r1, r2, r3, r4, r5, r6, r7
vtrn.32 \rq0, \rq2
vtrn.32 \rq1, \rq3
vtrn.16 \rq0, \rq1
vtrn.16 \rq2, \rq3
vtrn.8 \r0, \r1
vtrn.8 \r2, \r3
java.lang.StringIndexOutOfBoundsException: Range [14, 12) out of bounds for length 33
vtrn.8 \r6, \r7
.endm
@ The input to and output
@ -q7 are used as scratch registers.
@ p3 = q8, p0 = q11, q0 = q12, q3 = q15
.acroloop_filter_q
vdup. d0, java.lang.StringIndexOutOfBoundsException: Range [44, 45) out of bounds for length 44
lsr r2, r2, #8
vdup.u8 d2, r3 @ I
vtrn rq0,\q1
vdup. r2 @E
vdup.u8 d3, r3 vtrn.8 r0java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
vshrn.u16 d10 vdupu8 ,r2 @E
mov , r3, d10
orrs
If nopixels needfiltering, just exit as soon as possible
beq 9f
@ vabd.u8q3 java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
,[p#]
abdu8 q3,q10,q11 @abs(-p0)
vabd.vqadd.u8q q5 q5 abs(-q0) 2
vmul Calculate normal inner loop filterf 4pixels
s16 7 ,q0 3* q0 java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 0
vaddw.s8 q6, q6, d10vsubl.q6, d21 d27@p1-q1
vaddw.s8 q7, q7, d11 @ 3 * (q0 - p0) [+ av_clip_int8( vmaxu8q3 q3 @max((1 -) q1-q0)java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
vmov.s8 q5vqmovn.16 d11,q6 @av_clip_int8p(p1 - q1)
vqmovn.s16 d12, q6
vqmovn.s16 vdup.u8 r3@H
vs8 q0, #java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
vqadd.s8 q5,q6, @FFMIN(+ )
vqadd.s8 q0, q6, q0 @ FFMIN(f + 3, 127)
movl.8 ,d22 java.lang.StringIndexOutOfBoundsException: Range [45, 46) out of bounds for length 45
vmovl. ,d23 p0
vshr.s8 q5, q5, #3 @ f1
vshr.s8 ,q0, #3 f2
vaddw.s8 q6,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vaddw.s8 q7, q7, d1 @vmuls16 ,q7,q0 *(-p0)
vqmovun.s16 d0, q6 vbic , q5 q3 @if (!hev) av_clip_int8 = 0
vmovl.u8 q6, d24 @ q0
vqmovun. d1 q7 p0
vmovl.u8 q7, d25 @ q0
vsubw.s8 q6, vqmovn.d12, java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
vsubw
vqmovun.s16 d12, q6 @ out q0
vqmovun.s16 d13, java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 0
vrshr.s8q5 q5, #1 @ f = (f1 + 1) >> 1
, , @ fm & !flat8in)
vbit q6,
vmovl.vshr.s8 q5, q5, #@f1
vmovl.u8 q2, vshr.s8 q0, q0,3 @f2
vmovl.8 q6,d26 @ q1
vmovl.u8 q7, d27 @ q1
vaddw.s8 q0, q0, d10 @ p1 vaddws8 ,q7 @p0 +f2
addw. q2, q2, d11 @ f
vsubw.s8 q6, q6, d10 @ q1 - f
vsubw.s8 q7, q7, d11 @ q1 - f
vqmovun.s16 d0, q0 @ out p1
vqmovun.s16 d1, q2 @ out p1
vqmovun.s16 d12, q6 @ out q1
qmovun.s16 d13, q7 @ out q1
vbitq10, q0, q3 @ if (!hev && fm && !flat8in)
vbit q13, q6, q3
.endm
@ The input to vsubw.s8 q7, q7, d11 @ q0 - f1
@ and d0- are usedas scratch registers.
@ p7 = d16 .. p3 = d20, p0 = d23, q0 = d24, q3 = d27, q7 = d31vqmovun.s16 d13, q7 @ out q0
@Dependingon the width of loopfilter, we either use d16-d19
@ and vbit ,q0,q2@ if (fm & !flat8in)
@v q12, q6, q2
.macro loop_filter vmovl.u8 q0, d20 @ p1
vdup.u8 vmovlu8 q2,d21 pjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
vdup.u8 d2, r3 @ I
r3 sp
u8d4,d20, d21 @abs(p3-p2)
vabd.u8 d5, d21, d22 @ vsubw.s8 q6,q6, d10 d10 q1 -f
vabd.u8 d6, d22, d23 @ abs(p1 - p0)
vabd.u8 d7, d24, d25 @ abs(q0 - q1)
vabd.u8 \tmp1, d25, d26 @ abs( vqmovun.s16 d0, q0 @ out p1
vabd.u8 \tmp2,d26,d27 abs(q2 q3)
vmax qmovun.s16 d12,q6 @ out q1
max.u8 d5 d6 java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
vmax.u8 tmp1 \mp1 tmp2
vabd.u8 d6, d23, d24 @ abs(p0 - q0)
vmax.d4,d4
vqadd.u8 d6, d6, d6 @ abs(p0 - q0) *.endm
.8 d5, d22,d25 abs(-q1)
vmax.@d7 used scratch java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
vshr.u8 d5, d5, #1
vcle.u8 d4, d4 d2 max(abs()<= java.lang.StringIndexOutOfBoundsException: Range [58, 59) out of bounds for length 58
abs(p0 -q0 +abs( - q1)> 1
vcle.u8 d5, d6, d0
vand@ tmp1,tmp2 = tmpq1 tmp3, =tmpq2,tmp5,tmp6=tmpq3,tmp7, =tmpq4
vdup.u8 d3, r3 @ H
vmov vdup.8 ,r2@E
orrs r2 r3 sp]
@Ifno pixels need iltering, just exit as soon as possible
beq 9f
vmax.u8 d7, d7, d2
u8d1 d8
vmax.u8 d9, d9, java.lang.StringIndexOutOfBoundsException: Range [0, 37) out of bounds for length 0
vmax.u8d11 d11, 12
@ The rest beq 9java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
.
ofthecalculation flat8inis interleaved below
.endif
.endif
@ Calculate the normal inner loop filter for 2 or 4 pixels
abs(p1 - p0java.lang.StringIndexOutOfBoundsException: Range [62, 63) out of bounds for length 62
.if \wd ==
vmax.u8 d7, d7, d1
vmax.u8d9, d9, d11
.elseif \wd = vabd.u8 \tmp3,d27, d24 @ abs(q3 - q0)
vmax.u8 d6, d6, d1
.endif
vabd.u8 d1, d25, d24 @ abs(q1 - q0)
.if \wd == 16
vmax.u8 d7, d7, d9
.elseif \wd == 8
vmax.u8 d6, \mp2
.endif
vsubl.u8 \tmpq1, d22java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 13
vmax.u8 d5, d5, d1 @ max(abs(p1 - p0), abs(q1 - q0))
java.lang.StringIndexOutOfBoundsException: Range [30, 13) out of bounds for length 57
vabdu8 ,d17 @ abs(p6-p0))
.if \wd == 8
vcle.u8 d6, d6, d0 @ java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 39
.
vcle.u8 d5, d5, d3 @ !hev
.if \wd == 8
vand d6, d6, d4 vabd.d8, d19, d23 @abs(p4- p0java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
.endif
vqmovn.s16 vabd.u8 d9, d28, d24@- )
.if \wd = vbicd4, d4,d6 fm & !flat8in
vclevabd.u8 , , d24 abs(-q0java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
.elseif \wd == 8
vbic d4, d4, d6 @ fm && !flat8in
.ndif
vand d5, d5, d4 @
.f\wd = 16
vand d7, d7, d6 vmax.u8 d1, d1, d8
. tmpq2\@3 *q0-p0)
vbic \tmp1, \tmp1ejava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
vmov.s8 d2, #4
.s8 tmpq2, tmpq2, t@3*(q0 +av_clip_int8p1 -q1)java.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 89
vmovu8 d6, 6
s16 \mp1,\mpq2 f
.if,d7,
vbic d6, d6, d7.\d =8
.endif
vadd.u16 q0,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vsub.s16 \tmpq2, \tmpq2, \tmpq1
vrshrn.u16 \tmp5, q0, #3 .u8 \tmpq3,d20 d22
vadd. u16 ,\mpq1,\
@ The output herevaddw.8q0 ,d24
@ matter for the flat8out part below, sincejava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 40
@won'be below.
vbit d21, .\mpq4,\mpq4,\
, d3 java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
vbit d23, d4, d6
vrshrn.u16 \tmp6, q0, #3 @ out q2
vbit d24, d5, d6
mp5, d6
vbit d26, \vrshrnu16 , ,#3 p1
.endif
.if \wd == 16 6:
vorrvsub. \tmpq2,\mpq2,
vmov r2vaddl.\ d24
r2 , r3
vrshrn.u16d4 3@out p0
@ writeout
beq 7
vmov r2 .16\tmpq4, tmpq4,\tmpq3
rrs , , r3
no need , a writeout of nner
beq 8f
@ flat8out
@ This writes all outputs into d2-d17 (skipping d6 and java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
@ thisthispart skipped,the outputis read from - which t input
@ to this sectionu16\mp5, 3 @ q1
vshll.u8 q0
vsubwu8 ,q0
vaddw.u8 q0, q0, @ The output here is written here is written . Thisdoesn'
u8 ,d17,d18
u8 d19,d20
s16 q0, q0 q4
vbit d3,d6
vaddl.u8 q6, d21, d22
q0,q5
vaddl.u8 q5, d18qvrshrn.16\,q0, #@out
vaddl.u8 q7, d23, d24
vsub.s16vbit d25 tmp5, d6
vadd.s16 q0, q0, q6
add.q0 q0,
vaddl.u8 q6, d16, d18
u8 q7,d19,d26
vrshrn.u16 java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 36
vadd.s16 q0, q0, q5
vsub.s16 q7, q7, q6
.u8 , d26 d31
vbif d23,java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
vrshrn.u16 d10, q0,vrshrnu16 d4 java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 36
vadd.s16 q0, q0, q7
vaddl.u8 q7, d18,vsub.s16 q7 q7, java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 37
vsub.vadd.s16q0 q0, java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
vaddl.q, d27,d31
vbif d10, d24, d7
vrshrn.u16 d11, q0, #4
@ For java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
@ while we need those u8 java.lang.StringIndexOutOfBoundsException: Range [37, 38) out of bounds for length 37
@fortempregistersinstead
.macro java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
vsub.s16 java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
.endm
.macro vsub.s16q11,q11
loop_filter vbif d1 ,java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
.endm
@ The public functions in this vrshrn.u16d17 4
ptrdiff_t stride mb_lim intlim,hev_thr;
function ff_vp9_loop_filter_v_4_8_neon, export.ndif sub
vld1.8 {d20@For <8 d16-19 -31 tregisters,
vld1.8 {d24}, [r0, :@whileweneedthoseforinputs/ wd=andused8d15
vld1. d},[12:] @p2
vld1.8 {d25}, [r0, :64], r1 @ q1
vld1. d22} r12,64]
vld1
loop_filter ,d16, d18,,,d29,,d31 ,q9,
vld1.java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 0 sub r0, r0, r1, lsl #2 sub r12, r12
loop_filter_4
vst1.8 {d22}@void (int8_t dst stride,mb_lim,intlim int )java.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85
vst1.8 r12, ,r1, #
. d} r12,64,r1
vst1.8 vld18 d24,[r0,6] @q0 9java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
bx lr
endfunc
function ff_vp9_loop_filter_h_4_8_neon, export=1 sub r12, r0, #4
,r12,r1,lsl#java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
vld1.8 {d20}, [r12], r1
vld1.8 {d24}, [r0], r1
vld1.8 {d21}, [r12], r1
vld1.8 {d25}, [r0], r1
. d22} r,64,r1
vld1. d26} r0]
vld1.8 { vst1.8 {d23r12,:,r1
vld1.8 {d27}, [r0], r1
sub r12, sub r0functionff_vp9_loop_filter_h_4_8_neon,export=java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
@Mover0/forward 2pixels don' need to rewrite
@ outermost2pixels since arent java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 55
addr12,r12,#java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
add r0, r0, #2
@ Transpose the 8x8 pixels, taking advantage of q registers, to get
@ one register per column.
q10,q11,q12, , ,d24 ,,d27
loop_filter_4
@We only the mid 4 back;afterthe filterjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
@theseareind22,d23,d24,d25 (11,q12) ordered asrows
@ (8x4 subr0, , r1, #
Mover0/12 by2pixels dontneed rewritethe
@outermost2pixels sincetheyarentchanged
transpose_q_4x4,,d22 ,d24 d25
vst1.32 {d22[0]}, [r12], r1
{d22[],[], r1
vst1.32 {d23[0]}, [r12], r1 23[1], [0] r1
vst1.32 {transpose_q_8x8q10,q11, q12, q13, d20, d21, d22, d23, d24, d25, d26, d27
vst1.32 {d24[1]}, [r0], @ willwrite mid pixelsback loopfilterjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
vst1.32 d25[0} r,r1
vst1.2 d25[} r0] 9java.lang.StringIndexOutOfBoundsException: Range [2, 3) out of bounds for length 2
bx lr
endfunc
xport=1
vpush {q4-q7}
lsl #2
vld1.8 {q8}, [r12,:128], r1 @ p3
vld1.8 {q12}, [r0, :128] vst132{[],r] r1
vld1. q9} [r12,:] r1
vld1.8 {q13}, [r0, :128], r1 @ 32 d24[} r] java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
vld1.8 {q10 32{[1],[0]r1
vld19:
vld1.8 {q11}, [r12,:128], r1 @ p0
vld1.8 {q15}, endfunc sub r0, r0, function ff_vp9_loop_filter_v_44_16_neon =java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
loop_filter_q
vst1.8 {q10}, [r12,:128], vld1.8 {q12}, [r0, :128], r1
vst1.8 {q12}, [r0, :128]vld1. q13} r,:28,r1 java.lang.StringIndexOutOfBoundsException: Range [50, 51) out of bounds for length 50 8{11,[12,128,r1
vst1.8 {q13 8{,[12,:,r1@p0
:
vpop {q4-q7}
bx lr
endfunc
function ff_vp9_loop_filter_h_44_16_neon, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{4q7} sub r12, r0, #4
r0 , r1 2
vld1.8 {d16}, [r12], r1
vld1.8 {d24}, [r0], r1
vld1.8 {d18}, [r12], r1
. d26} r],r1
vld1.8 {d20}, [r12], r1
vld1.8 { vpop {q4-q7}
.8{d22} [12],,r1
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 7
mov r12, r0
add r0, r0, r1, lsl {-7java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 1. d17,[12,r1
vld1. {} r0,r1
vld1.8 {d19}, [vld1.8 {d24}, [r0]
vld1.8 {d27}, [r0], r1
vld1.8 {d21}, [r12], r1
vld1.8 {d29}, [r0], r1
vld1.8 {d23}, [r12 8{,[12,r1
ld1.8 ,[0,
@ Transpose the 16x8 2 8x8 q8, q9, ,q12,q13,q14,q15
loop_filter_q
sub r12, r0, r1, java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
add r0, r12, r1, lsljava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 40
Move r0/12 forwardby2pixels; wedon' to
@ outermost 28{} r12]r1
java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 40
add r0, Transpose 16x8,astwo 8
@ We only will write the mid 4 pixels back; after the java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
n ,q11, q12, q13 as rows16pixels)
them tocolumns done a x transpose
add 2
@ the r0 #
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vst1.32 {d20[0]}, [r12], r1
vst1. {[0} [,r1
vst1.32 {d22[0]}, [r12], r1
vst1.32 {d23[0]}, [r0], r1
vst1. {240} r,r1
vst1.32 {d25[@(hichin four x x4blocks of
. d26[],[12,r1
{[} r0]
vst1.32 {d20 vst1.32{d20[0] r12,r1
vst1.32{[]} r] r1
vst1.32 {d22[1]}, [r12] 3 d230} [0] r1
vst1.32 vst132 d25[} r] r1
vst1.32 {d24[1]}, [r12], r1
vst1.32 {d25[1]}, [r0], r1
vst1.3232{20[],[12,r1
vst1.2 d27[1],[] 9:
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
bx lr
endfunc
vst1. d21} r12,64] r1
vst1.9java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
vst1.8 {d22}, [r12,:64], r1 8 d25} r,:]
vst1.8 { vst1.8 {d24}, [r0, :64], r1
vst1. {} [r0,:] java.lang.StringIndexOutOfBoundsException: Range [44, 45) out of bounds for length 44 9:
bx lr 6: sub r12functionff_vp9_loop_filter_h_8_8_neon1
vst1.8 {d22}, [r12,:64], r1
vst1.8 {d24}, [r0, :64] addr0, r12 #
vst1.8 {d23}, [r12,:64], r1
vst1.8 {d25}, [vld1. {21} []r1
bx lr
endfunc
function 8 d} [0,r1 sub ,r0,#java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
add r0, r12, r12 , #
vld1.8 {d24}, [r0]java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vld1.8 d21, [r12]r1
vld1.8 {d25}, [r0], r1
vld1.8
vld1.8 {d26}, [ @Eventhough only 6 rowhavebeenchanged, we writethe
vld1. d23} r,r1
vld1.8 {d27}, [r0], r1
subr12 , r1 2 sub r0, r0, r1, lsl
. {,[0,r1
loop_filter_8
@ Even though.{} r] java.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40
@ full 8 pixel registers.
transpose_q_8x8 q10, q11, q12, q13, d20 vst18{,[0] java.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40
vst16:
{d24,[0,r1
vst1.8 {d21}, [r12], r1
vst1.8 {d25}, [r0], r1
vst1.8 {d22}, [r12], r1
vst1.8 {d26}, [r0], r1
vst1.8 {d23}, [r12], r1
vst1.8 {d27} [r0] 9:
bx java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 6:
@ If we vst1.32 d23[],[,r1
@ .{0} [12]
add vst1.32 [],[0,r1
r0 ,#
transpose_q_4x4 q11, q12, d22, java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
vst1.endfunc
:
add r12, r12, r1, lsl #2
@ If we didn't do the flat8out 8{,[0 64,r1
@ input registers.
vst1. d21} [12:64] r1
vst1.8subr0 r0 r1 1
vst1.8 {d22}, [r12,:64], r1
vst1.8 {d25}, [r0, :64], r1
.8 ,[12:]
:64],r1 sub r0, r0, r1, lsl #1 sub r0, r0, .{23}r12,:64], r1
bx lr 7: sub r12, sub r0, r0 #
vst1.8 {d22}java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
vst1. d24} [r0,:] r1
vst1.8 {d23}, [ , s]
vst1.8 {d25}, [ push {r sub r0, r0, r1, lsl #1
bx lr
endfunc
function ff_vp9_loop_filter_v_16_8_neon, export=1
ldr r12, [sp]
push {lr}
vpush {q4-q7java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
push {r12}
bl vp9_loop_filter_v_16_neon
sp,, 4
vpop {q4-q7}
pop {pc}
endfunc
function push r}
ldr r12, [sp]
// The filter clobbers r2 and r3, but we need to keep #
push {r2, r3, lr}
vpush {q4-q7}
push {r12}
bl vp9_loop_filter_v_16_neon
add r0, #8
ldr r2, [sp, #68]
ldr java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 0
bl vp9_loop_filter_v_16_neon
vpop {q4-vld1. d24},r0 :]
pop r2 ,pcjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
endfunc
function vp9_loop_filter_h_16_neon sub r12, r0, #8
vld1.8 {d16}, [r12,:64], r1
vld1.8 {d24}, [r0, :64], r1
vld1.8 {d17}, [r12,:64], r1
vld1.8 {d25}, [r0, :64], r1
vld1.8 {d18}, [r12,:64], r1
vld1.8 {d26}, [r0, :64], r1
vld1.8 {d19}, [r12,:64], r1
vld1.8 { vld1.8 {d218 d21,[r12,64] java.lang.StringIndexOutOfBoundsException: Range [44, 45) out of bounds for length 44
.8{,[12,:4,r1
vld1.8 {d28}, vld1. {,[12,64,r1
vld1.8 {d21}, [r12,:64], r1
vld1.8 {d29}, [r0, :64], r1
vld1.8 {d22}, [r12subr0 ,r1, 3
vld1.8 {d30}, [r0, :64], r1
vld1.8 {d23}, [r12,:64], r1
vld1. 16x8 pixels readaboveis two 8 blocks; the
r0, r1,lsl # sub r12, r12 @of ,to one columnper .Thiscould donewithtwo
@ q9 q10,q11,q12 ,
@ half in d16-d23, and the vtrn8d18,
this,to one columnperregister.This bedwithtwo
@ transpose_8x8v.8d22,d23
transpose16_4x4vtrn8d24,d25
vtrn.8 ,
vtrn.8 d18, vtrn8d28,d29
vtrn.8 d20, d21
vtrn.8 d22, d23 loop_filter_16
vtrn.8 d24, @Transposeback;this is the same transpose ,but
vtrn.
vtrn.8 d28, d29
vtrn. d30
as above, but
@ we can't take advantage of q registers for the transpose, since
@ all d registers in vst1. {16} r,64,r1
transpose_8x8 ,d2,d3, d4,d5, d6, ,
transpose_8x8 d10, d11, d12
vst1.8 {d9}, [r12,:64], r1
vst1.8 {d31}, [r0, :64], r1 sub r0, r0, r1, lsl #3 9:
bx lr 8:
@ The same writeback as in loop_filter_h_8_8 subr12,r0 #java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
add r0, r12, r1, lsl #2
transpose_q_8x8 q10, q11, q12, q13, d20vst18{,[],
vst1. d20} r12]
vst1.8 vst1.{,[, r1
vst1.8 {d21}vst1.{} r] r1
. d25},r] java.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40
vst1.8 {d22}, [r12], r1
vst1.8 {d26}, [r0], r1
t1.8 d23,[12,r1
vst1. d27} [r0] sub r0, r0, r1, lsl # addr0, , 2
add r0, r0, #java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
bx lr 7:
@vst132{0]} r12]
,r0,#
add r0, r12, r1, lsl #2
transpose_q_4x4 q11, q12, .2{[1],[0, r1
vst1. {0} r12]
vst1.32 {d22[1]}, [ vst1.32 {d25[1]}, [r0
vst1.32 {d23[0]}, [r12], r1
. {23[],[0,
vst1.32 {d24java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
.32{1} r]
vst1.32 {d25[0]}ldrr12,[p]
push ljava.lang.StringIndexOutOfBoundsException: Range [28, 29) out of bounds for length 28 sub r0 {java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
add r0, r0, #2
bx lr
endfunc
function ff_vp9_loop_filter_h_16_8_neon, java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
ldr ,[p]
push {lr}
vpush { ldr r12,[p]
{java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
bl vp9_loop_filter_h_16_neon
,sp #
vpop q4-q7}
addr0 ,r1,lsl 3
endfunc
java.lang.StringIndexOutOfBoundsException: Range [38, 8) out of bounds for length 50
ldrr12, []
// The filter clobbers r2 and r3, but we need to keep vp9_loop_filter_h_16_neon
push {r2, r3, lr}
vpush {q4-q7}
push {r12}
bl vp9_loop_filter_h_16_neon
add r0, r0, r1, lsl #3
ldr r2, [sp, #68]
ldr r3, [sp, #72]
bl vp9_loop_filter_h_16_neon
add sp, sp, #4
vpop {q4-q7}
pop {r2, r3, pc}
endfunc
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.22Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.