clarify *_offsets.asm differences
it's difficult to mux the *_offsets.c files because of header conflicts. make three instead, name them consistently and partititon the contents to allow building them as required. Change-Id: I8f9768c09279f934f44b6c5b0ec363f7943bb796
This commit is contained in:
Родитель
3273c7b679
Коммит
40dcae9c2e
30
libs.mk
30
libs.mk
|
@ -233,6 +233,36 @@ endif
|
|||
$(filter %.s.o,$(OBJS-yes)): $(BUILD_PFX)vpx_config.asm
|
||||
$(filter %.asm.o,$(OBJS-yes)): $(BUILD_PFX)vpx_config.asm
|
||||
|
||||
#
|
||||
# Calculate platform- and compiler-specific offsets for hand coded assembly
|
||||
#
|
||||
ifeq ($(ARCH_ARM), yes)
|
||||
asm_com_offsets.asm: obj_int_extract
|
||||
asm_com_offsets.asm: $(VP8_PREFIX)common/asm_com_offsets.c.o
|
||||
./obj_int_extract rvds $< $(ADS2GAS) > $@
|
||||
OBJS-yes += $(VP8_PREFIX)common/asm_com_offsets.c.o
|
||||
CLEAN-OBJS += asm_com_offsets.asm
|
||||
$(filter %$(ASM).o,$(OBJS-yes)): $(BUILD_PFX)asm_com_offsets.asm
|
||||
|
||||
ifeq ($(CONFIG_VP8_ENCODER), yes)
|
||||
asm_enc_offsets.asm: obj_int_extract
|
||||
asm_enc_offsets.asm: $(VP8_PREFIX)encoder/asm_enc_offsets.c.o
|
||||
./obj_int_extract rvds $< $(ADS2GAS) > $@
|
||||
OBJS-yes += $(VP8_PREFIX)encoder/asm_enc_offsets.c.o
|
||||
CLEAN-OBJS += asm_enc_offsets.asm
|
||||
$(filter %$(ASM).o,$(OBJS-yes)): $(BUILD_PFX)asm_enc_offsets.asm
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_VP8_DECODER), yes)
|
||||
asm_dec_offsets.asm: obj_int_extract
|
||||
asm_dec_offsets.asm: $(VP8_PREFIX)decoder/asm_dec_offsets.c.o
|
||||
./obj_int_extract rvds $< $(ADS2GAS) > $@
|
||||
OBJS-yes += $(VP8_PREFIX)decoder/asm_dec_offsets.c.o
|
||||
CLEAN-OBJS += asm_dec_offsets.asm
|
||||
$(filter %$(ASM).o,$(OBJS-yes)): $(BUILD_PFX)asm_dec_offsets.asm
|
||||
endif
|
||||
endif
|
||||
|
||||
$(shell $(SRC_PATH_BARE)/build/make/version.sh "$(SRC_PATH_BARE)" $(BUILD_PFX)vpx_version.h)
|
||||
CLEAN-OBJS += $(BUILD_PFX)vpx_version.h
|
||||
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* Copyright (c) 2011 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 "vpx_ports/config.h"
|
||||
#include <stddef.h>
|
||||
|
||||
#include "vpx_scale/yv12config.h"
|
||||
|
||||
#define ct_assert(name,cond) \
|
||||
static void assert_##name(void) UNUSED;\
|
||||
static void assert_##name(void) {switch(0){case 0:case !!(cond):;}}
|
||||
|
||||
#define DEFINE(sym, val) int sym = val;
|
||||
|
||||
/*
|
||||
#define BLANK() asm volatile("\n->" : : )
|
||||
*/
|
||||
|
||||
/*
|
||||
* int main(void)
|
||||
* {
|
||||
*/
|
||||
|
||||
//vpx_scale
|
||||
DEFINE(yv12_buffer_config_y_width, offsetof(YV12_BUFFER_CONFIG, y_width));
|
||||
DEFINE(yv12_buffer_config_y_height, offsetof(YV12_BUFFER_CONFIG, y_height));
|
||||
DEFINE(yv12_buffer_config_y_stride, offsetof(YV12_BUFFER_CONFIG, y_stride));
|
||||
DEFINE(yv12_buffer_config_uv_width, offsetof(YV12_BUFFER_CONFIG, uv_width));
|
||||
DEFINE(yv12_buffer_config_uv_height, offsetof(YV12_BUFFER_CONFIG, uv_height));
|
||||
DEFINE(yv12_buffer_config_uv_stride, offsetof(YV12_BUFFER_CONFIG, uv_stride));
|
||||
DEFINE(yv12_buffer_config_y_buffer, offsetof(YV12_BUFFER_CONFIG, y_buffer));
|
||||
DEFINE(yv12_buffer_config_u_buffer, offsetof(YV12_BUFFER_CONFIG, u_buffer));
|
||||
DEFINE(yv12_buffer_config_v_buffer, offsetof(YV12_BUFFER_CONFIG, v_buffer));
|
||||
DEFINE(yv12_buffer_config_border, offsetof(YV12_BUFFER_CONFIG, border));
|
||||
|
||||
//add asserts for any offset that is not supported by assembly code
|
||||
//add asserts for any size that is not supported by assembly code
|
||||
/*
|
||||
* return 0;
|
||||
* }
|
||||
*/
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
AREA |.text|, CODE, READONLY ; name this block of code
|
||||
|
||||
INCLUDE assembly_offsets.asm
|
||||
INCLUDE asm_dec_offsets.asm
|
||||
|
||||
l_qcoeff EQU 0
|
||||
l_i EQU 4
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
* Copyright (c) 2011 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
|
||||
|
@ -12,13 +12,7 @@
|
|||
#include "vpx_ports/config.h"
|
||||
#include <stddef.h>
|
||||
|
||||
#if CONFIG_VP8_ENCODER
|
||||
#include "vpx_scale/yv12config.h"
|
||||
#endif
|
||||
|
||||
#if CONFIG_VP8_DECODER
|
||||
#include "onyxd_int.h"
|
||||
#endif
|
||||
|
||||
#define DEFINE(sym, val) int sym = val;
|
||||
|
||||
|
@ -31,20 +25,6 @@
|
|||
* {
|
||||
*/
|
||||
|
||||
#if CONFIG_VP8_DECODER || CONFIG_VP8_ENCODER
|
||||
DEFINE(yv12_buffer_config_y_width, offsetof(YV12_BUFFER_CONFIG, y_width));
|
||||
DEFINE(yv12_buffer_config_y_height, offsetof(YV12_BUFFER_CONFIG, y_height));
|
||||
DEFINE(yv12_buffer_config_y_stride, offsetof(YV12_BUFFER_CONFIG, y_stride));
|
||||
DEFINE(yv12_buffer_config_uv_width, offsetof(YV12_BUFFER_CONFIG, uv_width));
|
||||
DEFINE(yv12_buffer_config_uv_height, offsetof(YV12_BUFFER_CONFIG, uv_height));
|
||||
DEFINE(yv12_buffer_config_uv_stride, offsetof(YV12_BUFFER_CONFIG, uv_stride));
|
||||
DEFINE(yv12_buffer_config_y_buffer, offsetof(YV12_BUFFER_CONFIG, y_buffer));
|
||||
DEFINE(yv12_buffer_config_u_buffer, offsetof(YV12_BUFFER_CONFIG, u_buffer));
|
||||
DEFINE(yv12_buffer_config_v_buffer, offsetof(YV12_BUFFER_CONFIG, v_buffer));
|
||||
DEFINE(yv12_buffer_config_border, offsetof(YV12_BUFFER_CONFIG, border));
|
||||
#endif
|
||||
|
||||
#if CONFIG_VP8_DECODER
|
||||
DEFINE(detok_scan, offsetof(DETOK, scan));
|
||||
DEFINE(detok_ptr_block2leftabove, offsetof(DETOK, ptr_block2leftabove));
|
||||
DEFINE(detok_coef_tree_ptr, offsetof(DETOK, vp8_coef_tree_ptr));
|
||||
|
@ -68,7 +48,6 @@ DEFINE(bool_decoder_range, offsetof(BOOL_DECODER, range));
|
|||
|
||||
DEFINE(tokenextrabits_min_val, offsetof(TOKENEXTRABITS, min_val));
|
||||
DEFINE(tokenextrabits_length, offsetof(TOKENEXTRABITS, Length));
|
||||
#endif
|
||||
|
||||
//add asserts for any offset that is not supported by assembly code
|
||||
//add asserts for any size that is not supported by assembly code
|
|
@ -14,7 +14,7 @@
|
|||
EXPORT |vp8_stop_encode|
|
||||
EXPORT |vp8_encode_value|
|
||||
|
||||
INCLUDE vpx_vp8_enc_asm_offsets.asm
|
||||
INCLUDE asm_enc_offsets.asm
|
||||
|
||||
ARM
|
||||
REQUIRE8
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
EXPORT |vp8cx_pack_tokens_armv5|
|
||||
|
||||
INCLUDE vpx_vp8_enc_asm_offsets.asm
|
||||
INCLUDE asm_enc_offsets.asm
|
||||
|
||||
ARM
|
||||
REQUIRE8
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
EXPORT |vp8cx_pack_mb_row_tokens_armv5|
|
||||
|
||||
INCLUDE vpx_vp8_enc_asm_offsets.asm
|
||||
INCLUDE asm_enc_offsets.asm
|
||||
|
||||
ARM
|
||||
REQUIRE8
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
EXPORT |vp8cx_pack_tokens_into_partitions_armv5|
|
||||
|
||||
INCLUDE vpx_vp8_enc_asm_offsets.asm
|
||||
INCLUDE asm_enc_offsets.asm
|
||||
|
||||
ARM
|
||||
REQUIRE8
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
* Copyright (c) 2011 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
|
||||
|
@ -12,9 +12,9 @@
|
|||
#include "vpx_ports/config.h"
|
||||
#include <stddef.h>
|
||||
|
||||
#include "../treewriter.h"
|
||||
#include "../tokenize.h"
|
||||
#include "../onyx_int.h"
|
||||
#include "treewriter.h"
|
||||
#include "tokenize.h"
|
||||
#include "onyx_int.h"
|
||||
|
||||
#define ct_assert(name,cond) \
|
||||
static void assert_##name(void) UNUSED;\
|
||||
|
@ -31,6 +31,7 @@
|
|||
* {
|
||||
*/
|
||||
|
||||
//pack tokens
|
||||
DEFINE(vp8_writer_lowvalue, offsetof(vp8_writer, lowvalue));
|
||||
DEFINE(vp8_writer_range, offsetof(vp8_writer, range));
|
||||
DEFINE(vp8_writer_value, offsetof(vp8_writer, value));
|
||||
|
@ -40,19 +41,19 @@ DEFINE(vp8_writer_buffer, offsetof(vp8_writer, buffer));
|
|||
|
||||
DEFINE(tokenextra_token, offsetof(TOKENEXTRA, Token));
|
||||
DEFINE(tokenextra_extra, offsetof(TOKENEXTRA, Extra));
|
||||
DEFINE(tokenextra_context_tree, offsetof(TOKENEXTRA, context_tree));
|
||||
DEFINE(tokenextra_context_tree, offsetof(TOKENEXTRA, context_tree));
|
||||
DEFINE(tokenextra_skip_eob_node, offsetof(TOKENEXTRA, skip_eob_node));
|
||||
DEFINE(TOKENEXTRA_SZ, sizeof(TOKENEXTRA));
|
||||
|
||||
DEFINE(vp8_extra_bit_struct_sz, sizeof(vp8_extra_bit_struct));
|
||||
DEFINE(vp8_extra_bit_struct_sz, sizeof(vp8_extra_bit_struct));
|
||||
|
||||
DEFINE(vp8_token_value, offsetof(vp8_token, value));
|
||||
DEFINE(vp8_token_len, offsetof(vp8_token, Len));
|
||||
|
||||
DEFINE(vp8_extra_bit_struct_tree, offsetof(vp8_extra_bit_struct, tree));
|
||||
DEFINE(vp8_extra_bit_struct_prob, offsetof(vp8_extra_bit_struct, prob));
|
||||
DEFINE(vp8_extra_bit_struct_len, offsetof(vp8_extra_bit_struct, Len));
|
||||
DEFINE(vp8_extra_bit_struct_base_val, offsetof(vp8_extra_bit_struct, base_val));
|
||||
DEFINE(vp8_extra_bit_struct_tree, offsetof(vp8_extra_bit_struct, tree));
|
||||
DEFINE(vp8_extra_bit_struct_prob, offsetof(vp8_extra_bit_struct, prob));
|
||||
DEFINE(vp8_extra_bit_struct_len, offsetof(vp8_extra_bit_struct, Len));
|
||||
DEFINE(vp8_extra_bit_struct_base_val, offsetof(vp8_extra_bit_struct, base_val));
|
||||
|
||||
DEFINE(vp8_comp_tplist, offsetof(VP8_COMP, tplist));
|
||||
DEFINE(vp8_comp_common, offsetof(VP8_COMP, common));
|
||||
|
@ -62,12 +63,14 @@ DEFINE(tokenlist_start, offsetof(TOKENLIST, start));
|
|||
DEFINE(tokenlist_stop, offsetof(TOKENLIST, stop));
|
||||
DEFINE(TOKENLIST_SZ, sizeof(TOKENLIST));
|
||||
|
||||
DEFINE(vp8_common_mb_rows, offsetof(VP8_COMMON, mb_rows));
|
||||
DEFINE(vp8_common_mb_rows, offsetof(VP8_COMMON, mb_rows));
|
||||
|
||||
// These two sizes are used in vp7cx_pack_tokens. They are hard coded
|
||||
// so if the size changes this will have to be adjusted.
|
||||
// These two sizes are used in vp8cx_pack_tokens. They are hard coded
|
||||
// so if the size changes this will have to be adjusted.
|
||||
#if HAVE_ARMV5TE
|
||||
ct_assert(TOKENEXTRA_SZ, sizeof(TOKENEXTRA) == 8)
|
||||
ct_assert(vp8_extra_bit_struct_sz, sizeof(vp8_extra_bit_struct) == 16)
|
||||
#endif
|
||||
|
||||
//add asserts for any offset that is not supported by assembly code
|
||||
//add asserts for any size that is not supported by assembly code
|
|
@ -85,9 +85,6 @@ VP8_COMMON_SRCS-yes += common/swapyv12buffer.c
|
|||
VP8_COMMON_SRCS-yes += common/textblit.c
|
||||
VP8_COMMON_SRCS-yes += common/treecoder.c
|
||||
|
||||
# upcoming work to move this to CONFIG_OPTIMIZATIONS
|
||||
VP8_COMMON_SRCS-$(ARCH_ARM) += common/assembly_offsets.c
|
||||
|
||||
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/idct_x86.h
|
||||
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/subpixel_x86.h
|
||||
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/recon_x86.h
|
||||
|
@ -114,6 +111,7 @@ VP8_COMMON_SRCS-$(HAVE_MMX) += common/x86/postproc_mmx.asm
|
|||
VP8_COMMON_SRCS-$(HAVE_SSE2) += common/x86/postproc_sse2.asm
|
||||
endif
|
||||
|
||||
VP8_COMMON_SRCS-$(ARCH_ARM) += common/asm_com_offsets.c
|
||||
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/arm_systemdependent.c
|
||||
|
||||
# common (c)
|
||||
|
@ -163,17 +161,3 @@ VP8_COMMON_SRCS-$(HAVE_ARMV7) += common/arm/neon/recon16x16mb_neon$(ASM)
|
|||
VP8_COMMON_SRCS-$(HAVE_ARMV7) += common/arm/neon/buildintrapredictorsmby_neon$(ASM)
|
||||
VP8_COMMON_SRCS-$(HAVE_ARMV7) += common/arm/neon/save_neon_reg$(ASM)
|
||||
VP8_COMMON_SRCS-$(HAVE_ARMV7) += common/arm/neon/recon_neon.c
|
||||
|
||||
|
||||
#
|
||||
# Rule to extract assembly constants from C sources
|
||||
#
|
||||
# upcoming work to move this to CONFIG_OPTIMIZATIONS
|
||||
ifeq ($(ARCH_ARM),yes)
|
||||
assembly_offsets.asm: obj_int_extract
|
||||
assembly_offsets.asm: $(VP8_PREFIX)common/assembly_offsets.c.o
|
||||
./obj_int_extract rvds $< $(ADS2GAS) > $@
|
||||
OBJS-yes += $(VP8_PREFIX)common/assembly_offsets.c.o
|
||||
CLEAN-OBJS += assembly_offsets.asm
|
||||
$(filter %$(ASM).o,$(OBJS-yes)): assembly_offsets.asm
|
||||
endif
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#File list for arm
|
||||
# encoder
|
||||
VP8_CX_SRCS-$(ARCH_ARM) += encoder/arm/arm_csystemdependent.c
|
||||
VP8_CX_SRCS-$(ARCH_ARM) += encoder/asm_enc_offsets.c
|
||||
|
||||
VP8_CX_SRCS-$(HAVE_ARMV7) += encoder/arm/encodemb_arm.c
|
||||
VP8_CX_SRCS-$(HAVE_ARMV7) += encoder/arm/variance_arm.c
|
||||
|
@ -50,17 +51,3 @@ VP8_CX_SRCS-$(HAVE_ARMV7) += encoder/arm/neon/vp8_subpixelvariance16x16_neon$(A
|
|||
VP8_CX_SRCS-$(HAVE_ARMV7) += encoder/arm/neon/vp8_subpixelvariance16x16s_neon$(ASM)
|
||||
VP8_CX_SRCS-$(HAVE_ARMV7) += encoder/arm/neon/vp8_memcpy_neon$(ASM)
|
||||
VP8_CX_SRCS-$(HAVE_ARMV7) += encoder/arm/neon/vp8_shortwalsh4x4_neon$(ASM)
|
||||
|
||||
VP8_CX_SRCS-$(HAVE_ARMV7) += encoder/arm/vpx_vp8_enc_asm_offsets.c
|
||||
|
||||
#
|
||||
# Rule to extract assembly constants from C sources
|
||||
#
|
||||
ifeq ($(ARCH_ARM),yes)
|
||||
vpx_vp8_enc_asm_offsets.asm: obj_int_extract
|
||||
vpx_vp8_enc_asm_offsets.asm: $(VP8_PREFIX)encoder/arm/vpx_vp8_enc_asm_offsets.c.o
|
||||
./obj_int_extract rvds $< $(ADS2GAS) > $@
|
||||
OBJS-yes += $(VP8_PREFIX)encoder/arm/vpx_vp8_enc_asm_offsets.c.o
|
||||
CLEAN-OBJS += vpx_vp8_enc_asm_offsets.asm
|
||||
$(filter %$(ASM).o,$(OBJS-yes)): vpx_vp8_enc_asm_offsets.asm
|
||||
endif
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#VP8_DX_SRCS list is modified according to different platforms.
|
||||
|
||||
VP8_DX_SRCS-$(ARCH_ARM) += decoder/arm/arm_dsystemdependent.c
|
||||
VP8_CX_SRCS-$(ARCH_ARM) += decoder/asm_dec_offsets.c
|
||||
|
||||
VP8_DX_SRCS-$(HAVE_ARMV6) += decoder/arm/dequantize_arm.c
|
||||
VP8_DX_SRCS-$(CONFIG_ARM_ASM_DETOK) += decoder/arm/detokenize$(ASM)
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
REQUIRE8
|
||||
PRESERVE8
|
||||
|
||||
INCLUDE assembly_offsets.asm
|
||||
INCLUDE asm_com_offsets.asm
|
||||
|
||||
AREA ||.text||, CODE, READONLY, ALIGN=2
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
REQUIRE8
|
||||
PRESERVE8
|
||||
|
||||
INCLUDE assembly_offsets.asm
|
||||
INCLUDE asm_com_offsets.asm
|
||||
|
||||
AREA ||.text||, CODE, READONLY, ALIGN=2
|
||||
;void vpxyv12_copy_frame_yonly(YV12_BUFFER_CONFIG *src_ybc, YV12_BUFFER_CONFIG *dst_ybc);
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
REQUIRE8
|
||||
PRESERVE8
|
||||
|
||||
INCLUDE assembly_offsets.asm
|
||||
INCLUDE asm_com_offsets.asm
|
||||
|
||||
AREA ||.text||, CODE, READONLY, ALIGN=2
|
||||
;Note: This function is used to copy source data in src_buffer[i] at beginning of
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
REQUIRE8
|
||||
PRESERVE8
|
||||
|
||||
INCLUDE assembly_offsets.asm
|
||||
INCLUDE asm_com_offsets.asm
|
||||
|
||||
AREA ||.text||, CODE, READONLY, ALIGN=2
|
||||
;void vp8_yv12_extend_frame_borders_neon (YV12_BUFFER_CONFIG *ybf);
|
||||
|
|
Загрузка…
Ссылка в новой задаче