diff --git a/DEPS b/DEPS index 3031a22b99..6d778ba018 100644 --- a/DEPS +++ b/DEPS @@ -48,7 +48,7 @@ deps = { From("chromium_deps", "src/third_party/libjpeg_turbo"), "third_party/libvpx/source/libvpx": - "http://git.chromium.org/webm/libvpx.git@cab6ac16", + "http://git.chromium.org/webm/libvpx.git@69babd3", "third_party/libyuv": (Var("googlecode_url") % "libyuv") + "/trunk@255", @@ -110,6 +110,15 @@ hooks = [ "action": ["python", Var("root_dir") + "/tools/clang/scripts/update.py", "--mac-only"], }, + { + # Update the cygwin mount on Windows. + # This is necessary to get the correct mapping between e.g. /bin and the + # cygwin path on Windows. Without it we can't run bash scripts in actions. + # Ideally this should be solved in "pylib/gyp/msvs_emulation.py". + "pattern": ".", + "action": ["python", Var("root_dir") + "/build/win/setup_cygwin_mount.py", + "--win-only"], + }, { # Download test resources, i.e. video and audio files. If the latest # version is already downloaded, this takes zero seconds to run. diff --git a/third_party/libvpx/copy_obj.sh b/third_party/libvpx/copy_obj.sh new file mode 100755 index 0000000000..a79f52502b --- /dev/null +++ b/third_party/libvpx/copy_obj.sh @@ -0,0 +1,36 @@ +#!/bin/bash -e +# +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This script is used to copy a file from several possible locations. +# +# Arguments: +# +# -d - Destination. +# -s - Source file path. +# + +while getopts "d:s:" flag; do + if [ "$flag" = "d" ]; then + dest=$OPTARG + elif [ "$flag" = "s" ]; then + srcs="$OPTARG $srcs" + fi +done + +for f in $srcs; do + if [ -a $f ]; then + src=$f + break + fi +done + +if [ -z "$src" ]; then + echo "Unable to locate file." + false + exit +fi + +cp "$src" "$dest" diff --git a/third_party/libvpx/generate_gypi.sh b/third_party/libvpx/generate_gypi.sh index 6968899fa0..74eded6781 100755 --- a/third_party/libvpx/generate_gypi.sh +++ b/third_party/libvpx/generate_gypi.sh @@ -11,33 +11,29 @@ # $ ./generate_gypi.sh # # And this will update all the .gypi files needed. -# However changes to asm_*_offsets.asm, vpx_config.asm and -# vpx_config.h are not updated and needs to modified manually -# for all platforms. - -# This file is based upon the generate_gypi.sh file in Chromium, -# but with the following additional features enabled: -# CONFIG_ERROR_CONCEALMENT, CONFIG_POSTPROC -# http://src.chromium.org/svn/trunk/deps/third_party/libvpx/generate_gypi.sh +# +# Configuration for building on each platform is taken from the +# corresponding vpx_config.h +# +BASE_DIR=`pwd` LIBVPX_SRC_DIR="source/libvpx" -COMMON_CONFIG="CONFIG_REALTIME_ONLY=yes CONFIG_GCC=yes CONFIG_ERROR_CONCEALMENT=yes CONFIG_POSTPROC=yes" -X86_CONFIG="ARCH_X86=yes HAVE_MMX=yes HAVE_SSE2=yes HAVE_SSE3=yes HAVE_SSSE3=yes HAVE_SSE4_1=yes CONFIG_RUNTIME_CPU_DETECT=yes" -X86_64_CONFIG="ARCH_X86_64=yes HAVE_MMX=yes HAVE_SSE2=yes HAVE_SSE3=yes HAVE_SSSE3=yes HAVE_SSE4_1=yes CONFIG_PIC=yes CONFIG_RUNTIME_CPU_DETECT=yes" -ARM_CONFIG="ARCH_ARM=yes HAVE_EDSP=yes HAVE_MEDIA=yes" -ARM_NEON_CONFIG="ARCH_ARM=yes HAVE_EDSP=yes HAVE_MEDIA=yes HAVE_NEON=yes" +LIBVPX_CONFIG_DIR="source/config" +# Convert a list of source files into gypi file. +# $1 - Input file. +# $2 - Output gypi file. function convert_srcs_to_gypi { # Do the following here: # 1. Filter .c, .h, .s, .S and .asm files. # 2. Exclude *_offsets.c. # 3. Exclude vpx_config.c. # 4. Repelace .asm.s to .asm because gyp will do the conversion. - source_list=`grep -E '(\.c|\.h|\.S|\.s|\.asm)$' $1 | grep -v '_offsets\.c' | grep -v 'vpx_config\.c' | sed s/\.asm\.s$/.asm/` + local source_list=`grep -E '(\.c|\.h|\.S|\.s|\.asm)$' $1 | grep -v '_offsets\.c' | grep -v 'vpx_config\.c' | sed s/\.asm\.s$/.asm/` # Build the gypi file. echo "# This file is generated. Do not edit." > $2 - echo "# Copyright (c) 2011 The Chromium Authors. All rights reserved." >> $2 + echo "# Copyright (c) 2012 The Chromium Authors. All rights reserved." >> $2 echo "# Use of this source code is governed by a BSD-style license that can be" >> $2 echo "# found in the LICENSE file." >> $2 echo "" >> $2 @@ -51,39 +47,98 @@ function convert_srcs_to_gypi { echo "}" >> $2 } +# Clean files from previous make. +function make_clean { + make clean > /dev/null + rm -f libvpx_srcs.txt +} + +# Lint a pair of vpx_config.h and vpx_config.asm to make sure they match. +# $1 - Header file directory. +function lint_config { + $BASE_DIR/lint_config.sh \ + -h $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.h \ + -a $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.asm +} + +# Print the configuration. +# $1 - Header file directory. +function print_config { + $BASE_DIR/lint_config.sh -p \ + -h $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.h \ + -a $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.asm +} + +# Generate vpx_rtcd.h. +# $1 - Header file directory. +# $2 - Architecture. +function gen_rtcd_header { + echo "Generate $LIBVPX_CONFIG_DIR/$1/vpx_rtcd.h." + + rm -rf $BASE_DIR/$TEMP_DIR/libvpx.config + $BASE_DIR/lint_config.sh -p \ + -h $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.h \ + -a $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.asm \ + -o $BASE_DIR/$TEMP_DIR/libvpx.config + + $BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.sh \ + --arch=$2 \ + --sym=vpx_rtcd \ + --config=$BASE_DIR/$TEMP_DIR/libvpx.config \ + $BASE_DIR/$LIBVPX_SRC_DIR/vp8/common/rtcd_defs.sh \ + > $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_rtcd.h + + rm -rf $BASE_DIR/$TEMP_DIR/libvpx.config +} + +echo "Lint libvpx configuration." +lint_config linux/ia32 +lint_config linux/x64 +lint_config linux/arm +lint_config linux/arm-neon +lint_config win/ia32 +lint_config mac/ia32 + echo "Create temporary directory." -BASE_DIR=`pwd` TEMP_DIR="$LIBVPX_SRC_DIR.temp" +rm -rf $TEMP_DIR cp -R $LIBVPX_SRC_DIR $TEMP_DIR cd $TEMP_DIR +gen_rtcd_header linux/ia32 x86 +gen_rtcd_header linux/x64 x86_64 +gen_rtcd_header linux/arm armv6 +gen_rtcd_header linux/arm-neon armv7 +gen_rtcd_header win/ia32 x86 +gen_rtcd_header mac/ia32 x86 + echo "Prepare Makefile." ./configure --target=generic-gnu > /dev/null -make clean > /dev/null +make_clean echo "Generate X86 source list." -make clean > /dev/null -rm -f libvpx_srcs.txt -make libvpx_srcs.txt target=libs $COMMON_CONFIG $X86_CONFIG > /dev/null -convert_srcs_to_gypi libvpx_srcs.txt ../../libvpx_srcs_x86.gypi +config=$(print_config linux/ia32) +make_clean +make libvpx_srcs.txt target=libs $config > /dev/null +convert_srcs_to_gypi libvpx_srcs.txt $BASE_DIR/libvpx_srcs_x86.gypi echo "Generate X86_64 source list." -make clean > /dev/null -rm -f libvpx_srcs.txt -make libvpx_srcs.txt target=libs $COMMON_CONFIG $X86_64_CONFIG > /dev/null -convert_srcs_to_gypi libvpx_srcs.txt ../../libvpx_srcs_x86_64.gypi +config=$(print_config linux/x64) +make_clean +make libvpx_srcs.txt target=libs $config > /dev/null +convert_srcs_to_gypi libvpx_srcs.txt $BASE_DIR/libvpx_srcs_x86_64.gypi echo "Generate ARM source list." -make clean > /dev/null -rm -f libvpx_srcs.txt -make libvpx_srcs.txt target=libs $COMMON_CONFIG $ARM_CONFIG > /dev/null -convert_srcs_to_gypi libvpx_srcs.txt ../../libvpx_srcs_arm.gypi +config=$(print_config linux/arm) +make_clean +make libvpx_srcs.txt target=libs $config > /dev/null +convert_srcs_to_gypi libvpx_srcs.txt $BASE_DIR/libvpx_srcs_arm.gypi echo "Generate ARM NEON source list." -make clean > /dev/null -rm -f libvpx_srcs.txt -make libvpx_srcs.txt target=libs $COMMON_CONFIG $ARM_NEON_CONFIG > /dev/null -convert_srcs_to_gypi libvpx_srcs.txt ../../libvpx_srcs_arm_neon.gypi +config=$(print_config linux/arm-neon) +make_clean +make libvpx_srcs.txt target=libs $config > /dev/null +convert_srcs_to_gypi libvpx_srcs.txt $BASE_DIR/libvpx_srcs_arm_neon.gypi echo "Remove temporary directory." cd $BASE_DIR diff --git a/third_party/libvpx/libvpx.gyp b/third_party/libvpx/libvpx.gyp index 3428aaa400..3b76da46b7 100644 --- a/third_party/libvpx/libvpx.gyp +++ b/third_party/libvpx/libvpx.gyp @@ -1,31 +1,7 @@ -# Copyright (c) 2011 The Chromium Authors. All rights reserved. +# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. - -# This file is based upon the libvpx.gyp file in the Chromium source code, -# but with the following targets removed: simple_encoder, simple_decoder, -# libvpx_include, libvpx_lib. -# http://src.chromium.org/svn/trunk/deps/third_party/libvpx/libvpx.gyp { - # The target_defaults block is unique to the WebRTC libvpx.gyp. - 'target_defaults': { - 'conditions': [ - ['clang == 1', { - 'xcode_settings': { - 'WARNING_CFLAGS': [ - # libvpx heavily relies on implicit enum casting. - '-Wno-conversion', - # libvpx does `if ((a == b))` in some places. - '-Wno-parentheses-equality', - ], - }, - 'cflags': [ - '-Wno-conversion', - '-Wno-parentheses-equality', - ], - }], - ], - }, 'variables': { 'conditions': [ ['os_posix==1', { @@ -34,8 +10,38 @@ ['OS=="win"', { 'asm_obj_extension': 'obj', }], + + ['target_arch=="arm" and arm_neon==1', { + 'target_arch_full': 'arm-neon', + }, { + 'target_arch_full': '<(target_arch)', + }], + + # Conversion to libvpx arch names. + ['target_arch=="arm" and arm_neon==1', { + 'libvpx_arch': 'armv7', + }], + ['target_arch=="arm" and arm_neon==0', { + 'libvpx_arch': 'armv6', + }], + ['target_arch=="ia32"', { + 'libvpx_arch': 'x86', + }], + ['target_arch=="x64"', { + 'libvpx_arch': 'x86_64', + }], + + ['os_posix == 1 and OS != "mac"', { + 'OS_CATEGORY%': 'linux', + }, { + 'OS_CATEGORY%': '<(OS)', + }], ], + + # Location of the intermediate output. + 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx', }, + 'conditions': [ # TODO(andrew): Hack to ensure we pass -msse2 to gcc on Linux for files # containing SSE intrinsics. This should be handled in the gyp generator @@ -68,7 +74,7 @@ }, ], }], - [ '(OS=="linux" or OS=="mac" or OS=="win") and target_arch!="arm"', { + [ 'target_arch!="arm"', { 'targets': [ { # This libvpx target contains both encoder and decoder. @@ -77,26 +83,37 @@ 'type': 'static_library', 'variables': { 'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx', + 'OS_CATEGORY%': '<(OS_CATEGORY)', 'yasm_flags': [ - '-I', 'source/config/<(OS)/<(target_arch)', + '-D', 'CHROMIUM', + '-I', 'source/config/<(OS_CATEGORY)/<(target_arch)', '-I', 'source/libvpx', + '-I', '<(shared_generated_dir)', # Generated assembly offsets ], }, + 'dependencies': [ + 'gen_asm_offsets', + ], 'includes': [ '../yasm/yasm_compile.gypi' ], 'include_dirs': [ - 'source/config/<(OS)/<(target_arch)', + 'source/config/<(OS_CATEGORY)/<(target_arch)', 'source/libvpx', 'source/libvpx/vp8/common', 'source/libvpx/vp8/decoder', 'source/libvpx/vp8/encoder', + '<(shared_generated_dir)', # Provides vpx_rtcd.h. ], 'direct_dependent_settings': { 'include_dirs': [ 'source/libvpx', ], }, + # VS2010 does not correctly incrementally link obj files generated + # from asm files. This flag disables UseLibraryDependencyInputs to + # avoid this problem. + 'msvs_2010_disable_uldi_when_referenced': 1, 'conditions': [ [ 'target_arch=="ia32"', { 'includes': [ @@ -110,12 +127,34 @@ ], 'dependencies': [ 'libvpx_sse2', ], }], + ['clang == 1', { + 'xcode_settings': { + 'WARNING_CFLAGS': [ + # libvpx heavily relies on implicit enum casting. + '-Wno-conversion', + # libvpx does `if ((a == b))` in some places. + '-Wno-parentheses-equality', + ], + }, + 'cflags': [ + '-Wno-conversion', + '-Wno-parentheses-equality', + ], + }], + [ 'chromeos == 1', { + # ChromeOS needs these files for animated WebM avatars. + 'sources': [ + 'source/libvpx/libmkv/EbmlIDs.h', + 'source/libvpx/libmkv/EbmlWriter.c', + 'source/libvpx/libmkv/EbmlWriter.h', + ], + }], ], }, ], }, ], - # 'libvpx' target for Chrome OS ARM builds. + # 'libvpx' target for ARM builds. [ 'target_arch=="arm" ', { 'targets': [ { @@ -123,6 +162,9 @@ # Encoder is configured to be realtime only. 'target_name': 'libvpx', 'type': 'static_library', + 'dependencies': [ + 'gen_asm_offsets', + ], # Copy the script to the output folder so that we can use it with # absolute path. @@ -156,32 +198,16 @@ # Location of the assembly conversion script. 'ads2gas_script': 'ads2gas.pl', 'ads2gas_script_path': 'source/libvpx/build/make/<(ads2gas_script)', - - # Location of the intermediate output. - 'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx', - - # Conditions to generate arm-neon as an target. - 'conditions': [ - ['target_arch=="arm" and arm_neon==1', { - 'target_arch_full': 'arm-neon', - }, { - 'target_arch_full': '<(target_arch)', - }], - ['OS=="android"', { - '_OS': 'linux', - }, { - '_OS': '<(OS)', - }], - ], }, 'cflags': [ # We need to explicitly tell the GCC assembler to look for # .include directive files from the place where they're # generated to. - '-Wa,-I,third_party/libvpx/source/config/<(_OS)/<(target_arch_full)', + '-Wa,-I, <(shared_generated_dir)/<(RULE_INPUT_ROOT).c', + ], + 'process_outputs_as_sources': 1, + 'message': 'Generate libvpx example code <(RULE_INPUT_PATH).', + }, + ], + 'sources': [ + 'source/libvpx/examples/simple_encoder.txt', + ] + }, + { + 'target_name': 'simple_decoder', + 'type': 'executable', + 'dependencies': [ + 'libvpx', + ], + + # Copy the script to the output folder so that we can use it with + # absolute path. + 'copies': [{ + 'destination': '<(shared_generated_dir)/simple_decoder', + 'files': [ + 'source/libvpx/examples/gen_example_code.sh', + ], + }], + + # Rule to convert .txt files to .c files. + 'rules': [ + { + 'rule_name': 'generate_example', + 'extension': 'txt', + 'inputs': [ '<(shared_generated_dir)/simple_decoder/gen_example_code.sh', ], + 'outputs': [ + '<(shared_generated_dir)/<(RULE_INPUT_ROOT).c', + ], + 'action': [ + 'bash', + '-c', + '<(shared_generated_dir)/simple_decoder/gen_example_code.sh <(RULE_INPUT_PATH) > <(shared_generated_dir)/<(RULE_INPUT_ROOT).c', + ], + 'process_outputs_as_sources': 1, + 'message': 'Generate libvpx example code <(RULE_INPUT_PATH).', + }, + ], + 'sources': [ + 'source/libvpx/examples/simple_decoder.txt', + ] + }, + ], } # Local Variables: diff --git a/third_party/libvpx/libvpx_srcs_arm.gypi b/third_party/libvpx/libvpx_srcs_arm.gypi index 44ea3ac448..a83b593f9d 100644 --- a/third_party/libvpx/libvpx_srcs_arm.gypi +++ b/third_party/libvpx/libvpx_srcs_arm.gypi @@ -1,5 +1,5 @@ # This file is generated. Do not edit. -# Copyright (c) 2011 The Chromium Authors. All rights reserved. +# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -7,29 +7,6 @@ 'sources': [ 'source/libvpx/vp8/common/alloccommon.c', 'source/libvpx/vp8/common/alloccommon.h', - 'source/libvpx/vp8/common/arm/armv6/bilinearfilter_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/copymem16x16_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/copymem8x4_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/copymem8x8_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/dc_only_idct_add_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/dequant_idct_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/dequantize_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/filter_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/idct_blk_v6.c', - 'source/libvpx/vp8/common/arm/armv6/idct_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/intra4x4_predict_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/iwalsh_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/loopfilter_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/simpleloopfilter_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/sixtappredict8x4_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/vp8_sad16x16_armv6.asm', - 'source/libvpx/vp8/common/arm/armv6/vp8_variance16x16_armv6.asm', - 'source/libvpx/vp8/common/arm/armv6/vp8_variance8x8_armv6.asm', - 'source/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_h_armv6.asm', - 'source/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_hv_armv6.asm', - 'source/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_v_armv6.asm', - 'source/libvpx/vp8/common/arm/bilinearfilter_arm.c', - 'source/libvpx/vp8/common/arm/bilinearfilter_arm.h', 'source/libvpx/vp8/common/arm/dequantize_arm.c', 'source/libvpx/vp8/common/arm/filter_arm.c', 'source/libvpx/vp8/common/arm/loopfilter_arm.c', @@ -113,11 +90,6 @@ 'source/libvpx/vp8/encoder/arm/armv5te/vp8_packtokens_armv5.asm', 'source/libvpx/vp8/encoder/arm/armv5te/vp8_packtokens_mbrow_armv5.asm', 'source/libvpx/vp8/encoder/arm/armv5te/vp8_packtokens_partitions_armv5.asm', - 'source/libvpx/vp8/encoder/arm/armv6/vp8_fast_quantize_b_armv6.asm', - 'source/libvpx/vp8/encoder/arm/armv6/vp8_mse16x16_armv6.asm', - 'source/libvpx/vp8/encoder/arm/armv6/vp8_short_fdct4x4_armv6.asm', - 'source/libvpx/vp8/encoder/arm/armv6/vp8_subtract_armv6.asm', - 'source/libvpx/vp8/encoder/arm/armv6/walsh_v6.asm', 'source/libvpx/vp8/encoder/arm/boolhuff_arm.c', 'source/libvpx/vp8/encoder/arm/dct_arm.c', 'source/libvpx/vp8/encoder/arm/quantize_arm.c', diff --git a/third_party/libvpx/libvpx_srcs_arm_neon.gypi b/third_party/libvpx/libvpx_srcs_arm_neon.gypi index 21316580e6..7784128184 100644 --- a/third_party/libvpx/libvpx_srcs_arm_neon.gypi +++ b/third_party/libvpx/libvpx_srcs_arm_neon.gypi @@ -1,5 +1,5 @@ # This file is generated. Do not edit. -# Copyright (c) 2011 The Chromium Authors. All rights reserved. +# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -17,7 +17,6 @@ 'source/libvpx/vp8/common/arm/armv6/filter_v6.asm', 'source/libvpx/vp8/common/arm/armv6/idct_blk_v6.c', 'source/libvpx/vp8/common/arm/armv6/idct_v6.asm', - 'source/libvpx/vp8/common/arm/armv6/intra4x4_predict_v6.asm', 'source/libvpx/vp8/common/arm/armv6/iwalsh_v6.asm', 'source/libvpx/vp8/common/arm/armv6/loopfilter_v6.asm', 'source/libvpx/vp8/common/arm/armv6/simpleloopfilter_v6.asm', diff --git a/third_party/libvpx/libvpx_srcs_x86.gypi b/third_party/libvpx/libvpx_srcs_x86.gypi index ff418b8924..05784cfb40 100644 --- a/third_party/libvpx/libvpx_srcs_x86.gypi +++ b/third_party/libvpx/libvpx_srcs_x86.gypi @@ -1,5 +1,5 @@ # This file is generated. Do not edit. -# Copyright (c) 2011 The Chromium Authors. All rights reserved. +# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -163,8 +163,7 @@ 'source/libvpx/vp8/encoder/treewriter.h', 'source/libvpx/vp8/encoder/x86/dct_mmx.asm', 'source/libvpx/vp8/encoder/x86/dct_sse2.asm', - # Hack; refer to libvpx.gyp - #'source/libvpx/vp8/encoder/x86/denoising_sse2.c', + 'source/libvpx/vp8/encoder/x86/denoising_sse2.c', 'source/libvpx/vp8/encoder/x86/encodeopt.asm', 'source/libvpx/vp8/encoder/x86/fwalsh_sse2.asm', 'source/libvpx/vp8/encoder/x86/quantize_mmx.asm', diff --git a/third_party/libvpx/libvpx_srcs_x86_64.gypi b/third_party/libvpx/libvpx_srcs_x86_64.gypi index 884a692544..899d653397 100644 --- a/third_party/libvpx/libvpx_srcs_x86_64.gypi +++ b/third_party/libvpx/libvpx_srcs_x86_64.gypi @@ -1,5 +1,5 @@ # This file is generated. Do not edit. -# Copyright (c) 2011 The Chromium Authors. All rights reserved. +# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. diff --git a/third_party/libvpx/lint_config.sh b/third_party/libvpx/lint_config.sh new file mode 100755 index 0000000000..4ff08c7db0 --- /dev/null +++ b/third_party/libvpx/lint_config.sh @@ -0,0 +1,105 @@ +#!/bin/bash -e +# +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This script is used to compare vpx_config.h and vpx_config.asm to +# verify the two files match. +# +# Arguments: +# +# -h - C Header file. +# -a - ASM file. +# -p - Print the options if correct. +# -o - Output file. +# +# Usage: +# +# # Compare the two configuration files and output the final results. +# ./lint_config.sh -h vpx_config.h -a vpx_config.asm -o libvpx.config -p + +print_final="no" + +while getopts "h:a:o:p" flag +do + if [ "$flag" = "h" ]; then + header_file=$OPTARG + elif [ "$flag" = "a" ]; then + asm_file=$OPTARG + elif [ "$flag" = "o" ]; then + out_file=$OPTARG + elif [ "$flag" = "p" ]; then + print_final="yes" + fi +done + +if [ -z "$header_file" ]; then + echo "Header file not specified." + false + exit +fi + +if [ -z "$asm_file" ]; then + echo "ASM file not specified." + false + exit +fi + +# Concat header file and assembly file and select those ended with 0 or 1. +combined_config="$(cat $header_file $asm_file | grep -E ' +[01] *$')" + +# Extra filtering for known exceptions. +combined_config="$(echo "$combined_config" | grep -v DO1STROUNDING)" + +# Remove all spaces. +combined_config="$(echo "$combined_config" | sed 's/[ \t]//g')" + +# Remove #define in the header file. +combined_config="$(echo "$combined_config" | sed 's/.*define//')" + +# Remove equ in the ASM file. +combined_config="$(echo "$combined_config" | sed 's/\.equ//')" # gas style +combined_config="$(echo "$combined_config" | sed 's/equ//')" # rvds style + +# Remove useless comma in gas style assembly file. +combined_config="$(echo "$combined_config" | sed 's/,//')" + +# Substitute 0 with =no. +combined_config="$(echo "$combined_config" | sed 's/0$/=no/')" + +# Substitute 1 with =yes. +combined_config="$(echo "$combined_config" | sed 's/1$/=yes/')" + +# Find the mismatch variables. +odd_config="$(echo "$combined_config" | sort | uniq -u)" +odd_vars="$(echo "$odd_config" | sed 's/=.*//' | uniq)" + +for var in $odd_vars; do + echo "Error: Configuration mismatch for $var." + echo "Header file: $header_file" + echo "$(cat -n $header_file | grep "$var[ \t]")" + echo "Assembly file: $asm_file" + echo "$(cat -n $asm_file | grep "$var[ \t]")" + echo "" +done + +if [ -n "$odd_vars" ]; then + false + exit +fi + +if [ "$print_final" = "no" ]; then + exit +fi + +# Do some additional filter to make libvpx happy. +combined_config="$(echo "$combined_config" | grep -v ARCH_X86=no)" +combined_config="$(echo "$combined_config" | grep -v ARCH_X86_64=no)" + +# Print out the unique configurations. +if [ -n "$out_file" ]; then + echo "$combined_config" | sort | uniq > $out_file +else + echo "$combined_config" | sort | uniq +fi diff --git a/third_party/libvpx/obj_int_extract.sh b/third_party/libvpx/obj_int_extract.sh new file mode 100755 index 0000000000..648790a5d0 --- /dev/null +++ b/third_party/libvpx/obj_int_extract.sh @@ -0,0 +1,30 @@ +#!/bin/bash -e +# +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This script is used to run obj_int_extract and output the result to a +# file. +# +# Arguments: +# +# -e - Executable of obj_int_extract. +# -f - ASM format. +# -b - Object binary file. +# -o - Output file. +# + +while getopts "e:f:b:o:" flag; do + if [ "$flag" = "e" ]; then + bin_file=$OPTARG + elif [ "$flag" = "f" ]; then + asm_format=$OPTARG + elif [ "$flag" = "b" ]; then + obj_file=$OPTARG + elif [ "$flag" = "o" ]; then + out_file=$OPTARG + fi +done + +"$bin_file" "$asm_format" "$obj_file" > "$out_file" diff --git a/third_party/libvpx/source/config/android/vpx_config.c b/third_party/libvpx/source/config/android/vpx_config.c deleted file mode 100644 index ad2775b644..0000000000 --- a/third_party/libvpx/source/config/android/vpx_config.c +++ /dev/null @@ -1,2 +0,0 @@ -static const char* const cfg = "--target=generic-gnu"; -const char *vpx_codec_build_config(void) {return cfg;} diff --git a/third_party/libvpx/source/config/android/vpx_config.h b/third_party/libvpx/source/config/android/vpx_config.h deleted file mode 100644 index e0edb9f241..0000000000 --- a/third_party/libvpx/source/config/android/vpx_config.h +++ /dev/null @@ -1,64 +0,0 @@ -/* This file automatically generated by configure. Do not edit! */ -#define RESTRICT -#define ARCH_ARM 0 -#define ARCH_MIPS 0 -#define ARCH_X86 0 -#define ARCH_X86_64 0 -#define ARCH_PPC32 0 -#define ARCH_PPC64 0 -#define HAVE_ARMV5TE 0 -#define HAVE_ARMV6 0 -#define HAVE_ARMV7 0 -#define HAVE_IWMMXT 0 -#define HAVE_IWMMXT2 0 -#define HAVE_MIPS32 0 -#define HAVE_MMX 0 -#define HAVE_SSE 0 -#define HAVE_SSE2 0 -#define HAVE_SSE3 0 -#define HAVE_SSSE3 0 -#define HAVE_SSE4_1 0 -#define HAVE_ALTIVEC 0 -#define HAVE_VPX_PORTS 1 -#define HAVE_STDINT_H 1 -#define HAVE_ALT_TREE_LAYOUT 0 -#define HAVE_PTHREAD_H 1 -#define HAVE_SYS_MMAN_H 1 -#define CONFIG_EXTERNAL_BUILD 0 -#define CONFIG_INSTALL_DOCS 0 -#define CONFIG_INSTALL_BINS 1 -#define CONFIG_INSTALL_LIBS 1 -#define CONFIG_INSTALL_SRCS 0 -#define CONFIG_DEBUG 0 -#define CONFIG_GPROF 0 -#define CONFIG_GCOV 0 -#define CONFIG_RVCT 0 -#define CONFIG_GCC 1 -#define CONFIG_MSVS 0 -#define CONFIG_PIC 0 -#define CONFIG_BIG_ENDIAN 0 -#define CONFIG_CODEC_SRCS 0 -#define CONFIG_DEBUG_LIBS 0 -#define CONFIG_FAST_UNALIGNED 1 -#define CONFIG_MEM_MANAGER 0 -#define CONFIG_MEM_TRACKER 0 -#define CONFIG_MEM_CHECKS 0 -#define CONFIG_MD5 1 -#define CONFIG_DEQUANT_TOKENS 0 -#define CONFIG_DC_RECON 0 -#define CONFIG_RUNTIME_CPU_DETECT 0 -#define CONFIG_POSTPROC 0 -#define CONFIG_MULTITHREAD 1 -#define CONFIG_PSNR 0 -#define CONFIG_VP8_ENCODER 1 -#define CONFIG_VP8_DECODER 1 -#define CONFIG_VP8 1 -#define CONFIG_ENCODERS 1 -#define CONFIG_DECODERS 1 -#define CONFIG_STATIC_MSVCRT 0 -#define CONFIG_SPATIAL_RESAMPLING 1 -#define CONFIG_REALTIME_ONLY 0 -#define CONFIG_SHARED 0 -#define CONFIG_SMALL 0 -#define CONFIG_POSTPROC_VISUALIZER 0 -#define CONFIG_OS_SUPPORT 1 diff --git a/third_party/libvpx/source/config/android/vpx_version.h b/third_party/libvpx/source/config/android/vpx_version.h deleted file mode 100644 index 1d8ba965d9..0000000000 --- a/third_party/libvpx/source/config/android/vpx_version.h +++ /dev/null @@ -1,7 +0,0 @@ -#define VERSION_MAJOR 0 -#define VERSION_MINOR 9 -#define VERSION_PATCH 6 -#define VERSION_EXTRA "" -#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH)) -#define VERSION_STRING_NOSP "v0.9.6" -#define VERSION_STRING " v0.9.6" diff --git a/third_party/libvpx/source/config/linux/arm-neon/asm_com_offsets.asm b/third_party/libvpx/source/config/linux/arm-neon/asm_com_offsets.asm deleted file mode 100644 index a2fb794aa5..0000000000 --- a/third_party/libvpx/source/config/linux/arm-neon/asm_com_offsets.asm +++ /dev/null @@ -1,16 +0,0 @@ -@ This file was created from a .asm file -@ using the ads2gas.pl script. - .equ DO1STROUNDING, 0 -.equ yv12_buffer_config_y_width , 0 -.equ yv12_buffer_config_y_height , 4 -.equ yv12_buffer_config_y_stride , 8 -.equ yv12_buffer_config_uv_width , 12 -.equ yv12_buffer_config_uv_height , 16 -.equ yv12_buffer_config_uv_stride , 20 -.equ yv12_buffer_config_y_buffer , 24 -.equ yv12_buffer_config_u_buffer , 28 -.equ yv12_buffer_config_v_buffer , 32 -.equ yv12_buffer_config_border , 40 -.equ VP8BORDERINPIXELS_VAL , 32 -.equ MFQE_PRECISION_VAL , 4 - .section .note.GNU-stack,"",%progbits diff --git a/third_party/libvpx/source/config/linux/arm-neon/asm_enc_offsets.asm b/third_party/libvpx/source/config/linux/arm-neon/asm_enc_offsets.asm deleted file mode 100644 index 7b50b32f39..0000000000 --- a/third_party/libvpx/source/config/linux/arm-neon/asm_enc_offsets.asm +++ /dev/null @@ -1,48 +0,0 @@ -@ This file was created from a .asm file -@ using the ads2gas.pl script. - .equ DO1STROUNDING, 0 -.equ vp8_block_coeff , 4 -.equ vp8_block_zbin , 20 -.equ vp8_block_round , 28 -.equ vp8_block_quant , 8 -.equ vp8_block_quant_fast , 12 -.equ vp8_block_zbin_extra , 32 -.equ vp8_block_zrun_zbin_boost , 24 -.equ vp8_block_quant_shift , 16 -.equ vp8_blockd_qcoeff , 0 -.equ vp8_blockd_dequant , 12 -.equ vp8_blockd_dqcoeff , 4 -.equ vp8_blockd_eob , 20 -.equ vp8_block_base_src , 36 -.equ vp8_block_src , 40 -.equ vp8_block_src_diff , 0 -.equ vp8_block_src_stride , 44 -.equ vp8_blockd_predictor , 8 -.equ vp8_writer_lowvalue , 0 -.equ vp8_writer_range , 4 -.equ vp8_writer_count , 8 -.equ vp8_writer_pos , 12 -.equ vp8_writer_buffer , 16 -.equ vp8_writer_buffer_end , 20 -.equ vp8_writer_error , 24 -.equ tokenextra_token , 6 -.equ tokenextra_extra , 4 -.equ tokenextra_context_tree , 0 -.equ tokenextra_skip_eob_node , 7 -.equ TOKENEXTRA_SZ , 8 -.equ vp8_extra_bit_struct_sz , 16 -.equ vp8_token_value , 0 -.equ vp8_token_len , 4 -.equ vp8_extra_bit_struct_tree , 0 -.equ vp8_extra_bit_struct_prob , 4 -.equ vp8_extra_bit_struct_len , 8 -.equ vp8_extra_bit_struct_base_val , 12 -.equ vp8_comp_tplist , 167128 -.equ vp8_comp_common , 103296 -.equ vp8_comp_bc , 112656 -.equ vp8_writer_sz , 36 -.equ tokenlist_start , 0 -.equ tokenlist_stop , 4 -.equ TOKENLIST_SZ , 8 -.equ vp8_common_mb_rows , 2392 - .section .note.GNU-stack,"",%progbits diff --git a/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm b/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm index ea83b9b4be..ea62bcd082 100644 --- a/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm +++ b/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm @@ -39,14 +39,14 @@ .equ CONFIG_BIG_ENDIAN , 0 .equ CONFIG_CODEC_SRCS , 0 .equ CONFIG_DEBUG_LIBS , 0 -.equ CONFIG_FAST_UN.balignED , 1 +.equ CONFIG_FAST_UNALIGNED , 1 .equ CONFIG_MEM_MANAGER , 0 .equ CONFIG_MEM_TRACKER , 0 .equ CONFIG_MEM_CHECKS , 0 .equ CONFIG_MD5 , 1 .equ CONFIG_DEQUANT_TOKENS , 0 .equ CONFIG_DC_RECON , 0 -.equ CONFIG_RUNTIME_CPU_DETECT , 1 +.equ CONFIG_RUNTIME_CPU_DETECT , 0 .equ CONFIG_POSTPROC , 1 .equ CONFIG_MULTITHREAD , 1 .equ CONFIG_INTERNAL_STATS , 0 diff --git a/third_party/libvpx/source/config/linux/arm-neon/vpx_rtcd.h b/third_party/libvpx/source/config/linux/arm-neon/vpx_rtcd.h index ea05318560..ddbaeb140e 100644 --- a/third_party/libvpx/source/config/linux/arm-neon/vpx_rtcd.h +++ b/third_party/libvpx/source/config/linux/arm-neon/vpx_rtcd.h @@ -7,6 +7,8 @@ #define RTCD_EXTERN extern #endif +#include "vp8/common/blockd.h" + struct blockd; struct macroblockd; struct loop_filter_info; @@ -21,67 +23,67 @@ struct yv12_buffer_config; void vp8_dequantize_b_c(struct blockd*, short *dqc); void vp8_dequantize_b_v6(struct blockd*, short *dqc); void vp8_dequantize_b_neon(struct blockd*, short *dqc); -RTCD_EXTERN void (*vp8_dequantize_b)(struct blockd*, short *dqc); +#define vp8_dequantize_b vp8_dequantize_b_neon void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride); void vp8_dequant_idct_add_v6(short *input, short *dq, unsigned char *output, int stride); void vp8_dequant_idct_add_neon(short *input, short *dq, unsigned char *output, int stride); -RTCD_EXTERN void (*vp8_dequant_idct_add)(short *input, short *dq, unsigned char *output, int stride); +#define vp8_dequant_idct_add vp8_dequant_idct_add_neon void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs); void vp8_dequant_idct_add_y_block_v6(short *q, short *dq, unsigned char *dst, int stride, char *eobs); void vp8_dequant_idct_add_y_block_neon(short *q, short *dq, unsigned char *dst, int stride, char *eobs); -RTCD_EXTERN void (*vp8_dequant_idct_add_y_block)(short *q, short *dq, unsigned char *dst, int stride, char *eobs); +#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_neon void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs); void vp8_dequant_idct_add_uv_block_v6(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs); void vp8_dequant_idct_add_uv_block_neon(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs); -RTCD_EXTERN void (*vp8_dequant_idct_add_uv_block)(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs); +#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_neon void vp8_loop_filter_mbv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); void vp8_loop_filter_mbv_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); void vp8_loop_filter_mbv_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); -RTCD_EXTERN void (*vp8_loop_filter_mbv)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); +#define vp8_loop_filter_mbv vp8_loop_filter_mbv_neon void vp8_loop_filter_bv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); void vp8_loop_filter_bv_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); void vp8_loop_filter_bv_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); -RTCD_EXTERN void (*vp8_loop_filter_bv)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); +#define vp8_loop_filter_bv vp8_loop_filter_bv_neon void vp8_loop_filter_mbh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); void vp8_loop_filter_mbh_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); void vp8_loop_filter_mbh_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); -RTCD_EXTERN void (*vp8_loop_filter_mbh)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); +#define vp8_loop_filter_mbh vp8_loop_filter_mbh_neon void vp8_loop_filter_bh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); void vp8_loop_filter_bh_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); void vp8_loop_filter_bh_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); -RTCD_EXTERN void (*vp8_loop_filter_bh)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); +#define vp8_loop_filter_bh vp8_loop_filter_bh_neon void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit); void vp8_loop_filter_simple_vertical_edge_armv6(unsigned char *y, int ystride, const unsigned char *blimit); void vp8_loop_filter_mbvs_neon(unsigned char *y, int ystride, const unsigned char *blimit); -RTCD_EXTERN void (*vp8_loop_filter_simple_mbv)(unsigned char *y, int ystride, const unsigned char *blimit); +#define vp8_loop_filter_simple_mbv vp8_loop_filter_mbvs_neon void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit); void vp8_loop_filter_simple_horizontal_edge_armv6(unsigned char *y, int ystride, const unsigned char *blimit); void vp8_loop_filter_mbhs_neon(unsigned char *y, int ystride, const unsigned char *blimit); -RTCD_EXTERN void (*vp8_loop_filter_simple_mbh)(unsigned char *y, int ystride, const unsigned char *blimit); +#define vp8_loop_filter_simple_mbh vp8_loop_filter_mbhs_neon void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit); void vp8_loop_filter_bvs_armv6(unsigned char *y, int ystride, const unsigned char *blimit); void vp8_loop_filter_bvs_neon(unsigned char *y, int ystride, const unsigned char *blimit); -RTCD_EXTERN void (*vp8_loop_filter_simple_bv)(unsigned char *y, int ystride, const unsigned char *blimit); +#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_neon void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit); void vp8_loop_filter_bhs_armv6(unsigned char *y, int ystride, const unsigned char *blimit); void vp8_loop_filter_bhs_neon(unsigned char *y, int ystride, const unsigned char *blimit); -RTCD_EXTERN void (*vp8_loop_filter_simple_bh)(unsigned char *y, int ystride, const unsigned char *blimit); +#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_neon void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride); void vp8_short_idct4x4llm_v6_dual(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride); void vp8_short_idct4x4llm_neon(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride); -RTCD_EXTERN void (*vp8_short_idct4x4llm)(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride); +#define vp8_short_idct4x4llm vp8_short_idct4x4llm_neon void vp8_short_inv_walsh4x4_1_c(short *input, short *output); #define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c @@ -89,27 +91,27 @@ void vp8_short_inv_walsh4x4_1_c(short *input, short *output); void vp8_short_inv_walsh4x4_c(short *input, short *output); void vp8_short_inv_walsh4x4_v6(short *input, short *output); void vp8_short_inv_walsh4x4_neon(short *input, short *output); -RTCD_EXTERN void (*vp8_short_inv_walsh4x4)(short *input, short *output); +#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_neon void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride); void vp8_dc_only_idct_add_v6(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride); void vp8_dc_only_idct_add_neon(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride); -RTCD_EXTERN void (*vp8_dc_only_idct_add)(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride); +#define vp8_dc_only_idct_add vp8_dc_only_idct_add_neon void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); void vp8_copy_mem16x16_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); void vp8_copy_mem16x16_neon(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); -RTCD_EXTERN void (*vp8_copy_mem16x16)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); +#define vp8_copy_mem16x16 vp8_copy_mem16x16_neon void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); void vp8_copy_mem8x8_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); void vp8_copy_mem8x8_neon(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); -RTCD_EXTERN void (*vp8_copy_mem8x8)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); +#define vp8_copy_mem8x8 vp8_copy_mem8x8_neon void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); void vp8_copy_mem8x4_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); void vp8_copy_mem8x4_neon(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); -RTCD_EXTERN void (*vp8_copy_mem8x4)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); +#define vp8_copy_mem8x4 vp8_copy_mem8x4_neon void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride); #define vp8_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s_c @@ -117,12 +119,8 @@ void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * y void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride); #define vp8_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_c -void vp8_intra4x4_predict_d_c(unsigned char *above, unsigned char *left, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); -#define vp8_intra4x4_predict_d vp8_intra4x4_predict_d_c - -void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride); -void vp8_intra4x4_predict_armv6(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride); -RTCD_EXTERN void (*vp8_intra4x4_predict)(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride); +void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, B_PREDICTION_MODE b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); +#define vp8_intra4x4_predict vp8_intra4x4_predict_c void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit); #define vp8_mbpost_proc_down vp8_mbpost_proc_down_c @@ -157,42 +155,42 @@ void vp8_filter_by_weight4x4_c(unsigned char *src, int src_stride, unsigned char void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_sixtap_predict16x16_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_sixtap_predict16x16_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -RTCD_EXTERN void (*vp8_sixtap_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_neon void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_sixtap_predict8x8_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_sixtap_predict8x8_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -RTCD_EXTERN void (*vp8_sixtap_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_neon void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_sixtap_predict8x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_sixtap_predict8x4_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -RTCD_EXTERN void (*vp8_sixtap_predict8x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_neon void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_sixtap_predict4x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_sixtap_predict4x4_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -RTCD_EXTERN void (*vp8_sixtap_predict4x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_neon void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_bilinear_predict16x16_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_bilinear_predict16x16_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -RTCD_EXTERN void (*vp8_bilinear_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_neon void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_bilinear_predict8x8_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_bilinear_predict8x8_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -RTCD_EXTERN void (*vp8_bilinear_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_neon void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_bilinear_predict8x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_bilinear_predict8x4_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -RTCD_EXTERN void (*vp8_bilinear_predict8x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_neon void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_bilinear_predict4x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); void vp8_bilinear_predict4x4_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -RTCD_EXTERN void (*vp8_bilinear_predict4x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_neon unsigned int vp8_variance4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); #define vp8_variance4x4 vp8_variance4x4_c @@ -200,20 +198,20 @@ unsigned int vp8_variance4x4_c(const unsigned char *src_ptr, int source_stride, unsigned int vp8_variance8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance8x8_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance8x8_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -RTCD_EXTERN unsigned int (*vp8_variance8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance8x8 vp8_variance8x8_neon unsigned int vp8_variance8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance8x16_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -RTCD_EXTERN unsigned int (*vp8_variance8x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance8x16 vp8_variance8x16_neon unsigned int vp8_variance16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance16x8_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -RTCD_EXTERN unsigned int (*vp8_variance16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance16x8 vp8_variance16x8_neon unsigned int vp8_variance16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance16x16_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance16x16_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -RTCD_EXTERN unsigned int (*vp8_variance16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance16x16 vp8_variance16x16_neon unsigned int vp8_sub_pixel_variance4x4_c(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); #define vp8_sub_pixel_variance4x4 vp8_sub_pixel_variance4x4_c @@ -221,7 +219,7 @@ unsigned int vp8_sub_pixel_variance4x4_c(const unsigned char *src_ptr, int sou unsigned int vp8_sub_pixel_variance8x8_c(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); unsigned int vp8_sub_pixel_variance8x8_armv6(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); unsigned int vp8_sub_pixel_variance8x8_neon(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); -RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance8x8)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); +#define vp8_sub_pixel_variance8x8 vp8_sub_pixel_variance8x8_neon unsigned int vp8_sub_pixel_variance8x16_c(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); #define vp8_sub_pixel_variance8x16 vp8_sub_pixel_variance8x16_c @@ -232,87 +230,87 @@ unsigned int vp8_sub_pixel_variance16x8_c(const unsigned char *src_ptr, int so unsigned int vp8_sub_pixel_variance16x16_c(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); unsigned int vp8_sub_pixel_variance16x16_armv6(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); unsigned int vp8_sub_pixel_variance16x16_neon(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); -RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); +#define vp8_sub_pixel_variance16x16 vp8_sub_pixel_variance16x16_neon unsigned int vp8_variance_halfpixvar16x16_h_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance_halfpixvar16x16_h_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance_halfpixvar16x16_h_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_h)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_neon unsigned int vp8_variance_halfpixvar16x16_v_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance_halfpixvar16x16_v_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance_halfpixvar16x16_v_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_v)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_neon unsigned int vp8_variance_halfpixvar16x16_hv_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance_halfpixvar16x16_hv_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_variance_halfpixvar16x16_hv_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_hv)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_neon -unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad4x4_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad4x4)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad4x4_neon(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +#define vp8_sad4x4 vp8_sad4x4_neon -unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x8_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x8_neon(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +#define vp8_sad8x8 vp8_sad8x8_neon -unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x16_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad8x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x16_neon(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +#define vp8_sad8x16 vp8_sad8x16_neon -unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x8_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x8_neon(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +#define vp8_sad16x8 vp8_sad16x8_neon -unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_armv6(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_neon(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +#define vp8_sad16x16 vp8_sad16x16_neon -void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); #define vp8_sad4x4x3 vp8_sad4x4x3_c -void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); #define vp8_sad8x8x3 vp8_sad8x8x3_c -void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); #define vp8_sad8x16x3 vp8_sad8x16x3_c -void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); #define vp8_sad16x8x3 vp8_sad16x8x3_c -void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); #define vp8_sad16x16x3 vp8_sad16x16x3_c -void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad4x4x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); #define vp8_sad4x4x8 vp8_sad4x4x8_c -void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); #define vp8_sad8x8x8 vp8_sad8x8x8_c -void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); #define vp8_sad8x16x8 vp8_sad8x16x8_c -void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); #define vp8_sad16x8x8 vp8_sad16x8x8_c -void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); #define vp8_sad16x16x8 vp8_sad16x16x8_c -void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); #define vp8_sad4x4x4d vp8_sad4x4x4d_c -void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); #define vp8_sad8x8x4d vp8_sad8x8x4d_c -void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); #define vp8_sad8x16x4d vp8_sad8x16x4d_c -void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); #define vp8_sad16x8x4d vp8_sad16x8x4d_c -void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); #define vp8_sad16x16x4d vp8_sad16x16x4d_c unsigned int vp8_get_mb_ss_c(const short *); @@ -324,26 +322,26 @@ unsigned int vp8_sub_pixel_mse16x16_c(const unsigned char *src_ptr, int source unsigned int vp8_mse16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_mse16x16_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); unsigned int vp8_mse16x16_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -RTCD_EXTERN unsigned int (*vp8_mse16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_mse16x16 vp8_mse16x16_neon unsigned int vp8_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride); unsigned int vp8_get4x4sse_cs_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride); -RTCD_EXTERN unsigned int (*vp8_get4x4sse_cs)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride); +#define vp8_get4x4sse_cs vp8_get4x4sse_cs_neon void vp8_short_fdct4x4_c(short *input, short *output, int pitch); void vp8_short_fdct4x4_armv6(short *input, short *output, int pitch); void vp8_short_fdct4x4_neon(short *input, short *output, int pitch); -RTCD_EXTERN void (*vp8_short_fdct4x4)(short *input, short *output, int pitch); +#define vp8_short_fdct4x4 vp8_short_fdct4x4_neon void vp8_short_fdct8x4_c(short *input, short *output, int pitch); void vp8_short_fdct8x4_armv6(short *input, short *output, int pitch); void vp8_short_fdct8x4_neon(short *input, short *output, int pitch); -RTCD_EXTERN void (*vp8_short_fdct8x4)(short *input, short *output, int pitch); +#define vp8_short_fdct8x4 vp8_short_fdct8x4_neon void vp8_short_walsh4x4_c(short *input, short *output, int pitch); void vp8_short_walsh4x4_armv6(short *input, short *output, int pitch); void vp8_short_walsh4x4_neon(short *input, short *output, int pitch); -RTCD_EXTERN void (*vp8_short_walsh4x4)(short *input, short *output, int pitch); +#define vp8_short_walsh4x4 vp8_short_walsh4x4_neon void vp8_regular_quantize_b_c(struct block *, struct blockd *); #define vp8_regular_quantize_b vp8_regular_quantize_b_c @@ -351,26 +349,26 @@ void vp8_regular_quantize_b_c(struct block *, struct blockd *); void vp8_fast_quantize_b_c(struct block *, struct blockd *); void vp8_fast_quantize_b_armv6(struct block *, struct blockd *); void vp8_fast_quantize_b_neon(struct block *, struct blockd *); -RTCD_EXTERN void (*vp8_fast_quantize_b)(struct block *, struct blockd *); +#define vp8_fast_quantize_b vp8_fast_quantize_b_neon void vp8_regular_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2); #define vp8_regular_quantize_b_pair vp8_regular_quantize_b_pair_c void vp8_fast_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2); void vp8_fast_quantize_b_pair_neon(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2); -RTCD_EXTERN void (*vp8_fast_quantize_b_pair)(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2); +#define vp8_fast_quantize_b_pair vp8_fast_quantize_b_pair_neon void vp8_quantize_mb_c(struct macroblock *); void vp8_quantize_mb_neon(struct macroblock *); -RTCD_EXTERN void (*vp8_quantize_mb)(struct macroblock *); +#define vp8_quantize_mb vp8_quantize_mb_neon void vp8_quantize_mby_c(struct macroblock *); void vp8_quantize_mby_neon(struct macroblock *); -RTCD_EXTERN void (*vp8_quantize_mby)(struct macroblock *); +#define vp8_quantize_mby vp8_quantize_mby_neon void vp8_quantize_mbuv_c(struct macroblock *); void vp8_quantize_mbuv_neon(struct macroblock *); -RTCD_EXTERN void (*vp8_quantize_mbuv)(struct macroblock *); +#define vp8_quantize_mbuv vp8_quantize_mbuv_neon int vp8_block_error_c(short *coeff, short *dqcoeff); #define vp8_block_error vp8_block_error_c @@ -384,17 +382,17 @@ int vp8_mbuverror_c(struct macroblock *mb); void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch); void vp8_subtract_b_armv6(struct block *be, struct blockd *bd, int pitch); void vp8_subtract_b_neon(struct block *be, struct blockd *bd, int pitch); -RTCD_EXTERN void (*vp8_subtract_b)(struct block *be, struct blockd *bd, int pitch); +#define vp8_subtract_b vp8_subtract_b_neon void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride); void vp8_subtract_mby_armv6(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride); void vp8_subtract_mby_neon(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride); -RTCD_EXTERN void (*vp8_subtract_mby)(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride); +#define vp8_subtract_mby vp8_subtract_mby_neon void vp8_subtract_mbuv_c(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride); void vp8_subtract_mbuv_armv6(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride); void vp8_subtract_mbuv_neon(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride); -RTCD_EXTERN void (*vp8_subtract_mbuv)(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride); +#define vp8_subtract_mbuv vp8_subtract_mbuv_neon int vp8_full_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv); #define vp8_full_search_sad vp8_full_search_sad_c @@ -407,7 +405,7 @@ int vp8_diamond_search_sad_c(struct macroblock *x, struct block *b, struct block void vp8_yv12_copy_partial_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); void vp8_yv12_copy_partial_frame_neon(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); -RTCD_EXTERN void (*vp8_yv12_copy_partial_frame)(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); +#define vp8_yv12_copy_partial_frame vp8_yv12_copy_partial_frame_neon int vp8_denoiser_filter_c(struct yv12_buffer_config* mc_running_avg, struct yv12_buffer_config* running_avg, struct macroblock* signal, unsigned int motion_magnitude2, int y_offset, int uv_offset); #define vp8_denoiser_filter vp8_denoiser_filter_c @@ -480,308 +478,28 @@ void vp8_vertical_band_2_1_scale_i_c(unsigned char *source, unsigned int src_pit void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf); void vp8_yv12_extend_frame_borders_neon(struct yv12_buffer_config *ybf); -RTCD_EXTERN void (*vp8_yv12_extend_frame_borders)(struct yv12_buffer_config *ybf); +#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_neon void vp8_yv12_copy_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); void vp8_yv12_copy_frame_neon(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); -RTCD_EXTERN void (*vp8_yv12_copy_frame)(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); +#define vp8_yv12_copy_frame vp8_yv12_copy_frame_neon void vp8_yv12_copy_y_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); void vp8_yv12_copy_y_neon(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); -RTCD_EXTERN void (*vp8_yv12_copy_y)(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); -#include "vpx_config.h" +#define vp8_yv12_copy_y vp8_yv12_copy_y_neon void vpx_rtcd(void); +#include "vpx_config.h" #ifdef RTCD_C #include "vpx_ports/arm.h" -void vpx_rtcd(void) +static void setup_rtcd_internal(void) { int flags = arm_cpu_caps(); (void)flags; - vp8_dequantize_b = vp8_dequantize_b_c; - if (flags & HAS_MEDIA) vp8_dequantize_b = vp8_dequantize_b_v6; - if (flags & HAS_NEON) vp8_dequantize_b = vp8_dequantize_b_neon; - vp8_dequant_idct_add = vp8_dequant_idct_add_c; - if (flags & HAS_MEDIA) vp8_dequant_idct_add = vp8_dequant_idct_add_v6; - if (flags & HAS_NEON) vp8_dequant_idct_add = vp8_dequant_idct_add_neon; - - vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_c; - if (flags & HAS_MEDIA) vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_v6; - if (flags & HAS_NEON) vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_neon; - - vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_c; - if (flags & HAS_MEDIA) vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_v6; - if (flags & HAS_NEON) vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_neon; - - vp8_loop_filter_mbv = vp8_loop_filter_mbv_c; - if (flags & HAS_MEDIA) vp8_loop_filter_mbv = vp8_loop_filter_mbv_armv6; - if (flags & HAS_NEON) vp8_loop_filter_mbv = vp8_loop_filter_mbv_neon; - - vp8_loop_filter_bv = vp8_loop_filter_bv_c; - if (flags & HAS_MEDIA) vp8_loop_filter_bv = vp8_loop_filter_bv_armv6; - if (flags & HAS_NEON) vp8_loop_filter_bv = vp8_loop_filter_bv_neon; - - vp8_loop_filter_mbh = vp8_loop_filter_mbh_c; - if (flags & HAS_MEDIA) vp8_loop_filter_mbh = vp8_loop_filter_mbh_armv6; - if (flags & HAS_NEON) vp8_loop_filter_mbh = vp8_loop_filter_mbh_neon; - - vp8_loop_filter_bh = vp8_loop_filter_bh_c; - if (flags & HAS_MEDIA) vp8_loop_filter_bh = vp8_loop_filter_bh_armv6; - if (flags & HAS_NEON) vp8_loop_filter_bh = vp8_loop_filter_bh_neon; - - vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_c; - if (flags & HAS_MEDIA) vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_armv6; - if (flags & HAS_NEON) vp8_loop_filter_simple_mbv = vp8_loop_filter_mbvs_neon; - - vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_c; - if (flags & HAS_MEDIA) vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_armv6; - if (flags & HAS_NEON) vp8_loop_filter_simple_mbh = vp8_loop_filter_mbhs_neon; - - vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_c; - if (flags & HAS_MEDIA) vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_armv6; - if (flags & HAS_NEON) vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_neon; - - vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_c; - if (flags & HAS_MEDIA) vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_armv6; - if (flags & HAS_NEON) vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_neon; - - vp8_short_idct4x4llm = vp8_short_idct4x4llm_c; - if (flags & HAS_MEDIA) vp8_short_idct4x4llm = vp8_short_idct4x4llm_v6_dual; - if (flags & HAS_NEON) vp8_short_idct4x4llm = vp8_short_idct4x4llm_neon; - - - vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_c; - if (flags & HAS_MEDIA) vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_v6; - if (flags & HAS_NEON) vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_neon; - - vp8_dc_only_idct_add = vp8_dc_only_idct_add_c; - if (flags & HAS_MEDIA) vp8_dc_only_idct_add = vp8_dc_only_idct_add_v6; - if (flags & HAS_NEON) vp8_dc_only_idct_add = vp8_dc_only_idct_add_neon; - - vp8_copy_mem16x16 = vp8_copy_mem16x16_c; - if (flags & HAS_MEDIA) vp8_copy_mem16x16 = vp8_copy_mem16x16_v6; - if (flags & HAS_NEON) vp8_copy_mem16x16 = vp8_copy_mem16x16_neon; - - vp8_copy_mem8x8 = vp8_copy_mem8x8_c; - if (flags & HAS_MEDIA) vp8_copy_mem8x8 = vp8_copy_mem8x8_v6; - if (flags & HAS_NEON) vp8_copy_mem8x8 = vp8_copy_mem8x8_neon; - - vp8_copy_mem8x4 = vp8_copy_mem8x4_c; - if (flags & HAS_MEDIA) vp8_copy_mem8x4 = vp8_copy_mem8x4_v6; - if (flags & HAS_NEON) vp8_copy_mem8x4 = vp8_copy_mem8x4_neon; - - - - - vp8_intra4x4_predict = vp8_intra4x4_predict_c; - if (flags & HAS_MEDIA) vp8_intra4x4_predict = vp8_intra4x4_predict_armv6; - - - - - - - - - - - - vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_c; - if (flags & HAS_MEDIA) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_armv6; - if (flags & HAS_NEON) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_neon; - - vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_c; - if (flags & HAS_MEDIA) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_armv6; - if (flags & HAS_NEON) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_neon; - - vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_c; - if (flags & HAS_MEDIA) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_armv6; - if (flags & HAS_NEON) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_neon; - - vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_c; - if (flags & HAS_MEDIA) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_armv6; - if (flags & HAS_NEON) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_neon; - - vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_c; - if (flags & HAS_MEDIA) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_armv6; - if (flags & HAS_NEON) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_neon; - - vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_c; - if (flags & HAS_MEDIA) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_armv6; - if (flags & HAS_NEON) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_neon; - - vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_c; - if (flags & HAS_MEDIA) vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_armv6; - if (flags & HAS_NEON) vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_neon; - - vp8_bilinear_predict4x4 = vp8_bilinear_predict4x4_c; - if (flags & HAS_MEDIA) vp8_bilinear_predict4x4 = vp8_bilinear_predict4x4_armv6; - if (flags & HAS_NEON) vp8_bilinear_predict4x4 = vp8_bilinear_predict4x4_neon; - - - vp8_variance8x8 = vp8_variance8x8_c; - if (flags & HAS_MEDIA) vp8_variance8x8 = vp8_variance8x8_armv6; - if (flags & HAS_NEON) vp8_variance8x8 = vp8_variance8x8_neon; - - vp8_variance8x16 = vp8_variance8x16_c; - if (flags & HAS_NEON) vp8_variance8x16 = vp8_variance8x16_neon; - - vp8_variance16x8 = vp8_variance16x8_c; - if (flags & HAS_NEON) vp8_variance16x8 = vp8_variance16x8_neon; - - vp8_variance16x16 = vp8_variance16x16_c; - if (flags & HAS_MEDIA) vp8_variance16x16 = vp8_variance16x16_armv6; - if (flags & HAS_NEON) vp8_variance16x16 = vp8_variance16x16_neon; - - - vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_c; - if (flags & HAS_MEDIA) vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_armv6; - if (flags & HAS_NEON) vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_neon; - - - - vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_c; - if (flags & HAS_MEDIA) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_armv6; - if (flags & HAS_NEON) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_neon; - - vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_c; - if (flags & HAS_MEDIA) vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_armv6; - if (flags & HAS_NEON) vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_neon; - - vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_c; - if (flags & HAS_MEDIA) vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_armv6; - if (flags & HAS_NEON) vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_neon; - - vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_c; - if (flags & HAS_MEDIA) vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_armv6; - if (flags & HAS_NEON) vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_neon; - - vp8_sad4x4 = vp8_sad4x4_c; - if (flags & HAS_NEON) vp8_sad4x4 = vp8_sad4x4_neon; - - vp8_sad8x8 = vp8_sad8x8_c; - if (flags & HAS_NEON) vp8_sad8x8 = vp8_sad8x8_neon; - - vp8_sad8x16 = vp8_sad8x16_c; - if (flags & HAS_NEON) vp8_sad8x16 = vp8_sad8x16_neon; - - vp8_sad16x8 = vp8_sad16x8_c; - if (flags & HAS_NEON) vp8_sad16x8 = vp8_sad16x8_neon; - - vp8_sad16x16 = vp8_sad16x16_c; - if (flags & HAS_MEDIA) vp8_sad16x16 = vp8_sad16x16_armv6; - if (flags & HAS_NEON) vp8_sad16x16 = vp8_sad16x16_neon; - - - - - - - - - - - - - - - - - - - vp8_mse16x16 = vp8_mse16x16_c; - if (flags & HAS_MEDIA) vp8_mse16x16 = vp8_mse16x16_armv6; - if (flags & HAS_NEON) vp8_mse16x16 = vp8_mse16x16_neon; - - vp8_get4x4sse_cs = vp8_get4x4sse_cs_c; - if (flags & HAS_NEON) vp8_get4x4sse_cs = vp8_get4x4sse_cs_neon; - - vp8_short_fdct4x4 = vp8_short_fdct4x4_c; - if (flags & HAS_MEDIA) vp8_short_fdct4x4 = vp8_short_fdct4x4_armv6; - if (flags & HAS_NEON) vp8_short_fdct4x4 = vp8_short_fdct4x4_neon; - - vp8_short_fdct8x4 = vp8_short_fdct8x4_c; - if (flags & HAS_MEDIA) vp8_short_fdct8x4 = vp8_short_fdct8x4_armv6; - if (flags & HAS_NEON) vp8_short_fdct8x4 = vp8_short_fdct8x4_neon; - - vp8_short_walsh4x4 = vp8_short_walsh4x4_c; - if (flags & HAS_MEDIA) vp8_short_walsh4x4 = vp8_short_walsh4x4_armv6; - if (flags & HAS_NEON) vp8_short_walsh4x4 = vp8_short_walsh4x4_neon; - - - vp8_fast_quantize_b = vp8_fast_quantize_b_c; - if (flags & HAS_MEDIA) vp8_fast_quantize_b = vp8_fast_quantize_b_armv6; - if (flags & HAS_NEON) vp8_fast_quantize_b = vp8_fast_quantize_b_neon; - - - vp8_fast_quantize_b_pair = vp8_fast_quantize_b_pair_c; - if (flags & HAS_NEON) vp8_fast_quantize_b_pair = vp8_fast_quantize_b_pair_neon; - - vp8_quantize_mb = vp8_quantize_mb_c; - if (flags & HAS_NEON) vp8_quantize_mb = vp8_quantize_mb_neon; - - vp8_quantize_mby = vp8_quantize_mby_c; - if (flags & HAS_NEON) vp8_quantize_mby = vp8_quantize_mby_neon; - - vp8_quantize_mbuv = vp8_quantize_mbuv_c; - if (flags & HAS_NEON) vp8_quantize_mbuv = vp8_quantize_mbuv_neon; - - - - - vp8_subtract_b = vp8_subtract_b_c; - if (flags & HAS_MEDIA) vp8_subtract_b = vp8_subtract_b_armv6; - if (flags & HAS_NEON) vp8_subtract_b = vp8_subtract_b_neon; - - vp8_subtract_mby = vp8_subtract_mby_c; - if (flags & HAS_MEDIA) vp8_subtract_mby = vp8_subtract_mby_armv6; - if (flags & HAS_NEON) vp8_subtract_mby = vp8_subtract_mby_neon; - - vp8_subtract_mbuv = vp8_subtract_mbuv_c; - if (flags & HAS_MEDIA) vp8_subtract_mbuv = vp8_subtract_mbuv_armv6; - if (flags & HAS_NEON) vp8_subtract_mbuv = vp8_subtract_mbuv_neon; - - - - - vp8_yv12_copy_partial_frame = vp8_yv12_copy_partial_frame_c; - if (flags & HAS_NEON) vp8_yv12_copy_partial_frame = vp8_yv12_copy_partial_frame_neon; - - - - - - - - - - - - - - - - - - - - - - - - - vp8_yv12_extend_frame_borders = vp8_yv12_extend_frame_borders_c; - if (flags & HAS_NEON) vp8_yv12_extend_frame_borders = vp8_yv12_extend_frame_borders_neon; - - vp8_yv12_copy_frame = vp8_yv12_copy_frame_c; - if (flags & HAS_NEON) vp8_yv12_copy_frame = vp8_yv12_copy_frame_neon; - - vp8_yv12_copy_y = vp8_yv12_copy_y_c; - if (flags & HAS_NEON) vp8_yv12_copy_y = vp8_yv12_copy_y_neon; } #endif #endif diff --git a/third_party/libvpx/source/config/linux/arm/asm_enc_offsets.asm b/third_party/libvpx/source/config/linux/arm/asm_enc_offsets.asm deleted file mode 100644 index 7b50b32f39..0000000000 --- a/third_party/libvpx/source/config/linux/arm/asm_enc_offsets.asm +++ /dev/null @@ -1,48 +0,0 @@ -@ This file was created from a .asm file -@ using the ads2gas.pl script. - .equ DO1STROUNDING, 0 -.equ vp8_block_coeff , 4 -.equ vp8_block_zbin , 20 -.equ vp8_block_round , 28 -.equ vp8_block_quant , 8 -.equ vp8_block_quant_fast , 12 -.equ vp8_block_zbin_extra , 32 -.equ vp8_block_zrun_zbin_boost , 24 -.equ vp8_block_quant_shift , 16 -.equ vp8_blockd_qcoeff , 0 -.equ vp8_blockd_dequant , 12 -.equ vp8_blockd_dqcoeff , 4 -.equ vp8_blockd_eob , 20 -.equ vp8_block_base_src , 36 -.equ vp8_block_src , 40 -.equ vp8_block_src_diff , 0 -.equ vp8_block_src_stride , 44 -.equ vp8_blockd_predictor , 8 -.equ vp8_writer_lowvalue , 0 -.equ vp8_writer_range , 4 -.equ vp8_writer_count , 8 -.equ vp8_writer_pos , 12 -.equ vp8_writer_buffer , 16 -.equ vp8_writer_buffer_end , 20 -.equ vp8_writer_error , 24 -.equ tokenextra_token , 6 -.equ tokenextra_extra , 4 -.equ tokenextra_context_tree , 0 -.equ tokenextra_skip_eob_node , 7 -.equ TOKENEXTRA_SZ , 8 -.equ vp8_extra_bit_struct_sz , 16 -.equ vp8_token_value , 0 -.equ vp8_token_len , 4 -.equ vp8_extra_bit_struct_tree , 0 -.equ vp8_extra_bit_struct_prob , 4 -.equ vp8_extra_bit_struct_len , 8 -.equ vp8_extra_bit_struct_base_val , 12 -.equ vp8_comp_tplist , 167128 -.equ vp8_comp_common , 103296 -.equ vp8_comp_bc , 112656 -.equ vp8_writer_sz , 36 -.equ tokenlist_start , 0 -.equ tokenlist_stop , 4 -.equ TOKENLIST_SZ , 8 -.equ vp8_common_mb_rows , 2392 - .section .note.GNU-stack,"",%progbits diff --git a/third_party/libvpx/source/config/linux/arm/vpx_config.asm b/third_party/libvpx/source/config/linux/arm/vpx_config.asm index 3b04225444..3494595212 100644 --- a/third_party/libvpx/source/config/linux/arm/vpx_config.asm +++ b/third_party/libvpx/source/config/linux/arm/vpx_config.asm @@ -39,7 +39,7 @@ .equ CONFIG_BIG_ENDIAN , 0 .equ CONFIG_CODEC_SRCS , 0 .equ CONFIG_DEBUG_LIBS , 0 -.equ CONFIG_FAST_UN.balignED , 1 +.equ CONFIG_FAST_UNALIGNED , 1 .equ CONFIG_MEM_MANAGER , 0 .equ CONFIG_MEM_TRACKER , 0 .equ CONFIG_MEM_CHECKS , 0 diff --git a/third_party/libvpx/source/config/linux/arm/vpx_rtcd.h b/third_party/libvpx/source/config/linux/arm/vpx_rtcd.h index 4f16111ac3..10cef0c993 100644 --- a/third_party/libvpx/source/config/linux/arm/vpx_rtcd.h +++ b/third_party/libvpx/source/config/linux/arm/vpx_rtcd.h @@ -7,6 +7,8 @@ #define RTCD_EXTERN extern #endif +#include "vp8/common/blockd.h" + struct blockd; struct macroblockd; struct loop_filter_info; @@ -19,61 +21,79 @@ union int_mv; struct yv12_buffer_config; void vp8_dequantize_b_c(struct blockd*, short *dqc); -#define vp8_dequantize_b vp8_dequantize_b_c +void vp8_dequantize_b_v6(struct blockd*, short *dqc); +#define vp8_dequantize_b vp8_dequantize_b_v6 void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride); -#define vp8_dequant_idct_add vp8_dequant_idct_add_c +void vp8_dequant_idct_add_v6(short *input, short *dq, unsigned char *output, int stride); +#define vp8_dequant_idct_add vp8_dequant_idct_add_v6 void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs); -#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_c +void vp8_dequant_idct_add_y_block_v6(short *q, short *dq, unsigned char *dst, int stride, char *eobs); +#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_v6 void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs); -#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_c +void vp8_dequant_idct_add_uv_block_v6(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs); +#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_v6 void vp8_loop_filter_mbv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); -#define vp8_loop_filter_mbv vp8_loop_filter_mbv_c +void vp8_loop_filter_mbv_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); +#define vp8_loop_filter_mbv vp8_loop_filter_mbv_armv6 void vp8_loop_filter_bv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); -#define vp8_loop_filter_bv vp8_loop_filter_bv_c +void vp8_loop_filter_bv_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); +#define vp8_loop_filter_bv vp8_loop_filter_bv_armv6 void vp8_loop_filter_mbh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); -#define vp8_loop_filter_mbh vp8_loop_filter_mbh_c +void vp8_loop_filter_mbh_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); +#define vp8_loop_filter_mbh vp8_loop_filter_mbh_armv6 void vp8_loop_filter_bh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); -#define vp8_loop_filter_bh vp8_loop_filter_bh_c +void vp8_loop_filter_bh_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); +#define vp8_loop_filter_bh vp8_loop_filter_bh_armv6 void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit); -#define vp8_loop_filter_simple_mbv vp8_loop_filter_simple_vertical_edge_c +void vp8_loop_filter_simple_vertical_edge_armv6(unsigned char *y, int ystride, const unsigned char *blimit); +#define vp8_loop_filter_simple_mbv vp8_loop_filter_simple_vertical_edge_armv6 void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit); -#define vp8_loop_filter_simple_mbh vp8_loop_filter_simple_horizontal_edge_c +void vp8_loop_filter_simple_horizontal_edge_armv6(unsigned char *y, int ystride, const unsigned char *blimit); +#define vp8_loop_filter_simple_mbh vp8_loop_filter_simple_horizontal_edge_armv6 void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit); -#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_c +void vp8_loop_filter_bvs_armv6(unsigned char *y, int ystride, const unsigned char *blimit); +#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_armv6 void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit); -#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_c +void vp8_loop_filter_bhs_armv6(unsigned char *y, int ystride, const unsigned char *blimit); +#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_armv6 void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride); -#define vp8_short_idct4x4llm vp8_short_idct4x4llm_c +void vp8_short_idct4x4llm_v6_dual(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride); +#define vp8_short_idct4x4llm vp8_short_idct4x4llm_v6_dual void vp8_short_inv_walsh4x4_1_c(short *input, short *output); #define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c void vp8_short_inv_walsh4x4_c(short *input, short *output); -#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_c +void vp8_short_inv_walsh4x4_v6(short *input, short *output); +#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_v6 void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride); -#define vp8_dc_only_idct_add vp8_dc_only_idct_add_c +void vp8_dc_only_idct_add_v6(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride); +#define vp8_dc_only_idct_add vp8_dc_only_idct_add_v6 void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); -#define vp8_copy_mem16x16 vp8_copy_mem16x16_c +void vp8_copy_mem16x16_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); +#define vp8_copy_mem16x16 vp8_copy_mem16x16_v6 void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); -#define vp8_copy_mem8x8 vp8_copy_mem8x8_c +void vp8_copy_mem8x8_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); +#define vp8_copy_mem8x8 vp8_copy_mem8x8_v6 void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); -#define vp8_copy_mem8x4 vp8_copy_mem8x4_c +void vp8_copy_mem8x4_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); +#define vp8_copy_mem8x4 vp8_copy_mem8x4_v6 void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride); #define vp8_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s_c @@ -81,10 +101,7 @@ void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * y void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride); #define vp8_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_c -void vp8_intra4x4_predict_d_c(unsigned char *above, unsigned char *left, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); -#define vp8_intra4x4_predict_d vp8_intra4x4_predict_d_c - -void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride); +void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, B_PREDICTION_MODE b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); #define vp8_intra4x4_predict vp8_intra4x4_predict_c void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit); @@ -118,34 +135,43 @@ void vp8_filter_by_weight4x4_c(unsigned char *src, int src_stride, unsigned char #define vp8_filter_by_weight4x4 vp8_filter_by_weight4x4_c void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -#define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_c +void vp8_sixtap_predict16x16_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_armv6 void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_c +void vp8_sixtap_predict8x8_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_armv6 void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -#define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_c +void vp8_sixtap_predict8x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_armv6 void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_c +void vp8_sixtap_predict4x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_armv6 void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -#define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_c +void vp8_bilinear_predict16x16_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_armv6 void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -#define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_c +void vp8_bilinear_predict8x8_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_armv6 void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_c +void vp8_bilinear_predict8x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_armv6 void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); -#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_c +void vp8_bilinear_predict4x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); +#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_armv6 unsigned int vp8_variance4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); #define vp8_variance4x4 vp8_variance4x4_c unsigned int vp8_variance8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -#define vp8_variance8x8 vp8_variance8x8_c +unsigned int vp8_variance8x8_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance8x8 vp8_variance8x8_armv6 unsigned int vp8_variance8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); #define vp8_variance8x16 vp8_variance8x16_c @@ -154,13 +180,15 @@ unsigned int vp8_variance16x8_c(const unsigned char *src_ptr, int source_stride, #define vp8_variance16x8 vp8_variance16x8_c unsigned int vp8_variance16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -#define vp8_variance16x16 vp8_variance16x16_c +unsigned int vp8_variance16x16_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance16x16 vp8_variance16x16_armv6 unsigned int vp8_sub_pixel_variance4x4_c(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); #define vp8_sub_pixel_variance4x4 vp8_sub_pixel_variance4x4_c unsigned int vp8_sub_pixel_variance8x8_c(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); -#define vp8_sub_pixel_variance8x8 vp8_sub_pixel_variance8x8_c +unsigned int vp8_sub_pixel_variance8x8_armv6(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); +#define vp8_sub_pixel_variance8x8 vp8_sub_pixel_variance8x8_armv6 unsigned int vp8_sub_pixel_variance8x16_c(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); #define vp8_sub_pixel_variance8x16 vp8_sub_pixel_variance8x16_c @@ -169,75 +197,80 @@ unsigned int vp8_sub_pixel_variance16x8_c(const unsigned char *src_ptr, int so #define vp8_sub_pixel_variance16x8 vp8_sub_pixel_variance16x8_c unsigned int vp8_sub_pixel_variance16x16_c(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); -#define vp8_sub_pixel_variance16x16 vp8_sub_pixel_variance16x16_c +unsigned int vp8_sub_pixel_variance16x16_armv6(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse); +#define vp8_sub_pixel_variance16x16 vp8_sub_pixel_variance16x16_armv6 unsigned int vp8_variance_halfpixvar16x16_h_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -#define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_c +unsigned int vp8_variance_halfpixvar16x16_h_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_armv6 unsigned int vp8_variance_halfpixvar16x16_v_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -#define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_c +unsigned int vp8_variance_halfpixvar16x16_v_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_armv6 unsigned int vp8_variance_halfpixvar16x16_hv_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -#define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_c +unsigned int vp8_variance_halfpixvar16x16_hv_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_armv6 -unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); #define vp8_sad4x4 vp8_sad4x4_c -unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); #define vp8_sad8x8 vp8_sad8x8_c -unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); #define vp8_sad8x16 vp8_sad8x16_c -unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); #define vp8_sad16x8 vp8_sad16x8_c -unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -#define vp8_sad16x16 vp8_sad16x16_c +unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_armv6(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +#define vp8_sad16x16 vp8_sad16x16_armv6 -void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); #define vp8_sad4x4x3 vp8_sad4x4x3_c -void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); #define vp8_sad8x8x3 vp8_sad8x8x3_c -void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); #define vp8_sad8x16x3 vp8_sad8x16x3_c -void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); #define vp8_sad16x8x3 vp8_sad16x8x3_c -void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); #define vp8_sad16x16x3 vp8_sad16x16x3_c -void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad4x4x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); #define vp8_sad4x4x8 vp8_sad4x4x8_c -void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); #define vp8_sad8x8x8 vp8_sad8x8x8_c -void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); #define vp8_sad8x16x8 vp8_sad8x16x8_c -void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); #define vp8_sad16x8x8 vp8_sad16x8x8_c -void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); #define vp8_sad16x16x8 vp8_sad16x16x8_c -void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); #define vp8_sad4x4x4d vp8_sad4x4x4d_c -void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); #define vp8_sad8x8x4d vp8_sad8x8x4d_c -void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); #define vp8_sad8x16x4d vp8_sad8x16x4d_c -void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); #define vp8_sad16x8x4d vp8_sad16x8x4d_c -void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); #define vp8_sad16x16x4d vp8_sad16x16x4d_c unsigned int vp8_get_mb_ss_c(const short *); @@ -247,25 +280,30 @@ unsigned int vp8_sub_pixel_mse16x16_c(const unsigned char *src_ptr, int source #define vp8_sub_pixel_mse16x16 vp8_sub_pixel_mse16x16_c unsigned int vp8_mse16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -#define vp8_mse16x16 vp8_mse16x16_c +unsigned int vp8_mse16x16_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); +#define vp8_mse16x16 vp8_mse16x16_armv6 unsigned int vp8_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride); #define vp8_get4x4sse_cs vp8_get4x4sse_cs_c void vp8_short_fdct4x4_c(short *input, short *output, int pitch); -#define vp8_short_fdct4x4 vp8_short_fdct4x4_c +void vp8_short_fdct4x4_armv6(short *input, short *output, int pitch); +#define vp8_short_fdct4x4 vp8_short_fdct4x4_armv6 void vp8_short_fdct8x4_c(short *input, short *output, int pitch); -#define vp8_short_fdct8x4 vp8_short_fdct8x4_c +void vp8_short_fdct8x4_armv6(short *input, short *output, int pitch); +#define vp8_short_fdct8x4 vp8_short_fdct8x4_armv6 void vp8_short_walsh4x4_c(short *input, short *output, int pitch); -#define vp8_short_walsh4x4 vp8_short_walsh4x4_c +void vp8_short_walsh4x4_armv6(short *input, short *output, int pitch); +#define vp8_short_walsh4x4 vp8_short_walsh4x4_armv6 void vp8_regular_quantize_b_c(struct block *, struct blockd *); #define vp8_regular_quantize_b vp8_regular_quantize_b_c void vp8_fast_quantize_b_c(struct block *, struct blockd *); -#define vp8_fast_quantize_b vp8_fast_quantize_b_c +void vp8_fast_quantize_b_armv6(struct block *, struct blockd *); +#define vp8_fast_quantize_b vp8_fast_quantize_b_armv6 void vp8_regular_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2); #define vp8_regular_quantize_b_pair vp8_regular_quantize_b_pair_c @@ -292,13 +330,16 @@ int vp8_mbuverror_c(struct macroblock *mb); #define vp8_mbuverror vp8_mbuverror_c void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch); -#define vp8_subtract_b vp8_subtract_b_c +void vp8_subtract_b_armv6(struct block *be, struct blockd *bd, int pitch); +#define vp8_subtract_b vp8_subtract_b_armv6 void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride); -#define vp8_subtract_mby vp8_subtract_mby_c +void vp8_subtract_mby_armv6(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride); +#define vp8_subtract_mby vp8_subtract_mby_armv6 void vp8_subtract_mbuv_c(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride); -#define vp8_subtract_mbuv vp8_subtract_mbuv_c +void vp8_subtract_mbuv_armv6(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride); +#define vp8_subtract_mbuv vp8_subtract_mbuv_armv6 int vp8_full_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv); #define vp8_full_search_sad vp8_full_search_sad_c @@ -389,13 +430,13 @@ void vp8_yv12_copy_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffe void vp8_yv12_copy_y_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); #define vp8_yv12_copy_y vp8_yv12_copy_y_c -#include "vpx_config.h" void vpx_rtcd(void); +#include "vpx_config.h" #ifdef RTCD_C #include "vpx_ports/arm.h" -void vpx_rtcd(void) +static void setup_rtcd_internal(void) { int flags = arm_cpu_caps(); diff --git a/third_party/libvpx/source/config/linux/ia32/asm_enc_offsets.asm b/third_party/libvpx/source/config/linux/ia32/asm_enc_offsets.asm deleted file mode 100644 index 9c2a142f08..0000000000 --- a/third_party/libvpx/source/config/linux/ia32/asm_enc_offsets.asm +++ /dev/null @@ -1,44 +0,0 @@ -vp8_block_coeff EQU 4 -vp8_block_zbin EQU 20 -vp8_block_round EQU 28 -vp8_block_quant EQU 8 -vp8_block_quant_fast EQU 12 -vp8_block_zbin_extra EQU 32 -vp8_block_zrun_zbin_boost EQU 24 -vp8_block_quant_shift EQU 16 -vp8_blockd_qcoeff EQU 0 -vp8_blockd_dequant EQU 12 -vp8_blockd_dqcoeff EQU 4 -vp8_blockd_eob EQU 20 -vp8_block_base_src EQU 36 -vp8_block_src EQU 40 -vp8_block_src_diff EQU 0 -vp8_block_src_stride EQU 44 -vp8_blockd_predictor EQU 8 -vp8_writer_lowvalue EQU 0 -vp8_writer_range EQU 4 -vp8_writer_count EQU 8 -vp8_writer_pos EQU 12 -vp8_writer_buffer EQU 16 -vp8_writer_buffer_end EQU 20 -vp8_writer_error EQU 24 -tokenextra_token EQU 6 -tokenextra_extra EQU 4 -tokenextra_context_tree EQU 0 -tokenextra_skip_eob_node EQU 7 -TOKENEXTRA_SZ EQU 8 -vp8_extra_bit_struct_sz EQU 16 -vp8_token_value EQU 0 -vp8_token_len EQU 4 -vp8_extra_bit_struct_tree EQU 0 -vp8_extra_bit_struct_prob EQU 4 -vp8_extra_bit_struct_len EQU 8 -vp8_extra_bit_struct_base_val EQU 12 -vp8_comp_tplist EQU 170716 -vp8_comp_common EQU 104032 -vp8_comp_bc EQU 116240 -vp8_writer_sz EQU 36 -tokenlist_start EQU 0 -tokenlist_stop EQU 4 -TOKENLIST_SZ EQU 8 -vp8_common_mb_rows EQU 2296 diff --git a/third_party/libvpx/source/config/linux/ia32/obj_int_extract.c b/third_party/libvpx/source/config/linux/ia32/obj_int_extract.c deleted file mode 100644 index 04e14a6c81..0000000000 --- a/third_party/libvpx/source/config/linux/ia32/obj_int_extract.c +++ /dev/null @@ -1,914 +0,0 @@ -/* - * 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. - */ - - -#include -#include -#include -#include - -#include "vpx_config.h" -#include "vpx/vpx_integer.h" - -typedef enum -{ - OUTPUT_FMT_PLAIN, - OUTPUT_FMT_RVDS, - OUTPUT_FMT_GAS, -} output_fmt_t; - -int log_msg(const char *fmt, ...) -{ - int res; - va_list ap; - va_start(ap, fmt); - res = vfprintf(stderr, fmt, ap); - va_end(ap); - return res; -} - -#if defined(__GNUC__) && __GNUC__ -#if defined(__MACH__) - -#include -#include - -int parse_macho(uint8_t *base_buf, size_t sz) -{ - int i, j; - struct mach_header header; - uint8_t *buf = base_buf; - int base_data_section = 0; - int bits = 0; - - /* We can read in mach_header for 32 and 64 bit architectures - * because it's identical to mach_header_64 except for the last - * element (uint32_t reserved), which we don't use. Then, when - * we know which architecture we're looking at, increment buf - * appropriately. - */ - memcpy(&header, buf, sizeof(struct mach_header)); - - if (header.magic == MH_MAGIC) - { - if (header.cputype == CPU_TYPE_ARM - || header.cputype == CPU_TYPE_X86) - { - bits = 32; - buf += sizeof(struct mach_header); - } - else - { - log_msg("Bad cputype for object file. Currently only tested for CPU_TYPE_[ARM|X86].\n"); - goto bail; - } - } - else if (header.magic == MH_MAGIC_64) - { - if (header.cputype == CPU_TYPE_X86_64) - { - bits = 64; - buf += sizeof(struct mach_header_64); - } - else - { - log_msg("Bad cputype for object file. Currently only tested for CPU_TYPE_X86_64.\n"); - goto bail; - } - } - else - { - log_msg("Bad magic number for object file. 0x%x or 0x%x expected, 0x%x found.\n", - MH_MAGIC, MH_MAGIC_64, header.magic); - goto bail; - } - - if (header.filetype != MH_OBJECT) - { - log_msg("Bad filetype for object file. Currently only tested for MH_OBJECT.\n"); - goto bail; - } - - for (i = 0; i < header.ncmds; i++) - { - struct load_command lc; - - memcpy(&lc, buf, sizeof(struct load_command)); - - if (lc.cmd == LC_SEGMENT) - { - uint8_t *seg_buf = buf; - struct section s; - struct segment_command seg_c; - - memcpy(&seg_c, seg_buf, sizeof(struct segment_command)); - seg_buf += sizeof(struct segment_command); - - /* Although each section is given it's own offset, nlist.n_value - * references the offset of the first section. This isn't - * apparent without debug information because the offset of the - * data section is the same as the first section. However, with - * debug sections mixed in, the offset of the debug section - * increases but n_value still references the first section. - */ - if (seg_c.nsects < 1) - { - log_msg("Not enough sections\n"); - goto bail; - } - - memcpy(&s, seg_buf, sizeof(struct section)); - base_data_section = s.offset; - } - else if (lc.cmd == LC_SEGMENT_64) - { - uint8_t *seg_buf = buf; - struct section_64 s; - struct segment_command_64 seg_c; - - memcpy(&seg_c, seg_buf, sizeof(struct segment_command_64)); - seg_buf += sizeof(struct segment_command_64); - - /* Explanation in LG_SEGMENT */ - if (seg_c.nsects < 1) - { - log_msg("Not enough sections\n"); - goto bail; - } - - memcpy(&s, seg_buf, sizeof(struct section_64)); - base_data_section = s.offset; - } - else if (lc.cmd == LC_SYMTAB) - { - if (base_data_section != 0) - { - struct symtab_command sc; - uint8_t *sym_buf = base_buf; - uint8_t *str_buf = base_buf; - - memcpy(&sc, buf, sizeof(struct symtab_command)); - - if (sc.cmdsize != sizeof(struct symtab_command)) - { - log_msg("Can't find symbol table!\n"); - goto bail; - } - - sym_buf += sc.symoff; - str_buf += sc.stroff; - - for (j = 0; j < sc.nsyms; j++) - { - /* Location of string is cacluated each time from the - * start of the string buffer. On darwin the symbols - * are prefixed by "_", so we bump the pointer by 1. - * The target value is defined as an int in asm_*_offsets.c, - * which is 4 bytes on all targets we currently use. - */ - if (bits == 32) - { - struct nlist nl; - int val; - - memcpy(&nl, sym_buf, sizeof(struct nlist)); - sym_buf += sizeof(struct nlist); - - memcpy(&val, base_buf + base_data_section + nl.n_value, - sizeof(val)); - printf("%-40s EQU %5d\n", - str_buf + nl.n_un.n_strx + 1, val); - } - else /* if (bits == 64) */ - { - struct nlist_64 nl; - int val; - - memcpy(&nl, sym_buf, sizeof(struct nlist_64)); - sym_buf += sizeof(struct nlist_64); - - memcpy(&val, base_buf + base_data_section + nl.n_value, - sizeof(val)); - printf("%-40s EQU %5d\n", - str_buf + nl.n_un.n_strx + 1, val); - } - } - } - } - - buf += lc.cmdsize; - } - - return 0; -bail: - return 1; - -} - -#elif defined(__ELF__) -#include "elf.h" - -#define COPY_STRUCT(dst, buf, ofst, sz) do {\ - if(ofst + sizeof((*(dst))) > sz) goto bail;\ - memcpy(dst, buf+ofst, sizeof((*(dst))));\ - } while(0) - -#define ENDIAN_ASSIGN(val, memb) do {\ - if(!elf->le_data) {log_msg("Big Endian data not supported yet!\n");goto bail;}\ - (val) = (memb);\ - } while(0) - -#define ENDIAN_ASSIGN_IN_PLACE(memb) do {\ - ENDIAN_ASSIGN(memb, memb);\ - } while(0) - -typedef struct -{ - uint8_t *buf; /* Buffer containing ELF data */ - size_t sz; /* Buffer size */ - int le_data; /* Data is little-endian */ - unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ - int bits; /* 32 or 64 */ - Elf32_Ehdr hdr32; - Elf64_Ehdr hdr64; -} elf_obj_t; - -int parse_elf_header(elf_obj_t *elf) -{ - int res; - /* Verify ELF Magic numbers */ - COPY_STRUCT(&elf->e_ident, elf->buf, 0, elf->sz); - res = elf->e_ident[EI_MAG0] == ELFMAG0; - res &= elf->e_ident[EI_MAG1] == ELFMAG1; - res &= elf->e_ident[EI_MAG2] == ELFMAG2; - res &= elf->e_ident[EI_MAG3] == ELFMAG3; - res &= elf->e_ident[EI_CLASS] == ELFCLASS32 - || elf->e_ident[EI_CLASS] == ELFCLASS64; - res &= elf->e_ident[EI_DATA] == ELFDATA2LSB; - - if (!res) goto bail; - - elf->le_data = elf->e_ident[EI_DATA] == ELFDATA2LSB; - - /* Read in relevant values */ - if (elf->e_ident[EI_CLASS] == ELFCLASS32) - { - elf->bits = 32; - COPY_STRUCT(&elf->hdr32, elf->buf, 0, elf->sz); - - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_type); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_machine); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_version); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_entry); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_flags); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_ehsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shstrndx); - } - else /* if (elf->e_ident[EI_CLASS] == ELFCLASS64) */ - { - elf->bits = 64; - COPY_STRUCT(&elf->hdr64, elf->buf, 0, elf->sz); - - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_type); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_machine); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_version); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_entry); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_flags); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_ehsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shstrndx); - } - - return 0; -bail: - log_msg("Failed to parse ELF file header"); - return 1; -} - -int parse_elf_section(elf_obj_t *elf, int idx, Elf32_Shdr *hdr32, Elf64_Shdr *hdr64) -{ - if (hdr32) - { - if (idx >= elf->hdr32.e_shnum) - goto bail; - - COPY_STRUCT(hdr32, elf->buf, elf->hdr32.e_shoff + idx * elf->hdr32.e_shentsize, - elf->sz); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_name); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_type); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_flags); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_addr); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_offset); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_size); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_link); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_info); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_addralign); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_entsize); - } - else /* if (hdr64) */ - { - if (idx >= elf->hdr64.e_shnum) - goto bail; - - COPY_STRUCT(hdr64, elf->buf, elf->hdr64.e_shoff + idx * elf->hdr64.e_shentsize, - elf->sz); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_name); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_type); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_flags); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_addr); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_offset); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_size); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_link); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_info); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_addralign); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_entsize); - } - - return 0; -bail: - return 1; -} - -char *parse_elf_string_table(elf_obj_t *elf, int s_idx, int idx) -{ - if (elf->bits == 32) - { - Elf32_Shdr shdr; - - if (parse_elf_section(elf, s_idx, &shdr, NULL)) - { - log_msg("Failed to parse ELF string table: section %d, index %d\n", - s_idx, idx); - return ""; - } - - return (char *)(elf->buf + shdr.sh_offset + idx); - } - else /* if (elf->bits == 64) */ - { - Elf64_Shdr shdr; - - if (parse_elf_section(elf, s_idx, NULL, &shdr)) - { - log_msg("Failed to parse ELF string table: section %d, index %d\n", - s_idx, idx); - return ""; - } - - return (char *)(elf->buf + shdr.sh_offset + idx); - } -} - -int parse_elf_symbol(elf_obj_t *elf, unsigned int ofst, Elf32_Sym *sym32, Elf64_Sym *sym64) -{ - if (sym32) - { - COPY_STRUCT(sym32, elf->buf, ofst, elf->sz); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_name); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_value); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_size); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_info); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_other); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_shndx); - } - else /* if (sym64) */ - { - COPY_STRUCT(sym64, elf->buf, ofst, elf->sz); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_name); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_value); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_size); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_info); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_other); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_shndx); - } - return 0; -bail: - return 1; -} - -int parse_elf(uint8_t *buf, size_t sz, output_fmt_t mode) -{ - elf_obj_t elf; - unsigned int ofst; - int i; - Elf32_Off strtab_off32; - Elf64_Off strtab_off64; /* save String Table offset for later use */ - - memset(&elf, 0, sizeof(elf)); - elf.buf = buf; - elf.sz = sz; - - /* Parse Header */ - if (parse_elf_header(&elf)) - goto bail; - - if (elf.bits == 32) - { - Elf32_Shdr shdr; - for (i = 0; i < elf.hdr32.e_shnum; i++) - { - parse_elf_section(&elf, i, &shdr, NULL); - - if (shdr.sh_type == SHT_STRTAB) - { - char strtsb_name[128]; - - strcpy(strtsb_name, (char *)(elf.buf + shdr.sh_offset + shdr.sh_name)); - - if (!(strcmp(strtsb_name, ".shstrtab"))) - { - /* log_msg("found section: %s\n", strtsb_name); */ - strtab_off32 = shdr.sh_offset; - break; - } - } - } - } - else /* if (elf.bits == 64) */ - { - Elf64_Shdr shdr; - for (i = 0; i < elf.hdr64.e_shnum; i++) - { - parse_elf_section(&elf, i, NULL, &shdr); - - if (shdr.sh_type == SHT_STRTAB) - { - char strtsb_name[128]; - - strcpy(strtsb_name, (char *)(elf.buf + shdr.sh_offset + shdr.sh_name)); - - if (!(strcmp(strtsb_name, ".shstrtab"))) - { - /* log_msg("found section: %s\n", strtsb_name); */ - strtab_off64 = shdr.sh_offset; - break; - } - } - } - } - - /* Parse all Symbol Tables */ - if (elf.bits == 32) - { - Elf32_Shdr shdr; - for (i = 0; i < elf.hdr32.e_shnum; i++) - { - parse_elf_section(&elf, i, &shdr, NULL); - - if (shdr.sh_type == SHT_SYMTAB) - { - for (ofst = shdr.sh_offset; - ofst < shdr.sh_offset + shdr.sh_size; - ofst += shdr.sh_entsize) - { - Elf32_Sym sym; - - parse_elf_symbol(&elf, ofst, &sym, NULL); - - /* For all OBJECTS (data objects), extract the value from the - * proper data segment. - */ - /* if (ELF32_ST_TYPE(sym.st_info) == STT_OBJECT && sym.st_name) - log_msg("found data object %s\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name)); - */ - - if (ELF32_ST_TYPE(sym.st_info) == STT_OBJECT - && sym.st_size == 4) - { - Elf32_Shdr dhdr; - int val = 0; - char section_name[128]; - - parse_elf_section(&elf, sym.st_shndx, &dhdr, NULL); - - /* For explanition - refer to _MSC_VER version of code */ - strcpy(section_name, (char *)(elf.buf + strtab_off32 + dhdr.sh_name)); - /* log_msg("Section_name: %s, Section_type: %d\n", section_name, dhdr.sh_type); */ - - if (strcmp(section_name, ".bss")) - { - if (sizeof(val) != sym.st_size) - { - /* The target value is declared as an int in - * asm_*_offsets.c, which is 4 bytes on all - * targets we currently use. Complain loudly if - * this is not true. - */ - log_msg("Symbol size is wrong\n"); - goto bail; - } - - memcpy(&val, - elf.buf + dhdr.sh_offset + sym.st_value, - sym.st_size); - } - - if (!elf.le_data) - { - log_msg("Big Endian data not supported yet!\n"); - goto bail; - } - - switch (mode) - { - case OUTPUT_FMT_RVDS: - printf("%-40s EQU %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - case OUTPUT_FMT_GAS: - printf(".equ %-40s, %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - default: - printf("%s = %d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - } - } - } - } - } - } - else /* if (elf.bits == 64) */ - { - Elf64_Shdr shdr; - for (i = 0; i < elf.hdr64.e_shnum; i++) - { - parse_elf_section(&elf, i, NULL, &shdr); - - if (shdr.sh_type == SHT_SYMTAB) - { - for (ofst = shdr.sh_offset; - ofst < shdr.sh_offset + shdr.sh_size; - ofst += shdr.sh_entsize) - { - Elf64_Sym sym; - - parse_elf_symbol(&elf, ofst, NULL, &sym); - - /* For all OBJECTS (data objects), extract the value from the - * proper data segment. - */ - /* if (ELF64_ST_TYPE(sym.st_info) == STT_OBJECT && sym.st_name) - log_msg("found data object %s\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name)); - */ - - if (ELF64_ST_TYPE(sym.st_info) == STT_OBJECT - && sym.st_size == 4) - { - Elf64_Shdr dhdr; - int val = 0; - char section_name[128]; - - parse_elf_section(&elf, sym.st_shndx, NULL, &dhdr); - - /* For explanition - refer to _MSC_VER version of code */ - strcpy(section_name, (char *)(elf.buf + strtab_off64 + dhdr.sh_name)); - /* log_msg("Section_name: %s, Section_type: %d\n", section_name, dhdr.sh_type); */ - - if ((strcmp(section_name, ".bss"))) - { - if (sizeof(val) != sym.st_size) - { - /* The target value is declared as an int in - * asm_*_offsets.c, which is 4 bytes on all - * targets we currently use. Complain loudly if - * this is not true. - */ - log_msg("Symbol size is wrong\n"); - goto bail; - } - - memcpy(&val, - elf.buf + dhdr.sh_offset + sym.st_value, - sym.st_size); - } - - if (!elf.le_data) - { - log_msg("Big Endian data not supported yet!\n"); - goto bail; - } - - switch (mode) - { - case OUTPUT_FMT_RVDS: - printf("%-40s EQU %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - case OUTPUT_FMT_GAS: - printf(".equ %-40s, %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - default: - printf("%s = %d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - } - } - } - } - } - } - - if (mode == OUTPUT_FMT_RVDS) - printf(" END\n"); - - return 0; -bail: - log_msg("Parse error: File does not appear to be valid ELF32 or ELF64\n"); - return 1; -} - -#endif -#endif /* defined(__GNUC__) && __GNUC__ */ - - -#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) -/* See "Microsoft Portable Executable and Common Object File Format Specification" - for reference. -*/ -#define get_le32(x) ((*(x)) | (*(x+1)) << 8 |(*(x+2)) << 16 | (*(x+3)) << 24 ) -#define get_le16(x) ((*(x)) | (*(x+1)) << 8) - -int parse_coff(uint8_t *buf, size_t sz) -{ - unsigned int nsections, symtab_ptr, symtab_sz, strtab_ptr; - unsigned int sectionrawdata_ptr; - unsigned int i; - uint8_t *ptr; - uint32_t symoffset; - - char **sectionlist; //this array holds all section names in their correct order. - //it is used to check if the symbol is in .bss or .data section. - - nsections = get_le16(buf + 2); - symtab_ptr = get_le32(buf + 8); - symtab_sz = get_le32(buf + 12); - strtab_ptr = symtab_ptr + symtab_sz * 18; - - if (nsections > 96) - { - log_msg("Too many sections\n"); - return 1; - } - - sectionlist = malloc(nsections * sizeof(sectionlist)); - - if (sectionlist == NULL) - { - log_msg("Allocating first level of section list failed\n"); - return 1; - } - - //log_msg("COFF: Found %u symbols in %u sections.\n", symtab_sz, nsections); - - /* - The size of optional header is always zero for an obj file. So, the section header - follows the file header immediately. - */ - - ptr = buf + 20; //section header - - for (i = 0; i < nsections; i++) - { - char sectionname[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; - strncpy(sectionname, ptr, 8); - //log_msg("COFF: Parsing section %s\n",sectionname); - - sectionlist[i] = malloc(strlen(sectionname) + 1); - - if (sectionlist[i] == NULL) - { - log_msg("Allocating storage for %s failed\n", sectionname); - goto bail; - } - strcpy(sectionlist[i], sectionname); - - if (!strcmp(sectionname, ".data")) sectionrawdata_ptr = get_le32(ptr + 20); - - ptr += 40; - } - - //log_msg("COFF: Symbol table at offset %u\n", symtab_ptr); - //log_msg("COFF: raw data pointer ofset for section .data is %u\n", sectionrawdata_ptr); - - /* The compiler puts the data with non-zero offset in .data section, but puts the data with - zero offset in .bss section. So, if the data in in .bss section, set offset=0. - Note from Wiki: In an object module compiled from C, the bss section contains - the local variables (but not functions) that were declared with the static keyword, - except for those with non-zero initial values. (In C, static variables are initialized - to zero by default.) It also contains the non-local (both extern and static) variables - that are also initialized to zero (either explicitly or by default). - */ - //move to symbol table - /* COFF symbol table: - offset field - 0 Name(*) - 8 Value - 12 SectionNumber - 14 Type - 16 StorageClass - 17 NumberOfAuxSymbols - */ - ptr = buf + symtab_ptr; - - for (i = 0; i < symtab_sz; i++) - { - int16_t section = get_le16(ptr + 12); //section number - - if (section > 0 && ptr[16] == 2) - { - //if(section > 0 && ptr[16] == 3 && get_le32(ptr+8)) { - - if (get_le32(ptr)) - { - char name[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; - strncpy(name, ptr, 8); - //log_msg("COFF: Parsing symbol %s\n",name); - /* The 64bit Windows compiler doesn't prefix with an _. - * Check what's there, and bump if necessary - */ - if (name[0] == '_') - printf("%-40s EQU ", name + 1); - else - printf("%-40s EQU ", name); - } - else - { - //log_msg("COFF: Parsing symbol %s\n", - // buf + strtab_ptr + get_le32(ptr+4)); - if ((buf + strtab_ptr + get_le32(ptr + 4))[0] == '_') - printf("%-40s EQU ", - buf + strtab_ptr + get_le32(ptr + 4) + 1); - else - printf("%-40s EQU ", buf + strtab_ptr + get_le32(ptr + 4)); - } - - if (!(strcmp(sectionlist[section-1], ".bss"))) - { - symoffset = 0; - } - else - { - symoffset = get_le32(buf + sectionrawdata_ptr + get_le32(ptr + 8)); - } - - //log_msg(" Section: %d\n",section); - //log_msg(" Class: %d\n",ptr[16]); - //log_msg(" Address: %u\n",get_le32(ptr+8)); - //log_msg(" Offset: %u\n", symoffset); - - printf("%5d\n", symoffset); - } - - ptr += 18; - } - - printf(" END\n"); - - for (i = 0; i < nsections; i++) - { - free(sectionlist[i]); - } - - free(sectionlist); - - return 0; -bail: - - for (i = 0; i < nsections; i++) - { - free(sectionlist[i]); - } - - free(sectionlist); - - return 1; -} -#endif /* defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) */ - -int main(int argc, char **argv) -{ - output_fmt_t mode = OUTPUT_FMT_PLAIN; - const char *f; - uint8_t *file_buf; - int res; - FILE *fp; - long int file_size; - - if (argc < 2 || argc > 3) - { - fprintf(stderr, "Usage: %s [output format] \n\n", argv[0]); - fprintf(stderr, " \tobject file to parse\n"); - fprintf(stderr, "Output Formats:\n"); - fprintf(stderr, " gas - compatible with GNU assembler\n"); - fprintf(stderr, " rvds - compatible with armasm\n"); - goto bail; - } - - f = argv[2]; - - if (!strcmp(argv[1], "rvds")) - mode = OUTPUT_FMT_RVDS; - else if (!strcmp(argv[1], "gas")) - mode = OUTPUT_FMT_GAS; - else - f = argv[1]; - - fp = fopen(f, "rb"); - - if (!fp) - { - perror("Unable to open file"); - goto bail; - } - - if (fseek(fp, 0, SEEK_END)) - { - perror("stat"); - goto bail; - } - - file_size = ftell(fp); - file_buf = malloc(file_size); - - if (!file_buf) - { - perror("malloc"); - goto bail; - } - - rewind(fp); - - if (fread(file_buf, sizeof(char), file_size, fp) != file_size) - { - perror("read"); - goto bail; - } - - if (fclose(fp)) - { - perror("close"); - goto bail; - } - -#if defined(__GNUC__) && __GNUC__ -#if defined(__MACH__) - res = parse_macho(file_buf, file_size); -#elif defined(__ELF__) - res = parse_elf(file_buf, file_size, mode); -#endif -#endif -#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) - res = parse_coff(file_buf, file_size); -#endif - - free(file_buf); - - if (!res) - return EXIT_SUCCESS; - -bail: - return EXIT_FAILURE; -} diff --git a/third_party/libvpx/source/config/linux/ia32/vpx_rtcd.h b/third_party/libvpx/source/config/linux/ia32/vpx_rtcd.h index dab26dcf0b..6630af4b67 100644 --- a/third_party/libvpx/source/config/linux/ia32/vpx_rtcd.h +++ b/third_party/libvpx/source/config/linux/ia32/vpx_rtcd.h @@ -7,6 +7,8 @@ #define RTCD_EXTERN extern #endif +#include "vp8/common/blockd.h" + struct blockd; struct macroblockd; struct loop_filter_info; @@ -115,10 +117,7 @@ void vp8_build_intra_predictors_mbuv_s_sse2(struct macroblockd *x, unsigned char void vp8_build_intra_predictors_mbuv_s_ssse3(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride); RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv_s)(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride); -void vp8_intra4x4_predict_d_c(unsigned char *above, unsigned char *left, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); -#define vp8_intra4x4_predict_d vp8_intra4x4_predict_d_c - -void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride); +void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, B_PREDICTION_MODE b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); #define vp8_intra4x4_predict vp8_intra4x4_predict_c void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit); @@ -270,93 +269,93 @@ unsigned int vp8_variance_halfpixvar16x16_hv_mmx(const unsigned char *src_ptr, i unsigned int vp8_variance_halfpixvar16x16_hv_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_hv)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad4x4)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad4x4)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad8x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad8x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad8x16)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad16x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad4x4x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); unsigned int vp8_get_mb_ss_c(const short *); unsigned int vp8_get_mb_ss_mmx(const short *); @@ -545,11 +544,12 @@ void vp8_yv12_copy_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffe void vp8_yv12_copy_y_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); #define vp8_yv12_copy_y vp8_yv12_copy_y_c + void vpx_rtcd(void); #ifdef RTCD_C #include "vpx_ports/x86.h" -void vpx_rtcd(void) +static void setup_rtcd_internal(void) { int flags = x86_simd_caps(); @@ -631,7 +631,6 @@ void vpx_rtcd(void) if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_ssse3; - vp8_mbpost_proc_down = vp8_mbpost_proc_down_c; if (flags & HAS_MMX) vp8_mbpost_proc_down = vp8_mbpost_proc_down_mmx; if (flags & HAS_SSE2) vp8_mbpost_proc_down = vp8_mbpost_proc_down_xmm; diff --git a/third_party/libvpx/source/config/linux/x64/asm_enc_offsets.asm b/third_party/libvpx/source/config/linux/x64/asm_enc_offsets.asm deleted file mode 100644 index 1d85ebef77..0000000000 --- a/third_party/libvpx/source/config/linux/x64/asm_enc_offsets.asm +++ /dev/null @@ -1,44 +0,0 @@ -vp8_block_coeff EQU 8 -vp8_block_zbin EQU 40 -vp8_block_round EQU 56 -vp8_block_quant EQU 16 -vp8_block_quant_fast EQU 24 -vp8_block_zbin_extra EQU 64 -vp8_block_zrun_zbin_boost EQU 48 -vp8_block_quant_shift EQU 32 -vp8_blockd_qcoeff EQU 0 -vp8_blockd_dequant EQU 24 -vp8_blockd_dqcoeff EQU 8 -vp8_blockd_eob EQU 40 -vp8_block_base_src EQU 72 -vp8_block_src EQU 80 -vp8_block_src_diff EQU 0 -vp8_block_src_stride EQU 84 -vp8_blockd_predictor EQU 16 -vp8_writer_lowvalue EQU 0 -vp8_writer_range EQU 4 -vp8_writer_count EQU 8 -vp8_writer_pos EQU 12 -vp8_writer_buffer EQU 16 -vp8_writer_buffer_end EQU 24 -vp8_writer_error EQU 32 -tokenextra_token EQU 10 -tokenextra_extra EQU 8 -tokenextra_context_tree EQU 0 -tokenextra_skip_eob_node EQU 11 -TOKENEXTRA_SZ EQU 16 -vp8_extra_bit_struct_sz EQU 24 -vp8_token_value EQU 0 -vp8_token_len EQU 4 -vp8_extra_bit_struct_tree EQU 0 -vp8_extra_bit_struct_prob EQU 8 -vp8_extra_bit_struct_len EQU 16 -vp8_extra_bit_struct_base_val EQU 20 -vp8_comp_tplist EQU 173256 -vp8_comp_common EQU 105952 -vp8_comp_bc EQU 118384 -vp8_writer_sz EQU 56 -tokenlist_start EQU 0 -tokenlist_stop EQU 8 -TOKENLIST_SZ EQU 16 -vp8_common_mb_rows EQU 2488 diff --git a/third_party/libvpx/source/config/linux/x64/obj_int_extract.c b/third_party/libvpx/source/config/linux/x64/obj_int_extract.c deleted file mode 100644 index 04e14a6c81..0000000000 --- a/third_party/libvpx/source/config/linux/x64/obj_int_extract.c +++ /dev/null @@ -1,914 +0,0 @@ -/* - * 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. - */ - - -#include -#include -#include -#include - -#include "vpx_config.h" -#include "vpx/vpx_integer.h" - -typedef enum -{ - OUTPUT_FMT_PLAIN, - OUTPUT_FMT_RVDS, - OUTPUT_FMT_GAS, -} output_fmt_t; - -int log_msg(const char *fmt, ...) -{ - int res; - va_list ap; - va_start(ap, fmt); - res = vfprintf(stderr, fmt, ap); - va_end(ap); - return res; -} - -#if defined(__GNUC__) && __GNUC__ -#if defined(__MACH__) - -#include -#include - -int parse_macho(uint8_t *base_buf, size_t sz) -{ - int i, j; - struct mach_header header; - uint8_t *buf = base_buf; - int base_data_section = 0; - int bits = 0; - - /* We can read in mach_header for 32 and 64 bit architectures - * because it's identical to mach_header_64 except for the last - * element (uint32_t reserved), which we don't use. Then, when - * we know which architecture we're looking at, increment buf - * appropriately. - */ - memcpy(&header, buf, sizeof(struct mach_header)); - - if (header.magic == MH_MAGIC) - { - if (header.cputype == CPU_TYPE_ARM - || header.cputype == CPU_TYPE_X86) - { - bits = 32; - buf += sizeof(struct mach_header); - } - else - { - log_msg("Bad cputype for object file. Currently only tested for CPU_TYPE_[ARM|X86].\n"); - goto bail; - } - } - else if (header.magic == MH_MAGIC_64) - { - if (header.cputype == CPU_TYPE_X86_64) - { - bits = 64; - buf += sizeof(struct mach_header_64); - } - else - { - log_msg("Bad cputype for object file. Currently only tested for CPU_TYPE_X86_64.\n"); - goto bail; - } - } - else - { - log_msg("Bad magic number for object file. 0x%x or 0x%x expected, 0x%x found.\n", - MH_MAGIC, MH_MAGIC_64, header.magic); - goto bail; - } - - if (header.filetype != MH_OBJECT) - { - log_msg("Bad filetype for object file. Currently only tested for MH_OBJECT.\n"); - goto bail; - } - - for (i = 0; i < header.ncmds; i++) - { - struct load_command lc; - - memcpy(&lc, buf, sizeof(struct load_command)); - - if (lc.cmd == LC_SEGMENT) - { - uint8_t *seg_buf = buf; - struct section s; - struct segment_command seg_c; - - memcpy(&seg_c, seg_buf, sizeof(struct segment_command)); - seg_buf += sizeof(struct segment_command); - - /* Although each section is given it's own offset, nlist.n_value - * references the offset of the first section. This isn't - * apparent without debug information because the offset of the - * data section is the same as the first section. However, with - * debug sections mixed in, the offset of the debug section - * increases but n_value still references the first section. - */ - if (seg_c.nsects < 1) - { - log_msg("Not enough sections\n"); - goto bail; - } - - memcpy(&s, seg_buf, sizeof(struct section)); - base_data_section = s.offset; - } - else if (lc.cmd == LC_SEGMENT_64) - { - uint8_t *seg_buf = buf; - struct section_64 s; - struct segment_command_64 seg_c; - - memcpy(&seg_c, seg_buf, sizeof(struct segment_command_64)); - seg_buf += sizeof(struct segment_command_64); - - /* Explanation in LG_SEGMENT */ - if (seg_c.nsects < 1) - { - log_msg("Not enough sections\n"); - goto bail; - } - - memcpy(&s, seg_buf, sizeof(struct section_64)); - base_data_section = s.offset; - } - else if (lc.cmd == LC_SYMTAB) - { - if (base_data_section != 0) - { - struct symtab_command sc; - uint8_t *sym_buf = base_buf; - uint8_t *str_buf = base_buf; - - memcpy(&sc, buf, sizeof(struct symtab_command)); - - if (sc.cmdsize != sizeof(struct symtab_command)) - { - log_msg("Can't find symbol table!\n"); - goto bail; - } - - sym_buf += sc.symoff; - str_buf += sc.stroff; - - for (j = 0; j < sc.nsyms; j++) - { - /* Location of string is cacluated each time from the - * start of the string buffer. On darwin the symbols - * are prefixed by "_", so we bump the pointer by 1. - * The target value is defined as an int in asm_*_offsets.c, - * which is 4 bytes on all targets we currently use. - */ - if (bits == 32) - { - struct nlist nl; - int val; - - memcpy(&nl, sym_buf, sizeof(struct nlist)); - sym_buf += sizeof(struct nlist); - - memcpy(&val, base_buf + base_data_section + nl.n_value, - sizeof(val)); - printf("%-40s EQU %5d\n", - str_buf + nl.n_un.n_strx + 1, val); - } - else /* if (bits == 64) */ - { - struct nlist_64 nl; - int val; - - memcpy(&nl, sym_buf, sizeof(struct nlist_64)); - sym_buf += sizeof(struct nlist_64); - - memcpy(&val, base_buf + base_data_section + nl.n_value, - sizeof(val)); - printf("%-40s EQU %5d\n", - str_buf + nl.n_un.n_strx + 1, val); - } - } - } - } - - buf += lc.cmdsize; - } - - return 0; -bail: - return 1; - -} - -#elif defined(__ELF__) -#include "elf.h" - -#define COPY_STRUCT(dst, buf, ofst, sz) do {\ - if(ofst + sizeof((*(dst))) > sz) goto bail;\ - memcpy(dst, buf+ofst, sizeof((*(dst))));\ - } while(0) - -#define ENDIAN_ASSIGN(val, memb) do {\ - if(!elf->le_data) {log_msg("Big Endian data not supported yet!\n");goto bail;}\ - (val) = (memb);\ - } while(0) - -#define ENDIAN_ASSIGN_IN_PLACE(memb) do {\ - ENDIAN_ASSIGN(memb, memb);\ - } while(0) - -typedef struct -{ - uint8_t *buf; /* Buffer containing ELF data */ - size_t sz; /* Buffer size */ - int le_data; /* Data is little-endian */ - unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ - int bits; /* 32 or 64 */ - Elf32_Ehdr hdr32; - Elf64_Ehdr hdr64; -} elf_obj_t; - -int parse_elf_header(elf_obj_t *elf) -{ - int res; - /* Verify ELF Magic numbers */ - COPY_STRUCT(&elf->e_ident, elf->buf, 0, elf->sz); - res = elf->e_ident[EI_MAG0] == ELFMAG0; - res &= elf->e_ident[EI_MAG1] == ELFMAG1; - res &= elf->e_ident[EI_MAG2] == ELFMAG2; - res &= elf->e_ident[EI_MAG3] == ELFMAG3; - res &= elf->e_ident[EI_CLASS] == ELFCLASS32 - || elf->e_ident[EI_CLASS] == ELFCLASS64; - res &= elf->e_ident[EI_DATA] == ELFDATA2LSB; - - if (!res) goto bail; - - elf->le_data = elf->e_ident[EI_DATA] == ELFDATA2LSB; - - /* Read in relevant values */ - if (elf->e_ident[EI_CLASS] == ELFCLASS32) - { - elf->bits = 32; - COPY_STRUCT(&elf->hdr32, elf->buf, 0, elf->sz); - - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_type); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_machine); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_version); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_entry); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_flags); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_ehsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shstrndx); - } - else /* if (elf->e_ident[EI_CLASS] == ELFCLASS64) */ - { - elf->bits = 64; - COPY_STRUCT(&elf->hdr64, elf->buf, 0, elf->sz); - - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_type); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_machine); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_version); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_entry); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_flags); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_ehsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shstrndx); - } - - return 0; -bail: - log_msg("Failed to parse ELF file header"); - return 1; -} - -int parse_elf_section(elf_obj_t *elf, int idx, Elf32_Shdr *hdr32, Elf64_Shdr *hdr64) -{ - if (hdr32) - { - if (idx >= elf->hdr32.e_shnum) - goto bail; - - COPY_STRUCT(hdr32, elf->buf, elf->hdr32.e_shoff + idx * elf->hdr32.e_shentsize, - elf->sz); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_name); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_type); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_flags); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_addr); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_offset); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_size); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_link); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_info); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_addralign); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_entsize); - } - else /* if (hdr64) */ - { - if (idx >= elf->hdr64.e_shnum) - goto bail; - - COPY_STRUCT(hdr64, elf->buf, elf->hdr64.e_shoff + idx * elf->hdr64.e_shentsize, - elf->sz); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_name); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_type); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_flags); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_addr); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_offset); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_size); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_link); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_info); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_addralign); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_entsize); - } - - return 0; -bail: - return 1; -} - -char *parse_elf_string_table(elf_obj_t *elf, int s_idx, int idx) -{ - if (elf->bits == 32) - { - Elf32_Shdr shdr; - - if (parse_elf_section(elf, s_idx, &shdr, NULL)) - { - log_msg("Failed to parse ELF string table: section %d, index %d\n", - s_idx, idx); - return ""; - } - - return (char *)(elf->buf + shdr.sh_offset + idx); - } - else /* if (elf->bits == 64) */ - { - Elf64_Shdr shdr; - - if (parse_elf_section(elf, s_idx, NULL, &shdr)) - { - log_msg("Failed to parse ELF string table: section %d, index %d\n", - s_idx, idx); - return ""; - } - - return (char *)(elf->buf + shdr.sh_offset + idx); - } -} - -int parse_elf_symbol(elf_obj_t *elf, unsigned int ofst, Elf32_Sym *sym32, Elf64_Sym *sym64) -{ - if (sym32) - { - COPY_STRUCT(sym32, elf->buf, ofst, elf->sz); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_name); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_value); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_size); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_info); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_other); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_shndx); - } - else /* if (sym64) */ - { - COPY_STRUCT(sym64, elf->buf, ofst, elf->sz); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_name); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_value); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_size); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_info); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_other); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_shndx); - } - return 0; -bail: - return 1; -} - -int parse_elf(uint8_t *buf, size_t sz, output_fmt_t mode) -{ - elf_obj_t elf; - unsigned int ofst; - int i; - Elf32_Off strtab_off32; - Elf64_Off strtab_off64; /* save String Table offset for later use */ - - memset(&elf, 0, sizeof(elf)); - elf.buf = buf; - elf.sz = sz; - - /* Parse Header */ - if (parse_elf_header(&elf)) - goto bail; - - if (elf.bits == 32) - { - Elf32_Shdr shdr; - for (i = 0; i < elf.hdr32.e_shnum; i++) - { - parse_elf_section(&elf, i, &shdr, NULL); - - if (shdr.sh_type == SHT_STRTAB) - { - char strtsb_name[128]; - - strcpy(strtsb_name, (char *)(elf.buf + shdr.sh_offset + shdr.sh_name)); - - if (!(strcmp(strtsb_name, ".shstrtab"))) - { - /* log_msg("found section: %s\n", strtsb_name); */ - strtab_off32 = shdr.sh_offset; - break; - } - } - } - } - else /* if (elf.bits == 64) */ - { - Elf64_Shdr shdr; - for (i = 0; i < elf.hdr64.e_shnum; i++) - { - parse_elf_section(&elf, i, NULL, &shdr); - - if (shdr.sh_type == SHT_STRTAB) - { - char strtsb_name[128]; - - strcpy(strtsb_name, (char *)(elf.buf + shdr.sh_offset + shdr.sh_name)); - - if (!(strcmp(strtsb_name, ".shstrtab"))) - { - /* log_msg("found section: %s\n", strtsb_name); */ - strtab_off64 = shdr.sh_offset; - break; - } - } - } - } - - /* Parse all Symbol Tables */ - if (elf.bits == 32) - { - Elf32_Shdr shdr; - for (i = 0; i < elf.hdr32.e_shnum; i++) - { - parse_elf_section(&elf, i, &shdr, NULL); - - if (shdr.sh_type == SHT_SYMTAB) - { - for (ofst = shdr.sh_offset; - ofst < shdr.sh_offset + shdr.sh_size; - ofst += shdr.sh_entsize) - { - Elf32_Sym sym; - - parse_elf_symbol(&elf, ofst, &sym, NULL); - - /* For all OBJECTS (data objects), extract the value from the - * proper data segment. - */ - /* if (ELF32_ST_TYPE(sym.st_info) == STT_OBJECT && sym.st_name) - log_msg("found data object %s\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name)); - */ - - if (ELF32_ST_TYPE(sym.st_info) == STT_OBJECT - && sym.st_size == 4) - { - Elf32_Shdr dhdr; - int val = 0; - char section_name[128]; - - parse_elf_section(&elf, sym.st_shndx, &dhdr, NULL); - - /* For explanition - refer to _MSC_VER version of code */ - strcpy(section_name, (char *)(elf.buf + strtab_off32 + dhdr.sh_name)); - /* log_msg("Section_name: %s, Section_type: %d\n", section_name, dhdr.sh_type); */ - - if (strcmp(section_name, ".bss")) - { - if (sizeof(val) != sym.st_size) - { - /* The target value is declared as an int in - * asm_*_offsets.c, which is 4 bytes on all - * targets we currently use. Complain loudly if - * this is not true. - */ - log_msg("Symbol size is wrong\n"); - goto bail; - } - - memcpy(&val, - elf.buf + dhdr.sh_offset + sym.st_value, - sym.st_size); - } - - if (!elf.le_data) - { - log_msg("Big Endian data not supported yet!\n"); - goto bail; - } - - switch (mode) - { - case OUTPUT_FMT_RVDS: - printf("%-40s EQU %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - case OUTPUT_FMT_GAS: - printf(".equ %-40s, %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - default: - printf("%s = %d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - } - } - } - } - } - } - else /* if (elf.bits == 64) */ - { - Elf64_Shdr shdr; - for (i = 0; i < elf.hdr64.e_shnum; i++) - { - parse_elf_section(&elf, i, NULL, &shdr); - - if (shdr.sh_type == SHT_SYMTAB) - { - for (ofst = shdr.sh_offset; - ofst < shdr.sh_offset + shdr.sh_size; - ofst += shdr.sh_entsize) - { - Elf64_Sym sym; - - parse_elf_symbol(&elf, ofst, NULL, &sym); - - /* For all OBJECTS (data objects), extract the value from the - * proper data segment. - */ - /* if (ELF64_ST_TYPE(sym.st_info) == STT_OBJECT && sym.st_name) - log_msg("found data object %s\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name)); - */ - - if (ELF64_ST_TYPE(sym.st_info) == STT_OBJECT - && sym.st_size == 4) - { - Elf64_Shdr dhdr; - int val = 0; - char section_name[128]; - - parse_elf_section(&elf, sym.st_shndx, NULL, &dhdr); - - /* For explanition - refer to _MSC_VER version of code */ - strcpy(section_name, (char *)(elf.buf + strtab_off64 + dhdr.sh_name)); - /* log_msg("Section_name: %s, Section_type: %d\n", section_name, dhdr.sh_type); */ - - if ((strcmp(section_name, ".bss"))) - { - if (sizeof(val) != sym.st_size) - { - /* The target value is declared as an int in - * asm_*_offsets.c, which is 4 bytes on all - * targets we currently use. Complain loudly if - * this is not true. - */ - log_msg("Symbol size is wrong\n"); - goto bail; - } - - memcpy(&val, - elf.buf + dhdr.sh_offset + sym.st_value, - sym.st_size); - } - - if (!elf.le_data) - { - log_msg("Big Endian data not supported yet!\n"); - goto bail; - } - - switch (mode) - { - case OUTPUT_FMT_RVDS: - printf("%-40s EQU %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - case OUTPUT_FMT_GAS: - printf(".equ %-40s, %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - default: - printf("%s = %d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - } - } - } - } - } - } - - if (mode == OUTPUT_FMT_RVDS) - printf(" END\n"); - - return 0; -bail: - log_msg("Parse error: File does not appear to be valid ELF32 or ELF64\n"); - return 1; -} - -#endif -#endif /* defined(__GNUC__) && __GNUC__ */ - - -#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) -/* See "Microsoft Portable Executable and Common Object File Format Specification" - for reference. -*/ -#define get_le32(x) ((*(x)) | (*(x+1)) << 8 |(*(x+2)) << 16 | (*(x+3)) << 24 ) -#define get_le16(x) ((*(x)) | (*(x+1)) << 8) - -int parse_coff(uint8_t *buf, size_t sz) -{ - unsigned int nsections, symtab_ptr, symtab_sz, strtab_ptr; - unsigned int sectionrawdata_ptr; - unsigned int i; - uint8_t *ptr; - uint32_t symoffset; - - char **sectionlist; //this array holds all section names in their correct order. - //it is used to check if the symbol is in .bss or .data section. - - nsections = get_le16(buf + 2); - symtab_ptr = get_le32(buf + 8); - symtab_sz = get_le32(buf + 12); - strtab_ptr = symtab_ptr + symtab_sz * 18; - - if (nsections > 96) - { - log_msg("Too many sections\n"); - return 1; - } - - sectionlist = malloc(nsections * sizeof(sectionlist)); - - if (sectionlist == NULL) - { - log_msg("Allocating first level of section list failed\n"); - return 1; - } - - //log_msg("COFF: Found %u symbols in %u sections.\n", symtab_sz, nsections); - - /* - The size of optional header is always zero for an obj file. So, the section header - follows the file header immediately. - */ - - ptr = buf + 20; //section header - - for (i = 0; i < nsections; i++) - { - char sectionname[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; - strncpy(sectionname, ptr, 8); - //log_msg("COFF: Parsing section %s\n",sectionname); - - sectionlist[i] = malloc(strlen(sectionname) + 1); - - if (sectionlist[i] == NULL) - { - log_msg("Allocating storage for %s failed\n", sectionname); - goto bail; - } - strcpy(sectionlist[i], sectionname); - - if (!strcmp(sectionname, ".data")) sectionrawdata_ptr = get_le32(ptr + 20); - - ptr += 40; - } - - //log_msg("COFF: Symbol table at offset %u\n", symtab_ptr); - //log_msg("COFF: raw data pointer ofset for section .data is %u\n", sectionrawdata_ptr); - - /* The compiler puts the data with non-zero offset in .data section, but puts the data with - zero offset in .bss section. So, if the data in in .bss section, set offset=0. - Note from Wiki: In an object module compiled from C, the bss section contains - the local variables (but not functions) that were declared with the static keyword, - except for those with non-zero initial values. (In C, static variables are initialized - to zero by default.) It also contains the non-local (both extern and static) variables - that are also initialized to zero (either explicitly or by default). - */ - //move to symbol table - /* COFF symbol table: - offset field - 0 Name(*) - 8 Value - 12 SectionNumber - 14 Type - 16 StorageClass - 17 NumberOfAuxSymbols - */ - ptr = buf + symtab_ptr; - - for (i = 0; i < symtab_sz; i++) - { - int16_t section = get_le16(ptr + 12); //section number - - if (section > 0 && ptr[16] == 2) - { - //if(section > 0 && ptr[16] == 3 && get_le32(ptr+8)) { - - if (get_le32(ptr)) - { - char name[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; - strncpy(name, ptr, 8); - //log_msg("COFF: Parsing symbol %s\n",name); - /* The 64bit Windows compiler doesn't prefix with an _. - * Check what's there, and bump if necessary - */ - if (name[0] == '_') - printf("%-40s EQU ", name + 1); - else - printf("%-40s EQU ", name); - } - else - { - //log_msg("COFF: Parsing symbol %s\n", - // buf + strtab_ptr + get_le32(ptr+4)); - if ((buf + strtab_ptr + get_le32(ptr + 4))[0] == '_') - printf("%-40s EQU ", - buf + strtab_ptr + get_le32(ptr + 4) + 1); - else - printf("%-40s EQU ", buf + strtab_ptr + get_le32(ptr + 4)); - } - - if (!(strcmp(sectionlist[section-1], ".bss"))) - { - symoffset = 0; - } - else - { - symoffset = get_le32(buf + sectionrawdata_ptr + get_le32(ptr + 8)); - } - - //log_msg(" Section: %d\n",section); - //log_msg(" Class: %d\n",ptr[16]); - //log_msg(" Address: %u\n",get_le32(ptr+8)); - //log_msg(" Offset: %u\n", symoffset); - - printf("%5d\n", symoffset); - } - - ptr += 18; - } - - printf(" END\n"); - - for (i = 0; i < nsections; i++) - { - free(sectionlist[i]); - } - - free(sectionlist); - - return 0; -bail: - - for (i = 0; i < nsections; i++) - { - free(sectionlist[i]); - } - - free(sectionlist); - - return 1; -} -#endif /* defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) */ - -int main(int argc, char **argv) -{ - output_fmt_t mode = OUTPUT_FMT_PLAIN; - const char *f; - uint8_t *file_buf; - int res; - FILE *fp; - long int file_size; - - if (argc < 2 || argc > 3) - { - fprintf(stderr, "Usage: %s [output format] \n\n", argv[0]); - fprintf(stderr, " \tobject file to parse\n"); - fprintf(stderr, "Output Formats:\n"); - fprintf(stderr, " gas - compatible with GNU assembler\n"); - fprintf(stderr, " rvds - compatible with armasm\n"); - goto bail; - } - - f = argv[2]; - - if (!strcmp(argv[1], "rvds")) - mode = OUTPUT_FMT_RVDS; - else if (!strcmp(argv[1], "gas")) - mode = OUTPUT_FMT_GAS; - else - f = argv[1]; - - fp = fopen(f, "rb"); - - if (!fp) - { - perror("Unable to open file"); - goto bail; - } - - if (fseek(fp, 0, SEEK_END)) - { - perror("stat"); - goto bail; - } - - file_size = ftell(fp); - file_buf = malloc(file_size); - - if (!file_buf) - { - perror("malloc"); - goto bail; - } - - rewind(fp); - - if (fread(file_buf, sizeof(char), file_size, fp) != file_size) - { - perror("read"); - goto bail; - } - - if (fclose(fp)) - { - perror("close"); - goto bail; - } - -#if defined(__GNUC__) && __GNUC__ -#if defined(__MACH__) - res = parse_macho(file_buf, file_size); -#elif defined(__ELF__) - res = parse_elf(file_buf, file_size, mode); -#endif -#endif -#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) - res = parse_coff(file_buf, file_size); -#endif - - free(file_buf); - - if (!res) - return EXIT_SUCCESS; - -bail: - return EXIT_FAILURE; -} diff --git a/third_party/libvpx/source/config/linux/x64/vpx_rtcd.h b/third_party/libvpx/source/config/linux/x64/vpx_rtcd.h index 3144b87756..9e24e1424b 100644 --- a/third_party/libvpx/source/config/linux/x64/vpx_rtcd.h +++ b/third_party/libvpx/source/config/linux/x64/vpx_rtcd.h @@ -7,6 +7,8 @@ #define RTCD_EXTERN extern #endif +#include "vp8/common/blockd.h" + struct blockd; struct macroblockd; struct loop_filter_info; @@ -115,10 +117,7 @@ void vp8_build_intra_predictors_mbuv_s_sse2(struct macroblockd *x, unsigned char void vp8_build_intra_predictors_mbuv_s_ssse3(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride); RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv_s)(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride); -void vp8_intra4x4_predict_d_c(unsigned char *above, unsigned char *left, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); -#define vp8_intra4x4_predict_d vp8_intra4x4_predict_d_c - -void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride); +void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, B_PREDICTION_MODE b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); #define vp8_intra4x4_predict vp8_intra4x4_predict_c void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit); @@ -270,93 +269,93 @@ unsigned int vp8_variance_halfpixvar16x16_hv_mmx(const unsigned char *src_ptr, i unsigned int vp8_variance_halfpixvar16x16_hv_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); #define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_wmt -unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); #define vp8_sad4x4 vp8_sad4x4_wmt -unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); #define vp8_sad8x8 vp8_sad8x8_wmt -unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); #define vp8_sad8x16 vp8_sad8x16_wmt -unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); #define vp8_sad16x8 vp8_sad16x8_wmt -unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad4x4x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); unsigned int vp8_get_mb_ss_c(const short *); unsigned int vp8_get_mb_ss_mmx(const short *); @@ -545,11 +544,12 @@ void vp8_yv12_copy_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffe void vp8_yv12_copy_y_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); #define vp8_yv12_copy_y vp8_yv12_copy_y_c + void vpx_rtcd(void); #ifdef RTCD_C #include "vpx_ports/x86.h" -void vpx_rtcd(void) +static void setup_rtcd_internal(void) { int flags = x86_simd_caps(); @@ -591,7 +591,6 @@ void vpx_rtcd(void) - vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2; if (flags & HAS_SSSE3) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_ssse3; diff --git a/third_party/libvpx/source/config/mac/ia32/asm_enc_offsets.asm b/third_party/libvpx/source/config/mac/ia32/asm_enc_offsets.asm deleted file mode 100644 index 9913fbd778..0000000000 --- a/third_party/libvpx/source/config/mac/ia32/asm_enc_offsets.asm +++ /dev/null @@ -1,44 +0,0 @@ -vp8_block_coeff EQU 4 -vp8_block_zbin EQU 20 -vp8_block_round EQU 28 -vp8_block_quant EQU 8 -vp8_block_quant_fast EQU 12 -vp8_block_zbin_extra EQU 32 -vp8_block_zrun_zbin_boost EQU 24 -vp8_block_quant_shift EQU 16 -vp8_blockd_qcoeff EQU 0 -vp8_blockd_dequant EQU 12 -vp8_blockd_dqcoeff EQU 4 -vp8_blockd_eob EQU 20 -vp8_block_base_src EQU 36 -vp8_block_src EQU 40 -vp8_block_src_diff EQU 0 -vp8_block_src_stride EQU 44 -vp8_blockd_predictor EQU 8 -vp8_writer_lowvalue EQU 0 -vp8_writer_range EQU 4 -vp8_writer_count EQU 8 -vp8_writer_pos EQU 12 -vp8_writer_buffer EQU 16 -vp8_writer_buffer_end EQU 20 -vp8_writer_error EQU 24 -tokenextra_token EQU 6 -tokenextra_extra EQU 4 -tokenextra_context_tree EQU 0 -tokenextra_skip_eob_node EQU 7 -TOKENEXTRA_SZ EQU 8 -vp8_extra_bit_struct_sz EQU 16 -vp8_token_value EQU 0 -vp8_token_len EQU 4 -vp8_extra_bit_struct_tree EQU 0 -vp8_extra_bit_struct_prob EQU 4 -vp8_extra_bit_struct_len EQU 8 -vp8_extra_bit_struct_base_val EQU 12 -vp8_comp_tplist EQU 170600 -vp8_comp_common EQU 104032 -vp8_comp_bc EQU 116160 -vp8_writer_sz EQU 36 -tokenlist_start EQU 0 -tokenlist_stop EQU 4 -TOKENLIST_SZ EQU 8 -vp8_common_mb_rows EQU 2216 diff --git a/third_party/libvpx/source/config/mac/ia32/obj_int_extract.c b/third_party/libvpx/source/config/mac/ia32/obj_int_extract.c deleted file mode 100644 index 04e14a6c81..0000000000 --- a/third_party/libvpx/source/config/mac/ia32/obj_int_extract.c +++ /dev/null @@ -1,914 +0,0 @@ -/* - * 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. - */ - - -#include -#include -#include -#include - -#include "vpx_config.h" -#include "vpx/vpx_integer.h" - -typedef enum -{ - OUTPUT_FMT_PLAIN, - OUTPUT_FMT_RVDS, - OUTPUT_FMT_GAS, -} output_fmt_t; - -int log_msg(const char *fmt, ...) -{ - int res; - va_list ap; - va_start(ap, fmt); - res = vfprintf(stderr, fmt, ap); - va_end(ap); - return res; -} - -#if defined(__GNUC__) && __GNUC__ -#if defined(__MACH__) - -#include -#include - -int parse_macho(uint8_t *base_buf, size_t sz) -{ - int i, j; - struct mach_header header; - uint8_t *buf = base_buf; - int base_data_section = 0; - int bits = 0; - - /* We can read in mach_header for 32 and 64 bit architectures - * because it's identical to mach_header_64 except for the last - * element (uint32_t reserved), which we don't use. Then, when - * we know which architecture we're looking at, increment buf - * appropriately. - */ - memcpy(&header, buf, sizeof(struct mach_header)); - - if (header.magic == MH_MAGIC) - { - if (header.cputype == CPU_TYPE_ARM - || header.cputype == CPU_TYPE_X86) - { - bits = 32; - buf += sizeof(struct mach_header); - } - else - { - log_msg("Bad cputype for object file. Currently only tested for CPU_TYPE_[ARM|X86].\n"); - goto bail; - } - } - else if (header.magic == MH_MAGIC_64) - { - if (header.cputype == CPU_TYPE_X86_64) - { - bits = 64; - buf += sizeof(struct mach_header_64); - } - else - { - log_msg("Bad cputype for object file. Currently only tested for CPU_TYPE_X86_64.\n"); - goto bail; - } - } - else - { - log_msg("Bad magic number for object file. 0x%x or 0x%x expected, 0x%x found.\n", - MH_MAGIC, MH_MAGIC_64, header.magic); - goto bail; - } - - if (header.filetype != MH_OBJECT) - { - log_msg("Bad filetype for object file. Currently only tested for MH_OBJECT.\n"); - goto bail; - } - - for (i = 0; i < header.ncmds; i++) - { - struct load_command lc; - - memcpy(&lc, buf, sizeof(struct load_command)); - - if (lc.cmd == LC_SEGMENT) - { - uint8_t *seg_buf = buf; - struct section s; - struct segment_command seg_c; - - memcpy(&seg_c, seg_buf, sizeof(struct segment_command)); - seg_buf += sizeof(struct segment_command); - - /* Although each section is given it's own offset, nlist.n_value - * references the offset of the first section. This isn't - * apparent without debug information because the offset of the - * data section is the same as the first section. However, with - * debug sections mixed in, the offset of the debug section - * increases but n_value still references the first section. - */ - if (seg_c.nsects < 1) - { - log_msg("Not enough sections\n"); - goto bail; - } - - memcpy(&s, seg_buf, sizeof(struct section)); - base_data_section = s.offset; - } - else if (lc.cmd == LC_SEGMENT_64) - { - uint8_t *seg_buf = buf; - struct section_64 s; - struct segment_command_64 seg_c; - - memcpy(&seg_c, seg_buf, sizeof(struct segment_command_64)); - seg_buf += sizeof(struct segment_command_64); - - /* Explanation in LG_SEGMENT */ - if (seg_c.nsects < 1) - { - log_msg("Not enough sections\n"); - goto bail; - } - - memcpy(&s, seg_buf, sizeof(struct section_64)); - base_data_section = s.offset; - } - else if (lc.cmd == LC_SYMTAB) - { - if (base_data_section != 0) - { - struct symtab_command sc; - uint8_t *sym_buf = base_buf; - uint8_t *str_buf = base_buf; - - memcpy(&sc, buf, sizeof(struct symtab_command)); - - if (sc.cmdsize != sizeof(struct symtab_command)) - { - log_msg("Can't find symbol table!\n"); - goto bail; - } - - sym_buf += sc.symoff; - str_buf += sc.stroff; - - for (j = 0; j < sc.nsyms; j++) - { - /* Location of string is cacluated each time from the - * start of the string buffer. On darwin the symbols - * are prefixed by "_", so we bump the pointer by 1. - * The target value is defined as an int in asm_*_offsets.c, - * which is 4 bytes on all targets we currently use. - */ - if (bits == 32) - { - struct nlist nl; - int val; - - memcpy(&nl, sym_buf, sizeof(struct nlist)); - sym_buf += sizeof(struct nlist); - - memcpy(&val, base_buf + base_data_section + nl.n_value, - sizeof(val)); - printf("%-40s EQU %5d\n", - str_buf + nl.n_un.n_strx + 1, val); - } - else /* if (bits == 64) */ - { - struct nlist_64 nl; - int val; - - memcpy(&nl, sym_buf, sizeof(struct nlist_64)); - sym_buf += sizeof(struct nlist_64); - - memcpy(&val, base_buf + base_data_section + nl.n_value, - sizeof(val)); - printf("%-40s EQU %5d\n", - str_buf + nl.n_un.n_strx + 1, val); - } - } - } - } - - buf += lc.cmdsize; - } - - return 0; -bail: - return 1; - -} - -#elif defined(__ELF__) -#include "elf.h" - -#define COPY_STRUCT(dst, buf, ofst, sz) do {\ - if(ofst + sizeof((*(dst))) > sz) goto bail;\ - memcpy(dst, buf+ofst, sizeof((*(dst))));\ - } while(0) - -#define ENDIAN_ASSIGN(val, memb) do {\ - if(!elf->le_data) {log_msg("Big Endian data not supported yet!\n");goto bail;}\ - (val) = (memb);\ - } while(0) - -#define ENDIAN_ASSIGN_IN_PLACE(memb) do {\ - ENDIAN_ASSIGN(memb, memb);\ - } while(0) - -typedef struct -{ - uint8_t *buf; /* Buffer containing ELF data */ - size_t sz; /* Buffer size */ - int le_data; /* Data is little-endian */ - unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ - int bits; /* 32 or 64 */ - Elf32_Ehdr hdr32; - Elf64_Ehdr hdr64; -} elf_obj_t; - -int parse_elf_header(elf_obj_t *elf) -{ - int res; - /* Verify ELF Magic numbers */ - COPY_STRUCT(&elf->e_ident, elf->buf, 0, elf->sz); - res = elf->e_ident[EI_MAG0] == ELFMAG0; - res &= elf->e_ident[EI_MAG1] == ELFMAG1; - res &= elf->e_ident[EI_MAG2] == ELFMAG2; - res &= elf->e_ident[EI_MAG3] == ELFMAG3; - res &= elf->e_ident[EI_CLASS] == ELFCLASS32 - || elf->e_ident[EI_CLASS] == ELFCLASS64; - res &= elf->e_ident[EI_DATA] == ELFDATA2LSB; - - if (!res) goto bail; - - elf->le_data = elf->e_ident[EI_DATA] == ELFDATA2LSB; - - /* Read in relevant values */ - if (elf->e_ident[EI_CLASS] == ELFCLASS32) - { - elf->bits = 32; - COPY_STRUCT(&elf->hdr32, elf->buf, 0, elf->sz); - - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_type); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_machine); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_version); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_entry); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_flags); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_ehsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shstrndx); - } - else /* if (elf->e_ident[EI_CLASS] == ELFCLASS64) */ - { - elf->bits = 64; - COPY_STRUCT(&elf->hdr64, elf->buf, 0, elf->sz); - - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_type); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_machine); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_version); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_entry); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_flags); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_ehsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shstrndx); - } - - return 0; -bail: - log_msg("Failed to parse ELF file header"); - return 1; -} - -int parse_elf_section(elf_obj_t *elf, int idx, Elf32_Shdr *hdr32, Elf64_Shdr *hdr64) -{ - if (hdr32) - { - if (idx >= elf->hdr32.e_shnum) - goto bail; - - COPY_STRUCT(hdr32, elf->buf, elf->hdr32.e_shoff + idx * elf->hdr32.e_shentsize, - elf->sz); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_name); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_type); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_flags); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_addr); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_offset); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_size); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_link); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_info); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_addralign); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_entsize); - } - else /* if (hdr64) */ - { - if (idx >= elf->hdr64.e_shnum) - goto bail; - - COPY_STRUCT(hdr64, elf->buf, elf->hdr64.e_shoff + idx * elf->hdr64.e_shentsize, - elf->sz); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_name); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_type); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_flags); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_addr); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_offset); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_size); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_link); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_info); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_addralign); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_entsize); - } - - return 0; -bail: - return 1; -} - -char *parse_elf_string_table(elf_obj_t *elf, int s_idx, int idx) -{ - if (elf->bits == 32) - { - Elf32_Shdr shdr; - - if (parse_elf_section(elf, s_idx, &shdr, NULL)) - { - log_msg("Failed to parse ELF string table: section %d, index %d\n", - s_idx, idx); - return ""; - } - - return (char *)(elf->buf + shdr.sh_offset + idx); - } - else /* if (elf->bits == 64) */ - { - Elf64_Shdr shdr; - - if (parse_elf_section(elf, s_idx, NULL, &shdr)) - { - log_msg("Failed to parse ELF string table: section %d, index %d\n", - s_idx, idx); - return ""; - } - - return (char *)(elf->buf + shdr.sh_offset + idx); - } -} - -int parse_elf_symbol(elf_obj_t *elf, unsigned int ofst, Elf32_Sym *sym32, Elf64_Sym *sym64) -{ - if (sym32) - { - COPY_STRUCT(sym32, elf->buf, ofst, elf->sz); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_name); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_value); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_size); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_info); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_other); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_shndx); - } - else /* if (sym64) */ - { - COPY_STRUCT(sym64, elf->buf, ofst, elf->sz); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_name); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_value); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_size); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_info); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_other); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_shndx); - } - return 0; -bail: - return 1; -} - -int parse_elf(uint8_t *buf, size_t sz, output_fmt_t mode) -{ - elf_obj_t elf; - unsigned int ofst; - int i; - Elf32_Off strtab_off32; - Elf64_Off strtab_off64; /* save String Table offset for later use */ - - memset(&elf, 0, sizeof(elf)); - elf.buf = buf; - elf.sz = sz; - - /* Parse Header */ - if (parse_elf_header(&elf)) - goto bail; - - if (elf.bits == 32) - { - Elf32_Shdr shdr; - for (i = 0; i < elf.hdr32.e_shnum; i++) - { - parse_elf_section(&elf, i, &shdr, NULL); - - if (shdr.sh_type == SHT_STRTAB) - { - char strtsb_name[128]; - - strcpy(strtsb_name, (char *)(elf.buf + shdr.sh_offset + shdr.sh_name)); - - if (!(strcmp(strtsb_name, ".shstrtab"))) - { - /* log_msg("found section: %s\n", strtsb_name); */ - strtab_off32 = shdr.sh_offset; - break; - } - } - } - } - else /* if (elf.bits == 64) */ - { - Elf64_Shdr shdr; - for (i = 0; i < elf.hdr64.e_shnum; i++) - { - parse_elf_section(&elf, i, NULL, &shdr); - - if (shdr.sh_type == SHT_STRTAB) - { - char strtsb_name[128]; - - strcpy(strtsb_name, (char *)(elf.buf + shdr.sh_offset + shdr.sh_name)); - - if (!(strcmp(strtsb_name, ".shstrtab"))) - { - /* log_msg("found section: %s\n", strtsb_name); */ - strtab_off64 = shdr.sh_offset; - break; - } - } - } - } - - /* Parse all Symbol Tables */ - if (elf.bits == 32) - { - Elf32_Shdr shdr; - for (i = 0; i < elf.hdr32.e_shnum; i++) - { - parse_elf_section(&elf, i, &shdr, NULL); - - if (shdr.sh_type == SHT_SYMTAB) - { - for (ofst = shdr.sh_offset; - ofst < shdr.sh_offset + shdr.sh_size; - ofst += shdr.sh_entsize) - { - Elf32_Sym sym; - - parse_elf_symbol(&elf, ofst, &sym, NULL); - - /* For all OBJECTS (data objects), extract the value from the - * proper data segment. - */ - /* if (ELF32_ST_TYPE(sym.st_info) == STT_OBJECT && sym.st_name) - log_msg("found data object %s\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name)); - */ - - if (ELF32_ST_TYPE(sym.st_info) == STT_OBJECT - && sym.st_size == 4) - { - Elf32_Shdr dhdr; - int val = 0; - char section_name[128]; - - parse_elf_section(&elf, sym.st_shndx, &dhdr, NULL); - - /* For explanition - refer to _MSC_VER version of code */ - strcpy(section_name, (char *)(elf.buf + strtab_off32 + dhdr.sh_name)); - /* log_msg("Section_name: %s, Section_type: %d\n", section_name, dhdr.sh_type); */ - - if (strcmp(section_name, ".bss")) - { - if (sizeof(val) != sym.st_size) - { - /* The target value is declared as an int in - * asm_*_offsets.c, which is 4 bytes on all - * targets we currently use. Complain loudly if - * this is not true. - */ - log_msg("Symbol size is wrong\n"); - goto bail; - } - - memcpy(&val, - elf.buf + dhdr.sh_offset + sym.st_value, - sym.st_size); - } - - if (!elf.le_data) - { - log_msg("Big Endian data not supported yet!\n"); - goto bail; - } - - switch (mode) - { - case OUTPUT_FMT_RVDS: - printf("%-40s EQU %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - case OUTPUT_FMT_GAS: - printf(".equ %-40s, %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - default: - printf("%s = %d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - } - } - } - } - } - } - else /* if (elf.bits == 64) */ - { - Elf64_Shdr shdr; - for (i = 0; i < elf.hdr64.e_shnum; i++) - { - parse_elf_section(&elf, i, NULL, &shdr); - - if (shdr.sh_type == SHT_SYMTAB) - { - for (ofst = shdr.sh_offset; - ofst < shdr.sh_offset + shdr.sh_size; - ofst += shdr.sh_entsize) - { - Elf64_Sym sym; - - parse_elf_symbol(&elf, ofst, NULL, &sym); - - /* For all OBJECTS (data objects), extract the value from the - * proper data segment. - */ - /* if (ELF64_ST_TYPE(sym.st_info) == STT_OBJECT && sym.st_name) - log_msg("found data object %s\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name)); - */ - - if (ELF64_ST_TYPE(sym.st_info) == STT_OBJECT - && sym.st_size == 4) - { - Elf64_Shdr dhdr; - int val = 0; - char section_name[128]; - - parse_elf_section(&elf, sym.st_shndx, NULL, &dhdr); - - /* For explanition - refer to _MSC_VER version of code */ - strcpy(section_name, (char *)(elf.buf + strtab_off64 + dhdr.sh_name)); - /* log_msg("Section_name: %s, Section_type: %d\n", section_name, dhdr.sh_type); */ - - if ((strcmp(section_name, ".bss"))) - { - if (sizeof(val) != sym.st_size) - { - /* The target value is declared as an int in - * asm_*_offsets.c, which is 4 bytes on all - * targets we currently use. Complain loudly if - * this is not true. - */ - log_msg("Symbol size is wrong\n"); - goto bail; - } - - memcpy(&val, - elf.buf + dhdr.sh_offset + sym.st_value, - sym.st_size); - } - - if (!elf.le_data) - { - log_msg("Big Endian data not supported yet!\n"); - goto bail; - } - - switch (mode) - { - case OUTPUT_FMT_RVDS: - printf("%-40s EQU %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - case OUTPUT_FMT_GAS: - printf(".equ %-40s, %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - default: - printf("%s = %d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - } - } - } - } - } - } - - if (mode == OUTPUT_FMT_RVDS) - printf(" END\n"); - - return 0; -bail: - log_msg("Parse error: File does not appear to be valid ELF32 or ELF64\n"); - return 1; -} - -#endif -#endif /* defined(__GNUC__) && __GNUC__ */ - - -#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) -/* See "Microsoft Portable Executable and Common Object File Format Specification" - for reference. -*/ -#define get_le32(x) ((*(x)) | (*(x+1)) << 8 |(*(x+2)) << 16 | (*(x+3)) << 24 ) -#define get_le16(x) ((*(x)) | (*(x+1)) << 8) - -int parse_coff(uint8_t *buf, size_t sz) -{ - unsigned int nsections, symtab_ptr, symtab_sz, strtab_ptr; - unsigned int sectionrawdata_ptr; - unsigned int i; - uint8_t *ptr; - uint32_t symoffset; - - char **sectionlist; //this array holds all section names in their correct order. - //it is used to check if the symbol is in .bss or .data section. - - nsections = get_le16(buf + 2); - symtab_ptr = get_le32(buf + 8); - symtab_sz = get_le32(buf + 12); - strtab_ptr = symtab_ptr + symtab_sz * 18; - - if (nsections > 96) - { - log_msg("Too many sections\n"); - return 1; - } - - sectionlist = malloc(nsections * sizeof(sectionlist)); - - if (sectionlist == NULL) - { - log_msg("Allocating first level of section list failed\n"); - return 1; - } - - //log_msg("COFF: Found %u symbols in %u sections.\n", symtab_sz, nsections); - - /* - The size of optional header is always zero for an obj file. So, the section header - follows the file header immediately. - */ - - ptr = buf + 20; //section header - - for (i = 0; i < nsections; i++) - { - char sectionname[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; - strncpy(sectionname, ptr, 8); - //log_msg("COFF: Parsing section %s\n",sectionname); - - sectionlist[i] = malloc(strlen(sectionname) + 1); - - if (sectionlist[i] == NULL) - { - log_msg("Allocating storage for %s failed\n", sectionname); - goto bail; - } - strcpy(sectionlist[i], sectionname); - - if (!strcmp(sectionname, ".data")) sectionrawdata_ptr = get_le32(ptr + 20); - - ptr += 40; - } - - //log_msg("COFF: Symbol table at offset %u\n", symtab_ptr); - //log_msg("COFF: raw data pointer ofset for section .data is %u\n", sectionrawdata_ptr); - - /* The compiler puts the data with non-zero offset in .data section, but puts the data with - zero offset in .bss section. So, if the data in in .bss section, set offset=0. - Note from Wiki: In an object module compiled from C, the bss section contains - the local variables (but not functions) that were declared with the static keyword, - except for those with non-zero initial values. (In C, static variables are initialized - to zero by default.) It also contains the non-local (both extern and static) variables - that are also initialized to zero (either explicitly or by default). - */ - //move to symbol table - /* COFF symbol table: - offset field - 0 Name(*) - 8 Value - 12 SectionNumber - 14 Type - 16 StorageClass - 17 NumberOfAuxSymbols - */ - ptr = buf + symtab_ptr; - - for (i = 0; i < symtab_sz; i++) - { - int16_t section = get_le16(ptr + 12); //section number - - if (section > 0 && ptr[16] == 2) - { - //if(section > 0 && ptr[16] == 3 && get_le32(ptr+8)) { - - if (get_le32(ptr)) - { - char name[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; - strncpy(name, ptr, 8); - //log_msg("COFF: Parsing symbol %s\n",name); - /* The 64bit Windows compiler doesn't prefix with an _. - * Check what's there, and bump if necessary - */ - if (name[0] == '_') - printf("%-40s EQU ", name + 1); - else - printf("%-40s EQU ", name); - } - else - { - //log_msg("COFF: Parsing symbol %s\n", - // buf + strtab_ptr + get_le32(ptr+4)); - if ((buf + strtab_ptr + get_le32(ptr + 4))[0] == '_') - printf("%-40s EQU ", - buf + strtab_ptr + get_le32(ptr + 4) + 1); - else - printf("%-40s EQU ", buf + strtab_ptr + get_le32(ptr + 4)); - } - - if (!(strcmp(sectionlist[section-1], ".bss"))) - { - symoffset = 0; - } - else - { - symoffset = get_le32(buf + sectionrawdata_ptr + get_le32(ptr + 8)); - } - - //log_msg(" Section: %d\n",section); - //log_msg(" Class: %d\n",ptr[16]); - //log_msg(" Address: %u\n",get_le32(ptr+8)); - //log_msg(" Offset: %u\n", symoffset); - - printf("%5d\n", symoffset); - } - - ptr += 18; - } - - printf(" END\n"); - - for (i = 0; i < nsections; i++) - { - free(sectionlist[i]); - } - - free(sectionlist); - - return 0; -bail: - - for (i = 0; i < nsections; i++) - { - free(sectionlist[i]); - } - - free(sectionlist); - - return 1; -} -#endif /* defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) */ - -int main(int argc, char **argv) -{ - output_fmt_t mode = OUTPUT_FMT_PLAIN; - const char *f; - uint8_t *file_buf; - int res; - FILE *fp; - long int file_size; - - if (argc < 2 || argc > 3) - { - fprintf(stderr, "Usage: %s [output format] \n\n", argv[0]); - fprintf(stderr, " \tobject file to parse\n"); - fprintf(stderr, "Output Formats:\n"); - fprintf(stderr, " gas - compatible with GNU assembler\n"); - fprintf(stderr, " rvds - compatible with armasm\n"); - goto bail; - } - - f = argv[2]; - - if (!strcmp(argv[1], "rvds")) - mode = OUTPUT_FMT_RVDS; - else if (!strcmp(argv[1], "gas")) - mode = OUTPUT_FMT_GAS; - else - f = argv[1]; - - fp = fopen(f, "rb"); - - if (!fp) - { - perror("Unable to open file"); - goto bail; - } - - if (fseek(fp, 0, SEEK_END)) - { - perror("stat"); - goto bail; - } - - file_size = ftell(fp); - file_buf = malloc(file_size); - - if (!file_buf) - { - perror("malloc"); - goto bail; - } - - rewind(fp); - - if (fread(file_buf, sizeof(char), file_size, fp) != file_size) - { - perror("read"); - goto bail; - } - - if (fclose(fp)) - { - perror("close"); - goto bail; - } - -#if defined(__GNUC__) && __GNUC__ -#if defined(__MACH__) - res = parse_macho(file_buf, file_size); -#elif defined(__ELF__) - res = parse_elf(file_buf, file_size, mode); -#endif -#endif -#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) - res = parse_coff(file_buf, file_size); -#endif - - free(file_buf); - - if (!res) - return EXIT_SUCCESS; - -bail: - return EXIT_FAILURE; -} diff --git a/third_party/libvpx/source/config/mac/ia32/vpx_rtcd.h b/third_party/libvpx/source/config/mac/ia32/vpx_rtcd.h index dab26dcf0b..6630af4b67 100644 --- a/third_party/libvpx/source/config/mac/ia32/vpx_rtcd.h +++ b/third_party/libvpx/source/config/mac/ia32/vpx_rtcd.h @@ -7,6 +7,8 @@ #define RTCD_EXTERN extern #endif +#include "vp8/common/blockd.h" + struct blockd; struct macroblockd; struct loop_filter_info; @@ -115,10 +117,7 @@ void vp8_build_intra_predictors_mbuv_s_sse2(struct macroblockd *x, unsigned char void vp8_build_intra_predictors_mbuv_s_ssse3(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride); RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv_s)(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride); -void vp8_intra4x4_predict_d_c(unsigned char *above, unsigned char *left, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); -#define vp8_intra4x4_predict_d vp8_intra4x4_predict_d_c - -void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride); +void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, B_PREDICTION_MODE b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); #define vp8_intra4x4_predict vp8_intra4x4_predict_c void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit); @@ -270,93 +269,93 @@ unsigned int vp8_variance_halfpixvar16x16_hv_mmx(const unsigned char *src_ptr, i unsigned int vp8_variance_halfpixvar16x16_hv_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_hv)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad4x4)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad4x4)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad8x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad8x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad8x16)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad16x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad4x4x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); unsigned int vp8_get_mb_ss_c(const short *); unsigned int vp8_get_mb_ss_mmx(const short *); @@ -545,11 +544,12 @@ void vp8_yv12_copy_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffe void vp8_yv12_copy_y_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); #define vp8_yv12_copy_y vp8_yv12_copy_y_c + void vpx_rtcd(void); #ifdef RTCD_C #include "vpx_ports/x86.h" -void vpx_rtcd(void) +static void setup_rtcd_internal(void) { int flags = x86_simd_caps(); @@ -631,7 +631,6 @@ void vpx_rtcd(void) if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_ssse3; - vp8_mbpost_proc_down = vp8_mbpost_proc_down_c; if (flags & HAS_MMX) vp8_mbpost_proc_down = vp8_mbpost_proc_down_mmx; if (flags & HAS_SSE2) vp8_mbpost_proc_down = vp8_mbpost_proc_down_xmm; diff --git a/third_party/libvpx/source/config/mac/x64/asm_enc_offsets.asm b/third_party/libvpx/source/config/mac/x64/asm_enc_offsets.asm deleted file mode 100644 index 2706d67d43..0000000000 --- a/third_party/libvpx/source/config/mac/x64/asm_enc_offsets.asm +++ /dev/null @@ -1,44 +0,0 @@ -vp8_block_coeff EQU 8 -vp8_block_zbin EQU 40 -vp8_block_round EQU 56 -vp8_block_quant EQU 16 -vp8_block_quant_fast EQU 24 -vp8_block_zbin_extra EQU 64 -vp8_block_zrun_zbin_boost EQU 48 -vp8_block_quant_shift EQU 32 -vp8_blockd_qcoeff EQU 0 -vp8_blockd_dequant EQU 24 -vp8_blockd_dqcoeff EQU 8 -vp8_blockd_eob EQU 40 -vp8_block_base_src EQU 72 -vp8_block_src EQU 80 -vp8_block_src_diff EQU 0 -vp8_block_src_stride EQU 84 -vp8_blockd_predictor EQU 16 -vp8_writer_lowvalue EQU 0 -vp8_writer_range EQU 4 -vp8_writer_count EQU 8 -vp8_writer_pos EQU 12 -vp8_writer_buffer EQU 16 -vp8_writer_buffer_end EQU 24 -vp8_writer_error EQU 32 -tokenextra_token EQU 10 -tokenextra_extra EQU 8 -tokenextra_context_tree EQU 0 -tokenextra_skip_eob_node EQU 11 -TOKENEXTRA_SZ EQU 16 -vp8_extra_bit_struct_sz EQU 24 -vp8_token_value EQU 0 -vp8_token_len EQU 4 -vp8_extra_bit_struct_tree EQU 0 -vp8_extra_bit_struct_prob EQU 8 -vp8_extra_bit_struct_len EQU 16 -vp8_extra_bit_struct_base_val EQU 20 -vp8_comp_tplist EQU 173112 -vp8_comp_common EQU 105952 -vp8_comp_bc EQU 118320 -vp8_writer_sz EQU 56 -tokenlist_start EQU 0 -tokenlist_stop EQU 8 -TOKENLIST_SZ EQU 16 -vp8_common_mb_rows EQU 2424 diff --git a/third_party/libvpx/source/config/mac/x64/obj_int_extract.c b/third_party/libvpx/source/config/mac/x64/obj_int_extract.c deleted file mode 100644 index 04e14a6c81..0000000000 --- a/third_party/libvpx/source/config/mac/x64/obj_int_extract.c +++ /dev/null @@ -1,914 +0,0 @@ -/* - * 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. - */ - - -#include -#include -#include -#include - -#include "vpx_config.h" -#include "vpx/vpx_integer.h" - -typedef enum -{ - OUTPUT_FMT_PLAIN, - OUTPUT_FMT_RVDS, - OUTPUT_FMT_GAS, -} output_fmt_t; - -int log_msg(const char *fmt, ...) -{ - int res; - va_list ap; - va_start(ap, fmt); - res = vfprintf(stderr, fmt, ap); - va_end(ap); - return res; -} - -#if defined(__GNUC__) && __GNUC__ -#if defined(__MACH__) - -#include -#include - -int parse_macho(uint8_t *base_buf, size_t sz) -{ - int i, j; - struct mach_header header; - uint8_t *buf = base_buf; - int base_data_section = 0; - int bits = 0; - - /* We can read in mach_header for 32 and 64 bit architectures - * because it's identical to mach_header_64 except for the last - * element (uint32_t reserved), which we don't use. Then, when - * we know which architecture we're looking at, increment buf - * appropriately. - */ - memcpy(&header, buf, sizeof(struct mach_header)); - - if (header.magic == MH_MAGIC) - { - if (header.cputype == CPU_TYPE_ARM - || header.cputype == CPU_TYPE_X86) - { - bits = 32; - buf += sizeof(struct mach_header); - } - else - { - log_msg("Bad cputype for object file. Currently only tested for CPU_TYPE_[ARM|X86].\n"); - goto bail; - } - } - else if (header.magic == MH_MAGIC_64) - { - if (header.cputype == CPU_TYPE_X86_64) - { - bits = 64; - buf += sizeof(struct mach_header_64); - } - else - { - log_msg("Bad cputype for object file. Currently only tested for CPU_TYPE_X86_64.\n"); - goto bail; - } - } - else - { - log_msg("Bad magic number for object file. 0x%x or 0x%x expected, 0x%x found.\n", - MH_MAGIC, MH_MAGIC_64, header.magic); - goto bail; - } - - if (header.filetype != MH_OBJECT) - { - log_msg("Bad filetype for object file. Currently only tested for MH_OBJECT.\n"); - goto bail; - } - - for (i = 0; i < header.ncmds; i++) - { - struct load_command lc; - - memcpy(&lc, buf, sizeof(struct load_command)); - - if (lc.cmd == LC_SEGMENT) - { - uint8_t *seg_buf = buf; - struct section s; - struct segment_command seg_c; - - memcpy(&seg_c, seg_buf, sizeof(struct segment_command)); - seg_buf += sizeof(struct segment_command); - - /* Although each section is given it's own offset, nlist.n_value - * references the offset of the first section. This isn't - * apparent without debug information because the offset of the - * data section is the same as the first section. However, with - * debug sections mixed in, the offset of the debug section - * increases but n_value still references the first section. - */ - if (seg_c.nsects < 1) - { - log_msg("Not enough sections\n"); - goto bail; - } - - memcpy(&s, seg_buf, sizeof(struct section)); - base_data_section = s.offset; - } - else if (lc.cmd == LC_SEGMENT_64) - { - uint8_t *seg_buf = buf; - struct section_64 s; - struct segment_command_64 seg_c; - - memcpy(&seg_c, seg_buf, sizeof(struct segment_command_64)); - seg_buf += sizeof(struct segment_command_64); - - /* Explanation in LG_SEGMENT */ - if (seg_c.nsects < 1) - { - log_msg("Not enough sections\n"); - goto bail; - } - - memcpy(&s, seg_buf, sizeof(struct section_64)); - base_data_section = s.offset; - } - else if (lc.cmd == LC_SYMTAB) - { - if (base_data_section != 0) - { - struct symtab_command sc; - uint8_t *sym_buf = base_buf; - uint8_t *str_buf = base_buf; - - memcpy(&sc, buf, sizeof(struct symtab_command)); - - if (sc.cmdsize != sizeof(struct symtab_command)) - { - log_msg("Can't find symbol table!\n"); - goto bail; - } - - sym_buf += sc.symoff; - str_buf += sc.stroff; - - for (j = 0; j < sc.nsyms; j++) - { - /* Location of string is cacluated each time from the - * start of the string buffer. On darwin the symbols - * are prefixed by "_", so we bump the pointer by 1. - * The target value is defined as an int in asm_*_offsets.c, - * which is 4 bytes on all targets we currently use. - */ - if (bits == 32) - { - struct nlist nl; - int val; - - memcpy(&nl, sym_buf, sizeof(struct nlist)); - sym_buf += sizeof(struct nlist); - - memcpy(&val, base_buf + base_data_section + nl.n_value, - sizeof(val)); - printf("%-40s EQU %5d\n", - str_buf + nl.n_un.n_strx + 1, val); - } - else /* if (bits == 64) */ - { - struct nlist_64 nl; - int val; - - memcpy(&nl, sym_buf, sizeof(struct nlist_64)); - sym_buf += sizeof(struct nlist_64); - - memcpy(&val, base_buf + base_data_section + nl.n_value, - sizeof(val)); - printf("%-40s EQU %5d\n", - str_buf + nl.n_un.n_strx + 1, val); - } - } - } - } - - buf += lc.cmdsize; - } - - return 0; -bail: - return 1; - -} - -#elif defined(__ELF__) -#include "elf.h" - -#define COPY_STRUCT(dst, buf, ofst, sz) do {\ - if(ofst + sizeof((*(dst))) > sz) goto bail;\ - memcpy(dst, buf+ofst, sizeof((*(dst))));\ - } while(0) - -#define ENDIAN_ASSIGN(val, memb) do {\ - if(!elf->le_data) {log_msg("Big Endian data not supported yet!\n");goto bail;}\ - (val) = (memb);\ - } while(0) - -#define ENDIAN_ASSIGN_IN_PLACE(memb) do {\ - ENDIAN_ASSIGN(memb, memb);\ - } while(0) - -typedef struct -{ - uint8_t *buf; /* Buffer containing ELF data */ - size_t sz; /* Buffer size */ - int le_data; /* Data is little-endian */ - unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ - int bits; /* 32 or 64 */ - Elf32_Ehdr hdr32; - Elf64_Ehdr hdr64; -} elf_obj_t; - -int parse_elf_header(elf_obj_t *elf) -{ - int res; - /* Verify ELF Magic numbers */ - COPY_STRUCT(&elf->e_ident, elf->buf, 0, elf->sz); - res = elf->e_ident[EI_MAG0] == ELFMAG0; - res &= elf->e_ident[EI_MAG1] == ELFMAG1; - res &= elf->e_ident[EI_MAG2] == ELFMAG2; - res &= elf->e_ident[EI_MAG3] == ELFMAG3; - res &= elf->e_ident[EI_CLASS] == ELFCLASS32 - || elf->e_ident[EI_CLASS] == ELFCLASS64; - res &= elf->e_ident[EI_DATA] == ELFDATA2LSB; - - if (!res) goto bail; - - elf->le_data = elf->e_ident[EI_DATA] == ELFDATA2LSB; - - /* Read in relevant values */ - if (elf->e_ident[EI_CLASS] == ELFCLASS32) - { - elf->bits = 32; - COPY_STRUCT(&elf->hdr32, elf->buf, 0, elf->sz); - - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_type); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_machine); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_version); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_entry); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_flags); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_ehsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_phnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr32.e_shstrndx); - } - else /* if (elf->e_ident[EI_CLASS] == ELFCLASS64) */ - { - elf->bits = 64; - COPY_STRUCT(&elf->hdr64, elf->buf, 0, elf->sz); - - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_type); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_machine); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_version); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_entry); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shoff); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_flags); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_ehsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_phnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shentsize); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shnum); - ENDIAN_ASSIGN_IN_PLACE(elf->hdr64.e_shstrndx); - } - - return 0; -bail: - log_msg("Failed to parse ELF file header"); - return 1; -} - -int parse_elf_section(elf_obj_t *elf, int idx, Elf32_Shdr *hdr32, Elf64_Shdr *hdr64) -{ - if (hdr32) - { - if (idx >= elf->hdr32.e_shnum) - goto bail; - - COPY_STRUCT(hdr32, elf->buf, elf->hdr32.e_shoff + idx * elf->hdr32.e_shentsize, - elf->sz); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_name); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_type); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_flags); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_addr); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_offset); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_size); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_link); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_info); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_addralign); - ENDIAN_ASSIGN_IN_PLACE(hdr32->sh_entsize); - } - else /* if (hdr64) */ - { - if (idx >= elf->hdr64.e_shnum) - goto bail; - - COPY_STRUCT(hdr64, elf->buf, elf->hdr64.e_shoff + idx * elf->hdr64.e_shentsize, - elf->sz); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_name); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_type); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_flags); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_addr); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_offset); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_size); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_link); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_info); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_addralign); - ENDIAN_ASSIGN_IN_PLACE(hdr64->sh_entsize); - } - - return 0; -bail: - return 1; -} - -char *parse_elf_string_table(elf_obj_t *elf, int s_idx, int idx) -{ - if (elf->bits == 32) - { - Elf32_Shdr shdr; - - if (parse_elf_section(elf, s_idx, &shdr, NULL)) - { - log_msg("Failed to parse ELF string table: section %d, index %d\n", - s_idx, idx); - return ""; - } - - return (char *)(elf->buf + shdr.sh_offset + idx); - } - else /* if (elf->bits == 64) */ - { - Elf64_Shdr shdr; - - if (parse_elf_section(elf, s_idx, NULL, &shdr)) - { - log_msg("Failed to parse ELF string table: section %d, index %d\n", - s_idx, idx); - return ""; - } - - return (char *)(elf->buf + shdr.sh_offset + idx); - } -} - -int parse_elf_symbol(elf_obj_t *elf, unsigned int ofst, Elf32_Sym *sym32, Elf64_Sym *sym64) -{ - if (sym32) - { - COPY_STRUCT(sym32, elf->buf, ofst, elf->sz); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_name); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_value); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_size); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_info); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_other); - ENDIAN_ASSIGN_IN_PLACE(sym32->st_shndx); - } - else /* if (sym64) */ - { - COPY_STRUCT(sym64, elf->buf, ofst, elf->sz); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_name); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_value); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_size); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_info); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_other); - ENDIAN_ASSIGN_IN_PLACE(sym64->st_shndx); - } - return 0; -bail: - return 1; -} - -int parse_elf(uint8_t *buf, size_t sz, output_fmt_t mode) -{ - elf_obj_t elf; - unsigned int ofst; - int i; - Elf32_Off strtab_off32; - Elf64_Off strtab_off64; /* save String Table offset for later use */ - - memset(&elf, 0, sizeof(elf)); - elf.buf = buf; - elf.sz = sz; - - /* Parse Header */ - if (parse_elf_header(&elf)) - goto bail; - - if (elf.bits == 32) - { - Elf32_Shdr shdr; - for (i = 0; i < elf.hdr32.e_shnum; i++) - { - parse_elf_section(&elf, i, &shdr, NULL); - - if (shdr.sh_type == SHT_STRTAB) - { - char strtsb_name[128]; - - strcpy(strtsb_name, (char *)(elf.buf + shdr.sh_offset + shdr.sh_name)); - - if (!(strcmp(strtsb_name, ".shstrtab"))) - { - /* log_msg("found section: %s\n", strtsb_name); */ - strtab_off32 = shdr.sh_offset; - break; - } - } - } - } - else /* if (elf.bits == 64) */ - { - Elf64_Shdr shdr; - for (i = 0; i < elf.hdr64.e_shnum; i++) - { - parse_elf_section(&elf, i, NULL, &shdr); - - if (shdr.sh_type == SHT_STRTAB) - { - char strtsb_name[128]; - - strcpy(strtsb_name, (char *)(elf.buf + shdr.sh_offset + shdr.sh_name)); - - if (!(strcmp(strtsb_name, ".shstrtab"))) - { - /* log_msg("found section: %s\n", strtsb_name); */ - strtab_off64 = shdr.sh_offset; - break; - } - } - } - } - - /* Parse all Symbol Tables */ - if (elf.bits == 32) - { - Elf32_Shdr shdr; - for (i = 0; i < elf.hdr32.e_shnum; i++) - { - parse_elf_section(&elf, i, &shdr, NULL); - - if (shdr.sh_type == SHT_SYMTAB) - { - for (ofst = shdr.sh_offset; - ofst < shdr.sh_offset + shdr.sh_size; - ofst += shdr.sh_entsize) - { - Elf32_Sym sym; - - parse_elf_symbol(&elf, ofst, &sym, NULL); - - /* For all OBJECTS (data objects), extract the value from the - * proper data segment. - */ - /* if (ELF32_ST_TYPE(sym.st_info) == STT_OBJECT && sym.st_name) - log_msg("found data object %s\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name)); - */ - - if (ELF32_ST_TYPE(sym.st_info) == STT_OBJECT - && sym.st_size == 4) - { - Elf32_Shdr dhdr; - int val = 0; - char section_name[128]; - - parse_elf_section(&elf, sym.st_shndx, &dhdr, NULL); - - /* For explanition - refer to _MSC_VER version of code */ - strcpy(section_name, (char *)(elf.buf + strtab_off32 + dhdr.sh_name)); - /* log_msg("Section_name: %s, Section_type: %d\n", section_name, dhdr.sh_type); */ - - if (strcmp(section_name, ".bss")) - { - if (sizeof(val) != sym.st_size) - { - /* The target value is declared as an int in - * asm_*_offsets.c, which is 4 bytes on all - * targets we currently use. Complain loudly if - * this is not true. - */ - log_msg("Symbol size is wrong\n"); - goto bail; - } - - memcpy(&val, - elf.buf + dhdr.sh_offset + sym.st_value, - sym.st_size); - } - - if (!elf.le_data) - { - log_msg("Big Endian data not supported yet!\n"); - goto bail; - } - - switch (mode) - { - case OUTPUT_FMT_RVDS: - printf("%-40s EQU %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - case OUTPUT_FMT_GAS: - printf(".equ %-40s, %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - default: - printf("%s = %d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - } - } - } - } - } - } - else /* if (elf.bits == 64) */ - { - Elf64_Shdr shdr; - for (i = 0; i < elf.hdr64.e_shnum; i++) - { - parse_elf_section(&elf, i, NULL, &shdr); - - if (shdr.sh_type == SHT_SYMTAB) - { - for (ofst = shdr.sh_offset; - ofst < shdr.sh_offset + shdr.sh_size; - ofst += shdr.sh_entsize) - { - Elf64_Sym sym; - - parse_elf_symbol(&elf, ofst, NULL, &sym); - - /* For all OBJECTS (data objects), extract the value from the - * proper data segment. - */ - /* if (ELF64_ST_TYPE(sym.st_info) == STT_OBJECT && sym.st_name) - log_msg("found data object %s\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name)); - */ - - if (ELF64_ST_TYPE(sym.st_info) == STT_OBJECT - && sym.st_size == 4) - { - Elf64_Shdr dhdr; - int val = 0; - char section_name[128]; - - parse_elf_section(&elf, sym.st_shndx, NULL, &dhdr); - - /* For explanition - refer to _MSC_VER version of code */ - strcpy(section_name, (char *)(elf.buf + strtab_off64 + dhdr.sh_name)); - /* log_msg("Section_name: %s, Section_type: %d\n", section_name, dhdr.sh_type); */ - - if ((strcmp(section_name, ".bss"))) - { - if (sizeof(val) != sym.st_size) - { - /* The target value is declared as an int in - * asm_*_offsets.c, which is 4 bytes on all - * targets we currently use. Complain loudly if - * this is not true. - */ - log_msg("Symbol size is wrong\n"); - goto bail; - } - - memcpy(&val, - elf.buf + dhdr.sh_offset + sym.st_value, - sym.st_size); - } - - if (!elf.le_data) - { - log_msg("Big Endian data not supported yet!\n"); - goto bail; - } - - switch (mode) - { - case OUTPUT_FMT_RVDS: - printf("%-40s EQU %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - case OUTPUT_FMT_GAS: - printf(".equ %-40s, %5d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - break; - default: - printf("%s = %d\n", - parse_elf_string_table(&elf, - shdr.sh_link, - sym.st_name), - val); - } - } - } - } - } - } - - if (mode == OUTPUT_FMT_RVDS) - printf(" END\n"); - - return 0; -bail: - log_msg("Parse error: File does not appear to be valid ELF32 or ELF64\n"); - return 1; -} - -#endif -#endif /* defined(__GNUC__) && __GNUC__ */ - - -#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) -/* See "Microsoft Portable Executable and Common Object File Format Specification" - for reference. -*/ -#define get_le32(x) ((*(x)) | (*(x+1)) << 8 |(*(x+2)) << 16 | (*(x+3)) << 24 ) -#define get_le16(x) ((*(x)) | (*(x+1)) << 8) - -int parse_coff(uint8_t *buf, size_t sz) -{ - unsigned int nsections, symtab_ptr, symtab_sz, strtab_ptr; - unsigned int sectionrawdata_ptr; - unsigned int i; - uint8_t *ptr; - uint32_t symoffset; - - char **sectionlist; //this array holds all section names in their correct order. - //it is used to check if the symbol is in .bss or .data section. - - nsections = get_le16(buf + 2); - symtab_ptr = get_le32(buf + 8); - symtab_sz = get_le32(buf + 12); - strtab_ptr = symtab_ptr + symtab_sz * 18; - - if (nsections > 96) - { - log_msg("Too many sections\n"); - return 1; - } - - sectionlist = malloc(nsections * sizeof(sectionlist)); - - if (sectionlist == NULL) - { - log_msg("Allocating first level of section list failed\n"); - return 1; - } - - //log_msg("COFF: Found %u symbols in %u sections.\n", symtab_sz, nsections); - - /* - The size of optional header is always zero for an obj file. So, the section header - follows the file header immediately. - */ - - ptr = buf + 20; //section header - - for (i = 0; i < nsections; i++) - { - char sectionname[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; - strncpy(sectionname, ptr, 8); - //log_msg("COFF: Parsing section %s\n",sectionname); - - sectionlist[i] = malloc(strlen(sectionname) + 1); - - if (sectionlist[i] == NULL) - { - log_msg("Allocating storage for %s failed\n", sectionname); - goto bail; - } - strcpy(sectionlist[i], sectionname); - - if (!strcmp(sectionname, ".data")) sectionrawdata_ptr = get_le32(ptr + 20); - - ptr += 40; - } - - //log_msg("COFF: Symbol table at offset %u\n", symtab_ptr); - //log_msg("COFF: raw data pointer ofset for section .data is %u\n", sectionrawdata_ptr); - - /* The compiler puts the data with non-zero offset in .data section, but puts the data with - zero offset in .bss section. So, if the data in in .bss section, set offset=0. - Note from Wiki: In an object module compiled from C, the bss section contains - the local variables (but not functions) that were declared with the static keyword, - except for those with non-zero initial values. (In C, static variables are initialized - to zero by default.) It also contains the non-local (both extern and static) variables - that are also initialized to zero (either explicitly or by default). - */ - //move to symbol table - /* COFF symbol table: - offset field - 0 Name(*) - 8 Value - 12 SectionNumber - 14 Type - 16 StorageClass - 17 NumberOfAuxSymbols - */ - ptr = buf + symtab_ptr; - - for (i = 0; i < symtab_sz; i++) - { - int16_t section = get_le16(ptr + 12); //section number - - if (section > 0 && ptr[16] == 2) - { - //if(section > 0 && ptr[16] == 3 && get_le32(ptr+8)) { - - if (get_le32(ptr)) - { - char name[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; - strncpy(name, ptr, 8); - //log_msg("COFF: Parsing symbol %s\n",name); - /* The 64bit Windows compiler doesn't prefix with an _. - * Check what's there, and bump if necessary - */ - if (name[0] == '_') - printf("%-40s EQU ", name + 1); - else - printf("%-40s EQU ", name); - } - else - { - //log_msg("COFF: Parsing symbol %s\n", - // buf + strtab_ptr + get_le32(ptr+4)); - if ((buf + strtab_ptr + get_le32(ptr + 4))[0] == '_') - printf("%-40s EQU ", - buf + strtab_ptr + get_le32(ptr + 4) + 1); - else - printf("%-40s EQU ", buf + strtab_ptr + get_le32(ptr + 4)); - } - - if (!(strcmp(sectionlist[section-1], ".bss"))) - { - symoffset = 0; - } - else - { - symoffset = get_le32(buf + sectionrawdata_ptr + get_le32(ptr + 8)); - } - - //log_msg(" Section: %d\n",section); - //log_msg(" Class: %d\n",ptr[16]); - //log_msg(" Address: %u\n",get_le32(ptr+8)); - //log_msg(" Offset: %u\n", symoffset); - - printf("%5d\n", symoffset); - } - - ptr += 18; - } - - printf(" END\n"); - - for (i = 0; i < nsections; i++) - { - free(sectionlist[i]); - } - - free(sectionlist); - - return 0; -bail: - - for (i = 0; i < nsections; i++) - { - free(sectionlist[i]); - } - - free(sectionlist); - - return 1; -} -#endif /* defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) */ - -int main(int argc, char **argv) -{ - output_fmt_t mode = OUTPUT_FMT_PLAIN; - const char *f; - uint8_t *file_buf; - int res; - FILE *fp; - long int file_size; - - if (argc < 2 || argc > 3) - { - fprintf(stderr, "Usage: %s [output format] \n\n", argv[0]); - fprintf(stderr, " \tobject file to parse\n"); - fprintf(stderr, "Output Formats:\n"); - fprintf(stderr, " gas - compatible with GNU assembler\n"); - fprintf(stderr, " rvds - compatible with armasm\n"); - goto bail; - } - - f = argv[2]; - - if (!strcmp(argv[1], "rvds")) - mode = OUTPUT_FMT_RVDS; - else if (!strcmp(argv[1], "gas")) - mode = OUTPUT_FMT_GAS; - else - f = argv[1]; - - fp = fopen(f, "rb"); - - if (!fp) - { - perror("Unable to open file"); - goto bail; - } - - if (fseek(fp, 0, SEEK_END)) - { - perror("stat"); - goto bail; - } - - file_size = ftell(fp); - file_buf = malloc(file_size); - - if (!file_buf) - { - perror("malloc"); - goto bail; - } - - rewind(fp); - - if (fread(file_buf, sizeof(char), file_size, fp) != file_size) - { - perror("read"); - goto bail; - } - - if (fclose(fp)) - { - perror("close"); - goto bail; - } - -#if defined(__GNUC__) && __GNUC__ -#if defined(__MACH__) - res = parse_macho(file_buf, file_size); -#elif defined(__ELF__) - res = parse_elf(file_buf, file_size, mode); -#endif -#endif -#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) - res = parse_coff(file_buf, file_size); -#endif - - free(file_buf); - - if (!res) - return EXIT_SUCCESS; - -bail: - return EXIT_FAILURE; -} diff --git a/third_party/libvpx/source/config/win/ia32/asm_com_offsets.asm b/third_party/libvpx/source/config/win/ia32/asm_com_offsets.asm deleted file mode 100644 index 1c429d3b03..0000000000 --- a/third_party/libvpx/source/config/win/ia32/asm_com_offsets.asm +++ /dev/null @@ -1,13 +0,0 @@ -yv12_buffer_config_y_width EQU 0 -yv12_buffer_config_y_height EQU 4 -yv12_buffer_config_y_stride EQU 8 -yv12_buffer_config_uv_width EQU 12 -yv12_buffer_config_uv_height EQU 16 -yv12_buffer_config_uv_stride EQU 20 -yv12_buffer_config_y_buffer EQU 24 -yv12_buffer_config_u_buffer EQU 28 -yv12_buffer_config_v_buffer EQU 32 -yv12_buffer_config_border EQU 40 -VP8BORDERINPIXELS_VAL EQU 32 -MFQE_PRECISION_VAL EQU 4 - END diff --git a/third_party/libvpx/source/config/win/ia32/asm_dec_offsets.asm b/third_party/libvpx/source/config/win/ia32/asm_dec_offsets.asm deleted file mode 100644 index 9c08b29277..0000000000 --- a/third_party/libvpx/source/config/win/ia32/asm_dec_offsets.asm +++ /dev/null @@ -1,6 +0,0 @@ -bool_decoder_user_buffer_end EQU 0 -bool_decoder_user_buffer EQU 4 -bool_decoder_value EQU 8 -bool_decoder_count EQU 12 -bool_decoder_range EQU 16 - END diff --git a/third_party/libvpx/source/config/win/ia32/asm_enc_offsets.asm b/third_party/libvpx/source/config/win/ia32/asm_enc_offsets.asm deleted file mode 100644 index 9fc22295de..0000000000 --- a/third_party/libvpx/source/config/win/ia32/asm_enc_offsets.asm +++ /dev/null @@ -1,45 +0,0 @@ -vp8_block_coeff EQU 4 -vp8_block_zbin EQU 20 -vp8_block_round EQU 28 -vp8_block_quant EQU 8 -vp8_block_quant_fast EQU 12 -vp8_block_zbin_extra EQU 32 -vp8_block_zrun_zbin_boost EQU 24 -vp8_block_quant_shift EQU 16 -vp8_blockd_qcoeff EQU 0 -vp8_blockd_dequant EQU 12 -vp8_blockd_dqcoeff EQU 4 -vp8_blockd_eob EQU 20 -vp8_block_base_src EQU 36 -vp8_block_src EQU 40 -vp8_block_src_diff EQU 0 -vp8_block_src_stride EQU 44 -vp8_blockd_predictor EQU 8 -vp8_writer_lowvalue EQU 0 -vp8_writer_range EQU 4 -vp8_writer_count EQU 8 -vp8_writer_pos EQU 12 -vp8_writer_buffer EQU 16 -vp8_writer_buffer_end EQU 20 -vp8_writer_error EQU 24 -tokenextra_token EQU 6 -tokenextra_extra EQU 4 -tokenextra_context_tree EQU 0 -tokenextra_skip_eob_node EQU 7 -TOKENEXTRA_SZ EQU 8 -vp8_extra_bit_struct_sz EQU 16 -vp8_token_value EQU 0 -vp8_token_len EQU 4 -vp8_extra_bit_struct_tree EQU 0 -vp8_extra_bit_struct_prob EQU 4 -vp8_extra_bit_struct_len EQU 8 -vp8_extra_bit_struct_base_val EQU 12 -vp8_comp_tplist EQU 170616 -vp8_comp_common EQU 104032 -vp8_comp_bc EQU 116144 -vp8_writer_sz EQU 36 -tokenlist_start EQU 0 -tokenlist_stop EQU 4 -TOKENLIST_SZ EQU 8 -vp8_common_mb_rows EQU 2200 - END diff --git a/third_party/libvpx/source/config/win/ia32/vpx_rtcd.h b/third_party/libvpx/source/config/win/ia32/vpx_rtcd.h index dab26dcf0b..6630af4b67 100755 --- a/third_party/libvpx/source/config/win/ia32/vpx_rtcd.h +++ b/third_party/libvpx/source/config/win/ia32/vpx_rtcd.h @@ -7,6 +7,8 @@ #define RTCD_EXTERN extern #endif +#include "vp8/common/blockd.h" + struct blockd; struct macroblockd; struct loop_filter_info; @@ -115,10 +117,7 @@ void vp8_build_intra_predictors_mbuv_s_sse2(struct macroblockd *x, unsigned char void vp8_build_intra_predictors_mbuv_s_ssse3(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride); RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv_s)(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride); -void vp8_intra4x4_predict_d_c(unsigned char *above, unsigned char *left, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); -#define vp8_intra4x4_predict_d vp8_intra4x4_predict_d_c - -void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride); +void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, B_PREDICTION_MODE b_mode, unsigned char *dst, int dst_stride, unsigned char top_left); #define vp8_intra4x4_predict vp8_intra4x4_predict_c void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit); @@ -270,93 +269,93 @@ unsigned int vp8_variance_halfpixvar16x16_hv_mmx(const unsigned char *src_ptr, i unsigned int vp8_variance_halfpixvar16x16_hv_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_hv)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse); -unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad4x4)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad4x4)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad8x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad8x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad8x16)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad16x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); -RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad); +unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); +RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad); -void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad4x4x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array); -void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); -RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); +RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int ref_stride, unsigned int *sad_array); unsigned int vp8_get_mb_ss_c(const short *); unsigned int vp8_get_mb_ss_mmx(const short *); @@ -545,11 +544,12 @@ void vp8_yv12_copy_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffe void vp8_yv12_copy_y_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc); #define vp8_yv12_copy_y vp8_yv12_copy_y_c + void vpx_rtcd(void); #ifdef RTCD_C #include "vpx_ports/x86.h" -void vpx_rtcd(void) +static void setup_rtcd_internal(void) { int flags = x86_simd_caps(); @@ -631,7 +631,6 @@ void vpx_rtcd(void) if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_ssse3; - vp8_mbpost_proc_down = vp8_mbpost_proc_down_c; if (flags & HAS_MMX) vp8_mbpost_proc_down = vp8_mbpost_proc_down_mmx; if (flags & HAS_SSE2) vp8_mbpost_proc_down = vp8_mbpost_proc_down_xmm; diff --git a/third_party/libvpx/source/config/win/x64/asm_com_offsets.asm b/third_party/libvpx/source/config/win/x64/asm_com_offsets.asm deleted file mode 100644 index 7e79d4078a..0000000000 --- a/third_party/libvpx/source/config/win/x64/asm_com_offsets.asm +++ /dev/null @@ -1,13 +0,0 @@ -yv12_buffer_config_y_width EQU 0 -yv12_buffer_config_y_height EQU 4 -yv12_buffer_config_y_stride EQU 8 -yv12_buffer_config_uv_width EQU 12 -yv12_buffer_config_uv_height EQU 16 -yv12_buffer_config_uv_stride EQU 20 -yv12_buffer_config_y_buffer EQU 24 -yv12_buffer_config_u_buffer EQU 32 -yv12_buffer_config_v_buffer EQU 40 -yv12_buffer_config_border EQU 56 -VP8BORDERINPIXELS_VAL EQU 32 -MFQE_PRECISION_VAL EQU 4 - END diff --git a/third_party/libvpx/source/config/win/x64/asm_dec_offsets.asm b/third_party/libvpx/source/config/win/x64/asm_dec_offsets.asm deleted file mode 100644 index ba1d57a66f..0000000000 --- a/third_party/libvpx/source/config/win/x64/asm_dec_offsets.asm +++ /dev/null @@ -1,6 +0,0 @@ -bool_decoder_user_buffer_end EQU 0 -bool_decoder_user_buffer EQU 8 -bool_decoder_value EQU 16 -bool_decoder_count EQU 24 -bool_decoder_range EQU 28 - END diff --git a/third_party/libvpx/source/config/win/x64/asm_enc_offsets.asm b/third_party/libvpx/source/config/win/x64/asm_enc_offsets.asm deleted file mode 100644 index 17bcdf4695..0000000000 --- a/third_party/libvpx/source/config/win/x64/asm_enc_offsets.asm +++ /dev/null @@ -1,45 +0,0 @@ -vp8_block_coeff EQU 8 -vp8_block_zbin EQU 40 -vp8_block_round EQU 56 -vp8_block_quant EQU 16 -vp8_block_quant_fast EQU 24 -vp8_block_zbin_extra EQU 64 -vp8_block_zrun_zbin_boost EQU 48 -vp8_block_quant_shift EQU 32 -vp8_blockd_qcoeff EQU 0 -vp8_blockd_dequant EQU 24 -vp8_blockd_dqcoeff EQU 8 -vp8_blockd_eob EQU 40 -vp8_block_base_src EQU 72 -vp8_block_src EQU 80 -vp8_block_src_diff EQU 0 -vp8_block_src_stride EQU 84 -vp8_blockd_predictor EQU 16 -vp8_writer_lowvalue EQU 0 -vp8_writer_range EQU 4 -vp8_writer_count EQU 8 -vp8_writer_pos EQU 12 -vp8_writer_buffer EQU 16 -vp8_writer_buffer_end EQU 24 -vp8_writer_error EQU 32 -tokenextra_token EQU 10 -tokenextra_extra EQU 8 -tokenextra_context_tree EQU 0 -tokenextra_skip_eob_node EQU 11 -TOKENEXTRA_SZ EQU 16 -vp8_extra_bit_struct_sz EQU 24 -vp8_token_value EQU 0 -vp8_token_len EQU 4 -vp8_extra_bit_struct_tree EQU 0 -vp8_extra_bit_struct_prob EQU 8 -vp8_extra_bit_struct_len EQU 16 -vp8_extra_bit_struct_base_val EQU 20 -vp8_comp_tplist EQU 173160 -vp8_comp_common EQU 105952 -vp8_comp_bc EQU 118432 -vp8_writer_sz EQU 48 -tokenlist_start EQU 0 -tokenlist_stop EQU 8 -TOKENLIST_SZ EQU 16 -vp8_common_mb_rows EQU 2536 - END diff --git a/third_party/libvpx/unpack_lib_posix.sh b/third_party/libvpx/unpack_lib_posix.sh new file mode 100755 index 0000000000..5a55f76da8 --- /dev/null +++ b/third_party/libvpx/unpack_lib_posix.sh @@ -0,0 +1,67 @@ +#!/bin/bash -e +# +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This script is used to unpack a .a file into object files. +# +# Arguments: +# +# d - Output directory. +# a - List of possible locations of the archive. +# f - List of files to extract. +# + +while getopts "d:a:f:" flag +do + if [ "$flag" = "d" ]; then + out_dir=$OPTARG + elif [ "$flag" = "a" ]; then + lib_files="$OPTARG $lib_files" + elif [ "$flag" = "f" ]; then + obj_files="$OPTARG $obj_files" + fi +done + +for f in $lib_files; do + if [ -a $f ]; then + lib_file=$f + break + fi +done + +if [ -z "$lib_file" ]; then + echo "Failed to locate a static library." + false + exit +fi + +# Find the appropriate ar to use. +ar="ar" +if [ -n "$AR_target" ]; then + ar=$AR_target +elif [ -n "$AR" ]; then + ar=$AR +fi + +obj_list="$($ar t $lib_file | grep '\.o$')" + +function extract_object { + for f in $obj_list; do + filename="${f##*/}" + + if [ -z "$(echo $filename | grep $1)" ]; then + continue + fi + + # Only echo this if debugging. + # echo "Extract $filename from archive to $out_dir/$1." + $ar p $lib_file $filename > $out_dir/$1 + break + done +} + +for f in $obj_files; do + extract_object $f +done diff --git a/third_party/libvpx/update_libvpx.sh b/third_party/libvpx/update_libvpx.sh new file mode 100755 index 0000000000..9825c1e2ed --- /dev/null +++ b/third_party/libvpx/update_libvpx.sh @@ -0,0 +1,70 @@ +#!/bin/bash -e +# +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This tool is used to update libvpx source code with the latest git +# repository. +# +# Make sure you run this in a svn checkout of deps/third_party/libvpx! + +# Usage: +# +# $ ./update_libvpx.sh [branch] + +# Tools required for running this tool: +# +# 1. Linux / Mac +# 2. svn +# 3. git + +# Location for the remote git repository. +GIT_REPO="http://git.chromium.org/webm/libvpx.git" + +GIT_BRANCH="master" +LIBVPX_SRC_DIR="source/libvpx" +BASE_DIR=`pwd` + +if [ -n "$1" ]; then + GIT_BRANCH="$1" +fi + +rm -rf $(svn ls $LIBVPX_SRC_DIR) +svn update $LIBVPX_SRC_DIR + +cd $LIBVPX_SRC_DIR + +# Make sure git doesn't mess up with svn. +echo ".svn" >> .gitignore + +# Start a local git repo. +git init +git add . +git commit -a -m "Current libvpx" + +# Add the remote repo. +git remote add origin $GIT_REPO +git fetch + +add="$(git diff-index --diff-filter=D origin/$GIT_BRANCH | \ +tr -s '\t' ' ' | cut -f6 -d\ )" +delete="$(git diff-index --diff-filter=A origin/$GIT_BRANCH | \ +tr -s '\t' ' ' | cut -f6 -d\ )" + +# Switch the content to the latest git repo. +git checkout -b tot origin/$GIT_BRANCH + +# Git is useless now, remove the local git repo. +rm -rf .git + +# Update SVN with the added and deleted files. +echo "$add" | xargs -i svn add --parents {} +echo "$delete" | xargs -i svn rm {} + +# Find empty directories and remove them from SVN. +find . -type d -empty -not -iwholename '*.svn*' -exec svn rm {} \; + +chmod 755 build/make/*.sh build/make/*.pl configure + +cd $BASE_DIR