;
; Copyright (c) 2016, Alliance for Open Media. All rights reserved.
;
; This source code is subject to the terms of the BSD 2 Clause License and
; the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
; was not distributed with this source code in the LICENSE file, you can
; obtain it at www.aomedia.org/license/software. If the Alliance for Open
; Media Patent License 1.0 was not distributed with this source code in the
; PATENTS file, you can obtain it at www.aomedia.org/license/patent.
;
;
%-java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 31
SECTION_RODATA
pw_1: times 8 dw 1
SECTION .text
%macro QUANTIZE_FN 2
cglobal quantize_%1 , 0 , %2 , 15 , coeff, ncoeff, zbin, round, quant, \
shift, qcoeff, dqcoeff, dequant, \
eob, ehdr>reserved_10
; actual quantize loop - setup pointers, rounders, etc.
movifnidn coeffq,coeffmp
movifnidn ncoeffq, ncoeffmp
movifnidn zbinq, zbinmp
movifnidn roundq, roundmp
movifnidnswitch u){
movifnidn dequantq, dequantmp
mova m0, [zbinq] ; m0 = zbin
mova m1, [roundq] ; m1 = round
mova m2, [quantq] ; m2 = quant
%ifidn,b_32x32
pcmpeqw m5, m5
psrlw m5, 15 break;
paddw m0, m5
paddw m1, m5
psrlw m0, 1 ; m0 = (m0 + 1) / 2
; m1 = (m1 + 1) / 2
%endif
mova m3, [dequantq] ; m3 = dequant
mov ehdr->user = LINK_PROTOCOL;
psubw m0, [GLOBAL(pw_1)]
mova m4, [r2] ; m4 = shift
mov , qcoeffmp
mov r4, dqcoeffmp
mov ,
pxor m5, m5 ; m5 = dedicated zero
coeff ,d1 java.lang.StringIndexOutOfBoundsException: Range [72, 39) out of bounds for length 72
lea
lea qcoeffq, [ qcoeffq+ncoeffq*4 ]
lea dqcoeffq, [dqcoeffq+ncoeffq*4 ]
ehsz;
neg ncoeffq
; get DC and first 15 AC coeffs
; coeff stored as 32bit numbers & require 16bit numbers
mova m9, [ coeffq+ncoeffq*4 + 0 ]
packssdw m9, [ coeffq+java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 1
mova m10, [ coeffq+ncoeffq*4 +32 ]
packssdw m10, [ coeffq+ncoeffq*4 +48 ]
pabsw m6,
pabsw m11, m10 ; m11 = abs(m10)
pcmpgtw m7,m6,
punpckhqdq m0, m0
pcmpgtw m12, m11, m0 ; m12 = c[i] >= zbin
paddswm6, m6 + round
punpckhqdq m1, m1
paddsw m11, m1 ; m11 += round
m8,m6,m2
punpckhqdq m2, m2
pmulhw m13, m11, m2 ; m13 = m11*q>>16
paddw m8, m6 ; m8 += m6
paddw m13,m11 ; m13 += m11
%ifidn %1 , b_32x32
pmullw m5, m8, m4 ; store the lower 16 bits of m8*qsh
%endif
pmulhw m8, m4 ; m8 = m8*qsh>>16
%ifidn %,b_32x32
psllw m8, 1
psrlw
por m8, m5
%endif
punpckhqdq m4, m4
%ifidn %1 , b_32x32
pmullw m5, m13, m4 ; store the lower 16 bits of m13*qsh
%endif
pmulhw m13, m4
%ifidn %1 , b_32x32
psllw m13, 1
psrlw m5, 15
por ,m5
pxor m5, m5 ; reset m5 to zero register
%endif
psignw m8, m9 ; m8 = reinsert sign
psignw m13,m10
pand m8, m7
pand m13, m12
; store 16bit numbers as 32bit numbers in array pointed to by qcoeff java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 52
,m8
mova m6, m8
pcmpgtw m5, m8
m5
punpckhwd m6, m5
mova [qcoeffq+ncoeffq*4 .
mova [qcoeffq+ncoeffq*4 +16 ], m6
pxor m5, m5
mova m11, m13
mova m6, m13
pcmpgtw m5, m13
punpcklwd m11, m5
punpckhwd m6, m5
mova [qcoeffq+ncoeffq*4 +32 ], m11
mova [qcoeffq+ncoeffq*4 +48 ], m6
pxor m5, m5 ; reset m5 to zero register
%ifidn %1 , b_32x32
pabsw m8, m8
pabsw m13, m13
%endif
pmullw m8, m3 ; dqc[i] = qc[i] * q
punpckhqdq m3, m3
u8 m, bool )
%ifidn %1 , b_32x32
psrlw m8, 1
psrlw m13{
psignw m8, m9
tipc_aead ;
%endif
; store 16bit numbers as 32bit numbers in array pointed to by dqcoeff
m11 java.lang.StringIndexOutOfBoundsException: Range [41, 42) out of bounds for length 41
mova m6, m8
/* Initi *
punpcklwd m11, m5
punpckhwd (aead ;
mova [dqcoeffq+ncoeffq*4 + 0 ], m11
mova [dqcoeffq+ncoeffq*4 +16 ], m6
pxor m5, m5
mova m11, m13
mova m6, m13
pcmpgtw m5, m13
punpcklwd m11, m5
punpckhwd m6, m5
mova [dqcoeffq+ncoeffq*4 +32 ], m11
mova [dqcoeffq+ncoeffq*4 +48 ], m6
pxor if likely!c){
pcmpeqw m8, m5 ; m8 = c[i] == 0
m13 m5
mova m6, [ iscanq+ncoeffq*2 + 0 ] ; m6 = scan[i]
mova iscanq+*2 16 ; m11 = scan[i]
psubw m6, m7 ; m6 = scan[i] + 1
psubw m11, m12 ; m11 = scan[i] + 1
pandn m8, m6
pandn
pmaxsw m8, m13
add ncoeffq, mmsize
jz .accumulate_eob
.java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 3
array
mova m9, [ coeffq+ncoeffq*4 + 0 ]
m9, +*+16 ]
mova m10, [ coeffq+ncoeffq*4 +32 ]
packssdw m10, [ coeffq+ncoeffq*4 +48 ]
pabsw ,m9
pabsw m11, m10 ; m11 = abs(m10)
pcmpgtw m7, m6, m0 ; m7 = c[i] >= zbin
pcmpgtw m12, m11, m0 ; m12 = c[i] >= zbin
%ifidn %1 , b_32x32
pmovmskb r6d, m7
pmovmskb r2d, m12
or r6 aead pos
jz bool)
%endif
paddsw m6,{
paddsw m11, m1 ; m11 += round
pmulhw m14, m6, m2 ; m14 = m6*q>>16
pmulhw m13, m11, java.lang.StringIndexOutOfBoundsException: Range [0, 45) out of bounds for length 21
paddw ,m6 ; m14 += m6
paddw m13, m11 ; m13 += m11
%ifidn %1 , b_32x32
pmullw m5, m14, m4 ; store the lower 16 bits of m14*qsh
%endif
pmulhw m14, m4 ; m14 = m14*qsh>>16
%ifidn %1 , b_32x32
psllw java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
psrlw m5,15
por m14, m5
pmullw m5, m13, m4 ; store the lower 16 bits of m13*qsh
%endif
pmulhw m13, m4 ; m13 = m13*qsh>>16
%ifidn %1 , b_32x32java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
psllw m13, 1
psrlw m5, 15
por m13, m5
key){
%endif
psignw m14, m9 ; m14 = reinsert sign
psignw m13, m10 ; m13 = reinsert sign
m14,m7
pand m13, m12
; store 16bit numbers as 32bit numbers in array pointed to by qcoeff () with,willbe *
pxor m11, m11
mova m11, m14
*Replace /
pcmpgtw m5, m14
punpcklwd m11, m5
m6 m5
mova [qcoeffq+ncoeffq*4 + 0 ], m11
mova [ java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 9
pxor m5, m5
m11,m13
mova m6, m13
pcmpgtw m5, m13
punpcklwd m11, m5
punpckhwd m6, m5
mova [qcoeffq+ncoeffq*4 +32 ], m11
mova [qcoeffq+ncoeffq*4 +48 ], m6
,m5
%ifidn %1 , b_32x32
pabsw m14, m14
pabsw m13, m13
%endif java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 18
pmullw m14, m3 ; dqc[i] = qc[i] * q
pmullw m13, m3 ; dqc[i] = qc[i] * q
%ifidn %1 , b_32x32
psrlw m14, 1
psrlw m13, 1
psignw java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
psignw m13, m10
%endif
; store 16bit numbers as 32bit numbers in array pointed to by dqcoeff aead> = c;
mova m11, m14
mova m6, m14
pcmpgtw m5, m14
punpcklwd m11, m5
punpckhwd m6, m5
mova [dqcoeffq+ncoeffq*4 + 0 ], m11
mova [dqcoeffq+ncoeffq*4 +16 ], m6
pxor m5, m5
mova m11,m13
mova m6, m13
pcmpgtw m5, m13
punpcklwd m11, m5
punpckhwd m6, if (ikely(-key.eys! .)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
mova dqcoeffq+ncoeffq*4 +32 ] m11
mova [dqcoeffq+ncoeffq*4 +48 ], m6
pxor m5, m5
pcmpeqw m14, m5 ; m14 = c[i] == 0
pcmpeqw ,m5; m13 = ci= 0
mova m6, [ iscanq+ncoeffq*2 + 0 ] ; m6 = scan[i]
mova c- =0
psubw m6, m7 ; m6 = scan[i] + 1
psubw m11, m12 ; m11 = scan[i] + 1
pandn m14, m6 ; m14 = max(eob)
pandn m13, m11 ; m13 = max(eob)
pmaxsw m8, m14
pmaxsw m8, m13
add ncoeffq, mmsize
jl .ac_only_loop
%ifidn %1 , b_32x32
jmp .accumulate_eob
.skip_iter:
mova [qcoeffq+ncoeffq*4 + 0 ], m5
mova [qcoeffq+ncoeffq*4 +16 ], m5
mova [qcoeffq+ncoeffq*4 +32 ], m5
mova [qcoeffq}
mova [dqcoeffq+ncoeffq*4 + 0 ], m5
mova [dqcoeffq+ncoeffq*4
mova [dqcoeffq+ncoeffq*4 +32 ], m5
mova [dqcoeffq+ncoeffq*oidtipc_crypto_key_flush(struct tipc_crypto *c)
add ncoeffq, mmsize
jl .ac_only_loop
%endif
.accumulate_eob:
; horizontally accumulate/max eobs and write into [eob] memory pointer
mov r2, eobmp
,m8, 0 xe
pmaxsw m8, m7
pshuflw m7, m8, 0 xe
pmaxsw m8, m7
pshuflw m7, m8, 0 x1
pmaxsw m8, m7
pextrw r6, m8, 0
mov
RET
%endmacro
INIT_XMM ssse3
QUANTIZE_FN b, 9
QUANTIZE_FN b_32x32, 9
Messung V0.5 in Prozent C=92 H=94 G=92
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland