Begin to restrict x86inc.asm usage
Chromium does not support 32bit builds for Mac which use x86inc.asm. Make the files which include it work if 64bit or not PIC enabled starting with vp9_copy_sse2.asm Consolidate these targets in vp9_rtcd_defs.sh Change-Id: If18f0b957a611efd085a3ee7d245cf1eb91e8248
This commit is contained in:
Родитель
319867d71c
Коммит
c3809f3de5
|
@ -257,6 +257,7 @@ CONFIG_LIST="
|
||||||
install_bins
|
install_bins
|
||||||
install_libs
|
install_libs
|
||||||
install_srcs
|
install_srcs
|
||||||
|
force_x86inc
|
||||||
debug
|
debug
|
||||||
gprof
|
gprof
|
||||||
gcov
|
gcov
|
||||||
|
|
13
libs.mk
13
libs.mk
|
@ -57,6 +57,19 @@ CLEAN-OBJS += $$(BUILD_PFX)$(1).h
|
||||||
RTCD += $$(BUILD_PFX)$(1).h
|
RTCD += $$(BUILD_PFX)$(1).h
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
# x86inc.asm is not compatible with pic 32bit builds. Restrict
|
||||||
|
# files which use it to 64bit builds or 32bit without pic
|
||||||
|
USE_X86INC = no
|
||||||
|
ifneq ($(CONFIG_PIC),yes)
|
||||||
|
USE_X86INC = yes
|
||||||
|
endif
|
||||||
|
ifeq ($(ARCH_X86_64),yes)
|
||||||
|
USE_X86INC = yes
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_FORCE_X86INC),yes)
|
||||||
|
USE_X86INC = yes
|
||||||
|
endif
|
||||||
|
|
||||||
CODEC_SRCS-yes += CHANGELOG
|
CODEC_SRCS-yes += CHANGELOG
|
||||||
CODEC_SRCS-yes += libs.mk
|
CODEC_SRCS-yes += libs.mk
|
||||||
|
|
||||||
|
|
|
@ -527,9 +527,9 @@ INSTANTIATE_TEST_CASE_P(C, ConvolveTest, ::testing::Values(
|
||||||
|
|
||||||
#if HAVE_SSSE3
|
#if HAVE_SSSE3
|
||||||
const ConvolveFunctions convolve8_ssse3(
|
const ConvolveFunctions convolve8_ssse3(
|
||||||
vp9_convolve8_horiz_ssse3, vp9_convolve8_avg_horiz_c,
|
vp9_convolve8_horiz_ssse3, vp9_convolve8_avg_horiz_ssse3,
|
||||||
vp9_convolve8_vert_ssse3, vp9_convolve8_avg_vert_c,
|
vp9_convolve8_vert_ssse3, vp9_convolve8_avg_vert_ssse3,
|
||||||
vp9_convolve8_ssse3, vp9_convolve8_avg_c);
|
vp9_convolve8_ssse3, vp9_convolve8_avg_ssse3);
|
||||||
|
|
||||||
INSTANTIATE_TEST_CASE_P(SSSE3, ConvolveTest, ::testing::Values(
|
INSTANTIATE_TEST_CASE_P(SSSE3, ConvolveTest, ::testing::Values(
|
||||||
make_tuple(4, 4, &convolve8_ssse3),
|
make_tuple(4, 4, &convolve8_ssse3),
|
||||||
|
|
|
@ -20,7 +20,11 @@ EOF
|
||||||
}
|
}
|
||||||
forward_decls vp9_common_forward_decls
|
forward_decls vp9_common_forward_decls
|
||||||
|
|
||||||
[ $arch = "x86_64" ] && mmx_x86_64=mmx && sse2_x86_64=sse2
|
# x86inc.asm doesn't work if pic is enabled on 32 bit platforms so no assembly.
|
||||||
|
[ $arch = "x86_64" -o ! "$CONFIG_PIC" = "yes" -o $CONFIG_FORCE_X86INC == "yes"] && mmx_x86inc=mmx && sse2_x86inc=sse2 && ssse3_x86inc=ssse3
|
||||||
|
|
||||||
|
# this variable is for functions that are 64 bit only.
|
||||||
|
[ $arch = "x86_64" ] && mmx_x86_64=mmx && sse2_x86_64=sse2 && ssse3_x86_64=ssse3
|
||||||
|
|
||||||
#
|
#
|
||||||
# Dequant
|
# Dequant
|
||||||
|
@ -263,10 +267,10 @@ specialize vp9_blend_b
|
||||||
# Sub Pixel Filters
|
# Sub Pixel Filters
|
||||||
#
|
#
|
||||||
prototype void vp9_convolve_copy "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
|
prototype void vp9_convolve_copy "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
|
||||||
specialize vp9_convolve_copy sse2
|
specialize vp9_convolve_copy $sse2_x86inc
|
||||||
|
|
||||||
prototype void vp9_convolve_avg "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
|
prototype void vp9_convolve_avg "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
|
||||||
specialize vp9_convolve_avg sse2
|
specialize vp9_convolve_avg $sse2_x86inc
|
||||||
|
|
||||||
prototype void vp9_convolve8 "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
|
prototype void vp9_convolve8 "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
|
||||||
specialize vp9_convolve8 ssse3 neon
|
specialize vp9_convolve8 ssse3 neon
|
||||||
|
@ -702,8 +706,6 @@ specialize vp9_block_error sse2
|
||||||
prototype void vp9_subtract_block "int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride"
|
prototype void vp9_subtract_block "int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride"
|
||||||
specialize vp9_subtract_block sse2
|
specialize vp9_subtract_block sse2
|
||||||
|
|
||||||
[ $arch = "x86_64" ] && ssse3_x86_64=ssse3
|
|
||||||
|
|
||||||
prototype void vp9_quantize_b "int16_t *coeff_ptr, intptr_t n_coeffs, int skip_block, int16_t *zbin_ptr, int16_t *round_ptr, int16_t *quant_ptr, int16_t *quant_shift_ptr, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"
|
prototype void vp9_quantize_b "int16_t *coeff_ptr, intptr_t n_coeffs, int skip_block, int16_t *zbin_ptr, int16_t *round_ptr, int16_t *quant_ptr, int16_t *quant_shift_ptr, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"
|
||||||
specialize vp9_quantize_b $ssse3_x86_64
|
specialize vp9_quantize_b $ssse3_x86_64
|
||||||
|
|
||||||
|
@ -714,13 +716,11 @@ specialize vp9_quantize_b_32x32 $ssse3_x86_64
|
||||||
# Structured Similarity (SSIM)
|
# Structured Similarity (SSIM)
|
||||||
#
|
#
|
||||||
if [ "$CONFIG_INTERNAL_STATS" = "yes" ]; then
|
if [ "$CONFIG_INTERNAL_STATS" = "yes" ]; then
|
||||||
[ $arch = "x86_64" ] && sse2_on_x86_64=sse2
|
|
||||||
|
|
||||||
prototype void vp9_ssim_parms_8x8 "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"
|
prototype void vp9_ssim_parms_8x8 "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"
|
||||||
specialize vp9_ssim_parms_8x8 $sse2_on_x86_64
|
specialize vp9_ssim_parms_8x8 $sse2_x86_64
|
||||||
|
|
||||||
prototype void vp9_ssim_parms_16x16 "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"
|
prototype void vp9_ssim_parms_16x16 "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"
|
||||||
specialize vp9_ssim_parms_16x16 $sse2_on_x86_64
|
specialize vp9_ssim_parms_16x16 $sse2_x86_64
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# fdct functions
|
# fdct functions
|
||||||
|
|
|
@ -74,7 +74,6 @@ VP9_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/vp9_loopfilter_intrin_ss
|
||||||
VP9_COMMON_SRCS-$(CONFIG_POSTPROC) += common/vp9_postproc.h
|
VP9_COMMON_SRCS-$(CONFIG_POSTPROC) += common/vp9_postproc.h
|
||||||
VP9_COMMON_SRCS-$(CONFIG_POSTPROC) += common/vp9_postproc.c
|
VP9_COMMON_SRCS-$(CONFIG_POSTPROC) += common/vp9_postproc.c
|
||||||
VP9_COMMON_SRCS-$(HAVE_MMX) += common/x86/vp9_loopfilter_mmx.asm
|
VP9_COMMON_SRCS-$(HAVE_MMX) += common/x86/vp9_loopfilter_mmx.asm
|
||||||
VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_copy_sse2.asm
|
|
||||||
VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_intrapred_sse2.asm
|
VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_intrapred_sse2.asm
|
||||||
VP9_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/vp9_intrapred_ssse3.asm
|
VP9_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/vp9_intrapred_ssse3.asm
|
||||||
VP9_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/vp9_subpixel_8t_ssse3.asm
|
VP9_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/vp9_subpixel_8t_ssse3.asm
|
||||||
|
@ -83,6 +82,10 @@ VP9_COMMON_SRCS-$(HAVE_MMX) += common/x86/vp9_postproc_mmx.asm
|
||||||
VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_postproc_sse2.asm
|
VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_postproc_sse2.asm
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(USE_X86INC),yes)
|
||||||
|
VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_copy_sse2.asm
|
||||||
|
endif
|
||||||
|
|
||||||
VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_idct_intrin_sse2.c
|
VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_idct_intrin_sse2.c
|
||||||
|
|
||||||
VP9_COMMON_SRCS-$(HAVE_NEON) += common/arm/neon/vp9_convolve_neon.c
|
VP9_COMMON_SRCS-$(HAVE_NEON) += common/arm/neon/vp9_convolve_neon.c
|
||||||
|
|
Загрузка…
Ссылка в новой задаче