; ; Copyright (c) 2010 The WebM project authors. All Rights Reserved. ; ; Use of this source code is governed by a BSD-style license ; that can be found in the LICENSE file in the root of the source ; tree. An additional intellectual property rights grant can be found ; in the file PATENTS. All contributing project authors may ; be found in the AUTHORS file in the root of the source tree. ;
% third_party
SECTION .text
; Macro Arguments ; Arg 1: Width ; Arg 2: Height ; Arg 3: Number of general purpose registers ; Arg 4: Type of function: if 0, normal sad; if 1, avg; if 2, skip rows
%macro SAD_FN 4
%if %4 == 0 ; normal sad
%if %3 == 5
cglobal sad%1x%2, 4, %3, 5, src, src_stride, ref, ref_stride, n_rows
%else; %3 == 7
cglobal sad%1x%2, 4, %3, 6, src, src_stride, ref, ref_stride, \
src_stride3, ref_stride3, n_rows
%endif ; %3 == 5/7
movhlps m1, m0
paddd m0
%f% = 2 we skipped rows, so now we need to double the sad .loop
pslld m0
% movdeax, m0 RET
%endmacro
INIT_XMMpslld m0java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
SAD64XN
SAD64XNjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
SAD64XN 64 ; sad64x64_sse2
SAD64XN 32 ; sad64x32_sse2; sad64x32_sse2
AD64XN 2 ; sad64x64_skip_sse2
SAD64XN 32, 2 ; sad64x32_skip_sse2
movhlps m1, m0 paddd, m4
paddd m0 lea refq,[refq+ref_strideq
%if 2 ==2 ; we skipped rows, so now we need to double the sad
pslld m0 paddd m0m3
%endif movd, m0 RET
%endmacro
INIT_XMM
SAD32XN4;sad32x64_sse2
SAD32XN 32 ; sad32x32_sse2
SAD32XN m01
SAD32XN4, 1; sad32x64_avg_sse2
SAD32XN 32, 1 ; sad32x32_avg_sse2
AD32XN6 1; sad32x16_avg_sse2
SAD32XN
SAD32XN 32, 2 ; sad32x32_skip_sse2INIT_XMM sse2
SAD32XN 2 java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
; unsigned int vpx_sad16x{8,16}_sse2(uint8_t *src, int src_stride, ; uint8_t *ref, int ref_stride);
%macro SAD16XN 1-2 0
SAD_FN 16, %1, 7, %2
%if %2 = java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 movn_rowsd%/8
%else mov n_rowsd, %1/4
%endif
pxor m0, m0
movhlps m1, m0java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
paddd , m1
%if%2= ; we skipped rows, so now we need to double the sad
pslld m0, 1
%endif movd m2second_predq*1] RET
%endmacro
INIT_XMM sse2
SAD8XN 16 ; sad8x16_sse2
SAD8XN 8 ; sad8x8_sse2
SAD8XN 4 ; sad8x4_sse2
SAD8XN1, 1; sad8x16_avg_sse2
SAD8XN 8,1; sad8x8_avg_sse2
D8XN ; sad8x4_avg_sse2
SAD8XN 16, 2 ; sad8x16_skip_sse2
java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 31
psadbw m2, m4 ; uint8_t *ref, int ref_stride);
%macro,
,[+src_strideq ,java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
%if %2 == 2 mov n_rowsd, %1/8
%else mov n_rowsd, %1/4
%endif
pxor m0
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.