Merge "Disconnect ARM tgt_isa from dsp extensions"
This commit is contained in:
		@@ -671,10 +671,22 @@ process_common_toolchain() {
 | 
			
		||||
    case ${toolchain} in
 | 
			
		||||
    arm*)
 | 
			
		||||
        # on arm, isa versions are supersets
 | 
			
		||||
        enabled armv7a && soft_enable armv7 ### DEBUG
 | 
			
		||||
        enabled armv7 && soft_enable armv6
 | 
			
		||||
        enabled armv7 || enabled armv6 && soft_enable armv5te
 | 
			
		||||
        enabled armv7 || enabled armv6 && soft_enable fast_unaligned
 | 
			
		||||
        case ${tgt_isa} in
 | 
			
		||||
        armv7)
 | 
			
		||||
            soft_enable neon
 | 
			
		||||
            soft_enable media
 | 
			
		||||
            soft_enable edsp
 | 
			
		||||
            soft_enable fast_unaligned
 | 
			
		||||
            ;;
 | 
			
		||||
        armv6)
 | 
			
		||||
            soft_enable media
 | 
			
		||||
            soft_enable edsp
 | 
			
		||||
            soft_enable fast_unaligned
 | 
			
		||||
            ;;
 | 
			
		||||
        armv5te)
 | 
			
		||||
            soft_enable edsp
 | 
			
		||||
            ;;
 | 
			
		||||
        esac
 | 
			
		||||
 | 
			
		||||
        asm_conversion_cmd="cat"
 | 
			
		||||
 | 
			
		||||
@@ -687,10 +699,14 @@ process_common_toolchain() {
 | 
			
		||||
            arch_int=${arch_int%%te}
 | 
			
		||||
            check_add_asflags --defsym ARCHITECTURE=${arch_int}
 | 
			
		||||
            tune_cflags="-mtune="
 | 
			
		||||
            if enabled armv7
 | 
			
		||||
            then
 | 
			
		||||
                check_add_cflags -march=armv7-a -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp  #-ftree-vectorize
 | 
			
		||||
                check_add_asflags -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp  #-march=armv7-a
 | 
			
		||||
            if [ ${tgt_isa} == "armv7" ]; then
 | 
			
		||||
                if enabled neon
 | 
			
		||||
                then
 | 
			
		||||
                    check_add_cflags -mfpu=neon #-ftree-vectorize
 | 
			
		||||
                    check_add_asflags -mfpu=neon
 | 
			
		||||
                fi
 | 
			
		||||
                check_add_cflags -march=armv7-a -mcpu=cortex-a8 -mfloat-abi=softfp
 | 
			
		||||
                check_add_asflags -mcpu=cortex-a8 -mfloat-abi=softfp  #-march=armv7-a
 | 
			
		||||
            else
 | 
			
		||||
                check_add_cflags -march=${tgt_isa}
 | 
			
		||||
                check_add_asflags -march=${tgt_isa}
 | 
			
		||||
@@ -708,10 +724,14 @@ process_common_toolchain() {
 | 
			
		||||
            tune_cflags="--cpu="
 | 
			
		||||
            tune_asflags="--cpu="
 | 
			
		||||
            if [ -z "${tune_cpu}" ]; then
 | 
			
		||||
            if enabled armv7
 | 
			
		||||
                then
 | 
			
		||||
                    check_add_cflags --cpu=Cortex-A8 --fpu=softvfp+vfpv3
 | 
			
		||||
                    check_add_asflags --cpu=Cortex-A8 --fpu=softvfp+vfpv3
 | 
			
		||||
                if [ ${tgt_isa} == "armv7" ]; then
 | 
			
		||||
                    if enabled neon
 | 
			
		||||
                    then
 | 
			
		||||
                        check_add_cflags --fpu=softvfp+vfpv3
 | 
			
		||||
                        check_add_asflags --fpu=softvfp+vfpv3
 | 
			
		||||
                    fi
 | 
			
		||||
                    check_add_cflags --cpu=Cortex-A8
 | 
			
		||||
                    check_add_asflags --cpu=Cortex-A8
 | 
			
		||||
                else
 | 
			
		||||
                    check_add_cflags --cpu=${tgt_isa##armv}
 | 
			
		||||
                    check_add_asflags --cpu=${tgt_isa##armv}
 | 
			
		||||
@@ -759,8 +779,7 @@ process_common_toolchain() {
 | 
			
		||||
 | 
			
		||||
            enable pic
 | 
			
		||||
            soft_enable realtime_only
 | 
			
		||||
            if enabled armv7
 | 
			
		||||
            then
 | 
			
		||||
            if [ ${tgt_isa} == "armv7" ]; then
 | 
			
		||||
                enable runtime_cpu_detect
 | 
			
		||||
            fi
 | 
			
		||||
          ;;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@@ -192,9 +192,9 @@ ARCH_LIST="
 | 
			
		||||
    ppc64
 | 
			
		||||
"
 | 
			
		||||
ARCH_EXT_LIST="
 | 
			
		||||
    armv5te
 | 
			
		||||
    armv6
 | 
			
		||||
    armv7
 | 
			
		||||
    edsp
 | 
			
		||||
    media
 | 
			
		||||
    neon
 | 
			
		||||
 | 
			
		||||
    mips32
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -26,13 +26,13 @@ void vp8_arch_arm_common_init(VP8_COMMON *ctx)
 | 
			
		||||
    rtcd->flags = flags;
 | 
			
		||||
 | 
			
		||||
    /* Override default functions with fastest ones for this CPU. */
 | 
			
		||||
#if HAVE_ARMV5TE
 | 
			
		||||
#if HAVE_EDSP
 | 
			
		||||
    if (flags & HAS_EDSP)
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
    if (flags & HAS_MEDIA)
 | 
			
		||||
    {
 | 
			
		||||
        rtcd->subpix.sixtap16x16   = vp8_sixtap_predict16x16_armv6;
 | 
			
		||||
@@ -71,7 +71,7 @@ void vp8_arch_arm_common_init(VP8_COMMON *ctx)
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
    if (flags & HAS_NEON)
 | 
			
		||||
    {
 | 
			
		||||
        rtcd->subpix.sixtap16x16   = vp8_sixtap_predict16x16_neon;
 | 
			
		||||
 
 | 
			
		||||
@@ -13,15 +13,15 @@
 | 
			
		||||
#include "vp8/common/dequantize.h"
 | 
			
		||||
#include "vp8/common/idct.h"
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
extern void vp8_dequantize_b_loop_neon(short *Q, short *DQC, short *DQ);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
extern void vp8_dequantize_b_loop_v6(short *Q, short *DQC, short *DQ);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
 | 
			
		||||
void vp8_dequantize_b_neon(BLOCKD *d, short *DQC)
 | 
			
		||||
{
 | 
			
		||||
@@ -32,7 +32,7 @@ void vp8_dequantize_b_neon(BLOCKD *d, short *DQC)
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
void vp8_dequantize_b_v6(BLOCKD *d, short *DQC)
 | 
			
		||||
{
 | 
			
		||||
    short *DQ  = d->dqcoeff;
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
#ifndef DEQUANTIZE_ARM_H
 | 
			
		||||
#define DEQUANTIZE_ARM_H
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
extern prototype_dequant_block(vp8_dequantize_b_v6);
 | 
			
		||||
extern prototype_dequant_idct_add(vp8_dequant_idct_add_v6);
 | 
			
		||||
extern prototype_dequant_idct_add_y_block(vp8_dequant_idct_add_y_block_v6);
 | 
			
		||||
@@ -33,7 +33,7 @@ extern prototype_dequant_idct_add_uv_block(vp8_dequant_idct_add_uv_block_v6);
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
extern prototype_dequant_block(vp8_dequantize_b_neon);
 | 
			
		||||
extern prototype_dequant_idct_add(vp8_dequant_idct_add_neon);
 | 
			
		||||
extern prototype_dequant_idct_add_y_block(vp8_dequant_idct_add_y_block_neon);
 | 
			
		||||
 
 | 
			
		||||
@@ -86,7 +86,7 @@ extern void vp8_filter_block2d_second_pass_only_armv6
 | 
			
		||||
    const short *vp8_filter
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
void vp8_sixtap_predict_armv6
 | 
			
		||||
(
 | 
			
		||||
    unsigned char  *src_ptr,
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
#ifndef IDCT_ARM_H
 | 
			
		||||
#define IDCT_ARM_H
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
extern prototype_idct(vp8_short_idct4x4llm_v6_dual);
 | 
			
		||||
extern prototype_idct_scalar_add(vp8_dc_only_idct_add_v6);
 | 
			
		||||
extern prototype_second_order(vp8_short_inv_walsh4x4_1_v6);
 | 
			
		||||
@@ -30,7 +30,7 @@ extern prototype_second_order(vp8_short_inv_walsh4x4_v6);
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
extern prototype_idct(vp8_short_idct4x4llm_neon);
 | 
			
		||||
extern prototype_idct_scalar_add(vp8_dc_only_idct_add_neon);
 | 
			
		||||
extern prototype_second_order(vp8_short_inv_walsh4x4_1_neon);
 | 
			
		||||
 
 | 
			
		||||
@@ -13,14 +13,14 @@
 | 
			
		||||
#include "vp8/common/loopfilter.h"
 | 
			
		||||
#include "vp8/common/onyxc_int.h"
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
extern prototype_loopfilter(vp8_loop_filter_horizontal_edge_armv6);
 | 
			
		||||
extern prototype_loopfilter(vp8_loop_filter_vertical_edge_armv6);
 | 
			
		||||
extern prototype_loopfilter(vp8_mbloop_filter_horizontal_edge_armv6);
 | 
			
		||||
extern prototype_loopfilter(vp8_mbloop_filter_vertical_edge_armv6);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
typedef void loopfilter_y_neon(unsigned char *src, int pitch,
 | 
			
		||||
        unsigned char blimit, unsigned char limit, unsigned char thresh);
 | 
			
		||||
typedef void loopfilter_uv_neon(unsigned char *u, int pitch,
 | 
			
		||||
@@ -38,8 +38,8 @@ extern loopfilter_uv_neon vp8_mbloop_filter_horizontal_edge_uv_neon;
 | 
			
		||||
extern loopfilter_uv_neon vp8_mbloop_filter_vertical_edge_uv_neon;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
/*ARMV6 loopfilter functions*/
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
/* ARMV6/MEDIA loopfilter functions*/
 | 
			
		||||
/* Horizontal MB filtering */
 | 
			
		||||
void vp8_loop_filter_mbh_armv6(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
 | 
			
		||||
                               int y_stride, int uv_stride, loop_filter_info *lfi)
 | 
			
		||||
@@ -113,7 +113,7 @@ void vp8_loop_filter_bvs_armv6(unsigned char *y_ptr, int y_stride,
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
/* NEON loopfilter functions */
 | 
			
		||||
/* Horizontal MB filtering */
 | 
			
		||||
void vp8_loop_filter_mbh_neon(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr,
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
 | 
			
		||||
#include "vpx_config.h"
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
extern prototype_loopfilter_block(vp8_loop_filter_mbv_armv6);
 | 
			
		||||
extern prototype_loopfilter_block(vp8_loop_filter_bv_armv6);
 | 
			
		||||
extern prototype_loopfilter_block(vp8_loop_filter_mbh_armv6);
 | 
			
		||||
@@ -50,9 +50,9 @@ extern prototype_simple_loopfilter(vp8_loop_filter_simple_vertical_edge_armv6);
 | 
			
		||||
#define vp8_lf_simple_b_h vp8_loop_filter_bhs_armv6
 | 
			
		||||
#endif /* !CONFIG_RUNTIME_CPU_DETECT */
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_ARMV6 */
 | 
			
		||||
#endif /* HAVE_MEDIA */
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
extern prototype_loopfilter_block(vp8_loop_filter_mbv_neon);
 | 
			
		||||
extern prototype_loopfilter_block(vp8_loop_filter_bv_neon);
 | 
			
		||||
extern prototype_loopfilter_block(vp8_loop_filter_mbh_neon);
 | 
			
		||||
@@ -88,6 +88,6 @@ extern prototype_simple_loopfilter(vp8_loop_filter_bhs_neon);
 | 
			
		||||
#define vp8_lf_simple_b_h vp8_loop_filter_bhs_neon
 | 
			
		||||
#endif /* !CONFIG_RUNTIME_CPU_DETECT */
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_ARMV7 */
 | 
			
		||||
#endif /* HAVE_NEON */
 | 
			
		||||
 | 
			
		||||
#endif /* LOOPFILTER_ARM_H */
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
#ifndef RECON_ARM_H
 | 
			
		||||
#define RECON_ARM_H
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
 | 
			
		||||
extern prototype_copy_block(vp8_copy_mem8x8_v6);
 | 
			
		||||
extern prototype_copy_block(vp8_copy_mem8x4_v6);
 | 
			
		||||
@@ -34,7 +34,7 @@ extern prototype_intra4x4_predict(vp8_intra4x4_predict_armv6);
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
 | 
			
		||||
extern prototype_copy_block(vp8_copy_mem8x8_neon);
 | 
			
		||||
extern prototype_copy_block(vp8_copy_mem8x4_neon);
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@
 | 
			
		||||
#include "vpx_mem/vpx_mem.h"
 | 
			
		||||
#include "vp8/common/recon.h"
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
extern void vp8_build_intra_predictors_mby_neon_func(
 | 
			
		||||
    unsigned char *y_buffer,
 | 
			
		||||
    unsigned char *ypred_ptr,
 | 
			
		||||
@@ -35,10 +35,7 @@ void vp8_build_intra_predictors_mby_neon(MACROBLOCKD *x)
 | 
			
		||||
 | 
			
		||||
    vp8_build_intra_predictors_mby_neon_func(y_buffer, ypred_ptr, y_stride, mode, Up, Left);
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
extern void vp8_build_intra_predictors_mby_s_neon_func(
 | 
			
		||||
    unsigned char *y_buffer,
 | 
			
		||||
    unsigned char *ypred_ptr,
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
#ifndef SUBPIXEL_ARM_H
 | 
			
		||||
#define SUBPIXEL_ARM_H
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
extern prototype_subpixel_predict(vp8_sixtap_predict16x16_armv6);
 | 
			
		||||
extern prototype_subpixel_predict(vp8_sixtap_predict8x8_armv6);
 | 
			
		||||
extern prototype_subpixel_predict(vp8_sixtap_predict8x4_armv6);
 | 
			
		||||
@@ -49,7 +49,7 @@ extern prototype_subpixel_predict(vp8_bilinear_predict4x4_armv6);
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
extern prototype_subpixel_predict(vp8_sixtap_predict16x16_neon);
 | 
			
		||||
extern prototype_subpixel_predict(vp8_sixtap_predict8x8_neon);
 | 
			
		||||
extern prototype_subpixel_predict(vp8_sixtap_predict8x4_neon);
 | 
			
		||||
 
 | 
			
		||||
@@ -35,7 +35,7 @@ END
 | 
			
		||||
/* add asserts for any offset that is not supported by assembly code */
 | 
			
		||||
/* add asserts for any size that is not supported by assembly code */
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
/* switch case in vp8_intra4x4_predict_armv6 is based on these enumerated values */
 | 
			
		||||
ct_assert(B_DC_PRED, B_DC_PRED == 0);
 | 
			
		||||
ct_assert(B_TM_PRED, B_TM_PRED == 1);
 | 
			
		||||
@@ -49,7 +49,7 @@ ct_assert(B_HD_PRED, B_HD_PRED == 8);
 | 
			
		||||
ct_assert(B_HU_PRED, B_HU_PRED == 9);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
/* vp8_yv12_extend_frame_borders_neon makes several assumptions based on this */
 | 
			
		||||
ct_assert(VP8BORDERINPIXELS_VAL, VP8BORDERINPIXELS == 32)
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -18,19 +18,19 @@ void vp8_arch_arm_decode_init(VP8D_COMP *pbi)
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
    int flags = pbi->common.rtcd.flags;
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV5TE
 | 
			
		||||
#if HAVE_EDSP
 | 
			
		||||
    if (flags & HAS_EDSP)
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
    if (flags & HAS_MEDIA)
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
    if (flags & HAS_NEON)
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -211,7 +211,7 @@ vpx_codec_err_t vp8dx_set_reference(VP8D_COMP *pbi, VP8_REFFRAME ref_frame_flag,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*For ARM NEON, d8-d15 are callee-saved registers, and need to be saved by us.*/
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
extern void vp8_push_neon(int64_t *store);
 | 
			
		||||
extern void vp8_pop_neon(int64_t *store);
 | 
			
		||||
#endif
 | 
			
		||||
@@ -298,7 +298,7 @@ static int swap_frame_buffers (VP8_COMMON *cm)
 | 
			
		||||
 | 
			
		||||
int vp8dx_receive_compressed_data(VP8D_COMP *pbi, unsigned long size, const unsigned char *source, int64_t time_stamp)
 | 
			
		||||
{
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
    int64_t dx_store_reg[8];
 | 
			
		||||
#endif
 | 
			
		||||
    VP8_COMMON *cm = &pbi->common;
 | 
			
		||||
@@ -387,7 +387,7 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, unsigned long size, const unsi
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
    if (cm->rtcd.flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
@@ -400,7 +400,7 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, unsigned long size, const unsi
 | 
			
		||||
 | 
			
		||||
    if (setjmp(pbi->common.error.jmp))
 | 
			
		||||
    {
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
        if (cm->rtcd.flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
@@ -429,7 +429,7 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, unsigned long size, const unsi
 | 
			
		||||
 | 
			
		||||
    if (retcode < 0)
 | 
			
		||||
    {
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
        if (cm->rtcd.flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
@@ -450,7 +450,7 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, unsigned long size, const unsi
 | 
			
		||||
    {
 | 
			
		||||
        if (swap_frame_buffers (cm))
 | 
			
		||||
        {
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
            if (cm->rtcd.flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
@@ -468,7 +468,7 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, unsigned long size, const unsi
 | 
			
		||||
    {
 | 
			
		||||
        if (swap_frame_buffers (cm))
 | 
			
		||||
        {
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
            if (cm->rtcd.flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
@@ -558,7 +558,7 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, unsigned long size, const unsi
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
    if (cm->rtcd.flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -23,13 +23,13 @@ void vp8_arch_arm_encoder_init(VP8_COMP *cpi)
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
    int flags = cpi->common.rtcd.flags;
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV5TE
 | 
			
		||||
#if HAVE_EDSP
 | 
			
		||||
    if (flags & HAS_EDSP)
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
    if (flags & HAS_MEDIA)
 | 
			
		||||
    {
 | 
			
		||||
        cpi->rtcd.variance.sad16x16              = vp8_sad16x16_armv6;
 | 
			
		||||
@@ -74,9 +74,9 @@ void vp8_arch_arm_encoder_init(VP8_COMP *cpi)
 | 
			
		||||
        /*cpi->rtcd.quantize.quantb                = vp8_regular_quantize_b;*/
 | 
			
		||||
        cpi->rtcd.quantize.fastquantb            = vp8_fast_quantize_b_armv6;
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* HAVE_MEDIA */
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
    if (flags & HAS_NEON)
 | 
			
		||||
    {
 | 
			
		||||
        cpi->rtcd.variance.sad16x16              = vp8_sad16x16_neon;
 | 
			
		||||
@@ -123,10 +123,10 @@ void vp8_arch_arm_encoder_init(VP8_COMP *cpi)
 | 
			
		||||
        cpi->rtcd.quantize.fastquantb            = vp8_fast_quantize_b_neon;
 | 
			
		||||
        cpi->rtcd.quantize.fastquantb_pair       = vp8_fast_quantize_b_pair_neon;
 | 
			
		||||
    }
 | 
			
		||||
#endif /* HAVE_ARMV7 */
 | 
			
		||||
#endif /* HAVE_NEON */
 | 
			
		||||
#endif /* CONFIG_RUNTIME_CPU_DETECT */
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
    if (flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@
 | 
			
		||||
#include "vpx_config.h"
 | 
			
		||||
#include "vp8/encoder/dct.h"
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
 | 
			
		||||
void vp8_short_fdct8x4_armv6(short *input, short *output, int pitch)
 | 
			
		||||
{
 | 
			
		||||
@@ -19,4 +19,4 @@ void vp8_short_fdct8x4_armv6(short *input, short *output, int pitch)
 | 
			
		||||
    vp8_short_fdct4x4_armv6(input + 4, output + 16, pitch);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_ARMV6 */
 | 
			
		||||
#endif /* HAVE_MEDIA */
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
#ifndef DCT_ARM_H
 | 
			
		||||
#define DCT_ARM_H
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
extern prototype_fdct(vp8_short_walsh4x4_armv6);
 | 
			
		||||
extern prototype_fdct(vp8_short_fdct4x4_armv6);
 | 
			
		||||
extern prototype_fdct(vp8_short_fdct8x4_armv6);
 | 
			
		||||
@@ -34,9 +34,9 @@ extern prototype_fdct(vp8_short_fdct8x4_armv6);
 | 
			
		||||
#define vp8_fdct_fast8x4 vp8_short_fdct8x4_armv6
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_ARMV6 */
 | 
			
		||||
#endif /* HAVE_MEDIA */
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
extern prototype_fdct(vp8_short_fdct4x4_neon);
 | 
			
		||||
extern prototype_fdct(vp8_short_fdct8x4_neon);
 | 
			
		||||
extern prototype_fdct(vp8_fast_fdct4x4_neon);
 | 
			
		||||
@@ -60,6 +60,6 @@ extern prototype_fdct(vp8_short_walsh4x4_neon);
 | 
			
		||||
#define vp8_fdct_walsh_short4x4 vp8_short_walsh4x4_neon
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* HAVE_NEON */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
#ifndef ENCODEMB_ARM_H
 | 
			
		||||
#define ENCODEMB_ARM_H
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
extern prototype_subb(vp8_subtract_b_armv6);
 | 
			
		||||
extern prototype_submby(vp8_subtract_mby_armv6);
 | 
			
		||||
extern prototype_submbuv(vp8_subtract_mbuv_armv6);
 | 
			
		||||
@@ -28,9 +28,9 @@ extern prototype_submbuv(vp8_subtract_mbuv_armv6);
 | 
			
		||||
#define vp8_encodemb_submbuv vp8_subtract_mbuv_armv6
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_ARMV6 */
 | 
			
		||||
#endif /* HAVE_MEDIA */
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
//extern prototype_berr(vp8_block_error_c);
 | 
			
		||||
//extern prototype_mberr(vp8_mbblock_error_c);
 | 
			
		||||
//extern prototype_mbuverr(vp8_mbuverror_c);
 | 
			
		||||
@@ -59,6 +59,6 @@ extern prototype_submbuv(vp8_subtract_mbuv_neon);
 | 
			
		||||
#define vp8_encodemb_submbuv vp8_subtract_mbuv_neon
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* HAVE_NEON */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
#include "vp8/common/entropy.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
 | 
			
		||||
/* vp8_quantize_mbX functions here differs from corresponding ones in
 | 
			
		||||
 * quantize.c only by using quantize_b_pair function pointer instead of
 | 
			
		||||
@@ -59,4 +59,4 @@ void vp8_quantize_mbuv_neon(MACROBLOCK *x)
 | 
			
		||||
                           &x->e_mbd.block[i], &x->e_mbd.block[i+1]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_ARMV7 */
 | 
			
		||||
#endif /* HAVE_NEON */
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
#ifndef QUANTIZE_ARM_H
 | 
			
		||||
#define QUANTIZE_ARM_H
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
 | 
			
		||||
extern prototype_quantize_block(vp8_fast_quantize_b_armv6);
 | 
			
		||||
 | 
			
		||||
@@ -21,10 +21,10 @@ extern prototype_quantize_block(vp8_fast_quantize_b_armv6);
 | 
			
		||||
#define vp8_quantize_fastquantb vp8_fast_quantize_b_armv6
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_ARMV6 */
 | 
			
		||||
#endif /* HAVE_MEDIA */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
 | 
			
		||||
extern prototype_quantize_block(vp8_fast_quantize_b_neon);
 | 
			
		||||
extern prototype_quantize_block_pair(vp8_fast_quantize_b_pair_neon);
 | 
			
		||||
@@ -46,7 +46,7 @@ extern prototype_quantize_block_pair(vp8_fast_quantize_b_pair_neon);
 | 
			
		||||
#define vp8_quantize_mby vp8_quantize_mby_neon
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_ARMV7 */
 | 
			
		||||
#endif /* HAVE_NEON */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
#include "vp8/encoder/variance.h"
 | 
			
		||||
#include "vp8/common/filter.h"
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
#include "vp8/common/arm/bilinearfilter_arm.h"
 | 
			
		||||
 | 
			
		||||
unsigned int vp8_sub_pixel_variance8x8_armv6
 | 
			
		||||
@@ -91,10 +91,10 @@ unsigned int vp8_sub_pixel_variance16x16_armv6
 | 
			
		||||
    return var;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_ARMV6 */
 | 
			
		||||
#endif /* HAVE_MEDIA */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
 | 
			
		||||
unsigned int vp8_sub_pixel_variance16x16_neon
 | 
			
		||||
(
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
#ifndef VARIANCE_ARM_H
 | 
			
		||||
#define VARIANCE_ARM_H
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV6
 | 
			
		||||
#if HAVE_MEDIA
 | 
			
		||||
 | 
			
		||||
extern prototype_sad(vp8_sad16x16_armv6);
 | 
			
		||||
extern prototype_variance(vp8_variance16x16_armv6);
 | 
			
		||||
@@ -55,10 +55,10 @@ extern prototype_variance(vp8_mse16x16_armv6);
 | 
			
		||||
 | 
			
		||||
#endif /* !CONFIG_RUNTIME_CPU_DETECT */
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_ARMV6 */
 | 
			
		||||
#endif /* HAVE_MEDIA */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
extern prototype_sad(vp8_sad4x4_neon);
 | 
			
		||||
extern prototype_sad(vp8_sad8x8_neon);
 | 
			
		||||
extern prototype_sad(vp8_sad8x16_neon);
 | 
			
		||||
@@ -148,8 +148,8 @@ extern prototype_get16x16prederror(vp8_get4x4sse_cs_neon);
 | 
			
		||||
 | 
			
		||||
#undef  vp8_variance_get4x4sse_cs
 | 
			
		||||
#define vp8_variance_get4x4sse_cs vp8_get4x4sse_cs_neon
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
#endif  /* !CONFIG_RUNTIME_CPU_DETECT */
 | 
			
		||||
 | 
			
		||||
#endif  /* HAVE_NEON */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -88,7 +88,7 @@ END
 | 
			
		||||
 * change they will have to be adjusted.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV5TE
 | 
			
		||||
#if HAVE_EDSP
 | 
			
		||||
ct_assert(TOKENEXTRA_SZ, sizeof(TOKENEXTRA) == 8)
 | 
			
		||||
ct_assert(vp8_extra_bit_struct_sz, sizeof(vp8_extra_bit_struct) == 16)
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
#ifndef __INC_BITSTREAM_H
 | 
			
		||||
#define __INC_BITSTREAM_H
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV5TE
 | 
			
		||||
#if HAVE_EDSP
 | 
			
		||||
void vp8cx_pack_tokens_armv5(vp8_writer *w, const TOKENEXTRA *p, int xcount,
 | 
			
		||||
                             vp8_token *,
 | 
			
		||||
                             vp8_extra_bit_struct *,
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,7 @@ extern unsigned int vp8_get_processor_freq();
 | 
			
		||||
extern void print_tree_update_probs();
 | 
			
		||||
extern void vp8cx_create_encoder_threads(VP8_COMP *cpi);
 | 
			
		||||
extern void vp8cx_remove_encoder_threads(VP8_COMP *cpi);
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
extern void vp8_yv12_copy_frame_func_neon(YV12_BUFFER_CONFIG *src_ybc, YV12_BUFFER_CONFIG *dst_ybc);
 | 
			
		||||
extern void vp8_yv12_copy_src_frame_func_neon(YV12_BUFFER_CONFIG *src_ybc, YV12_BUFFER_CONFIG *dst_ybc);
 | 
			
		||||
#endif
 | 
			
		||||
@@ -4567,7 +4567,7 @@ static void Pass2Encode(VP8_COMP *cpi, unsigned long *size, unsigned char *dest,
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//For ARM NEON, d8-d15 are callee-saved registers, and need to be saved by us.
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
extern void vp8_push_neon(int64_t *store);
 | 
			
		||||
extern void vp8_pop_neon(int64_t *store);
 | 
			
		||||
#endif
 | 
			
		||||
@@ -4575,14 +4575,14 @@ extern void vp8_pop_neon(int64_t *store);
 | 
			
		||||
 | 
			
		||||
int vp8_receive_raw_frame(VP8_COMP *cpi, unsigned int frame_flags, YV12_BUFFER_CONFIG *sd, int64_t time_stamp, int64_t end_time)
 | 
			
		||||
{
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
    int64_t store_reg[8];
 | 
			
		||||
#endif
 | 
			
		||||
    VP8_COMMON            *cm = &cpi->common;
 | 
			
		||||
    struct vpx_usec_timer  timer;
 | 
			
		||||
    int                    res = 0;
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
    if (cm->rtcd.flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
@@ -4599,7 +4599,7 @@ int vp8_receive_raw_frame(VP8_COMP *cpi, unsigned int frame_flags, YV12_BUFFER_C
 | 
			
		||||
    vpx_usec_timer_mark(&timer);
 | 
			
		||||
    cpi->time_receive_data += vpx_usec_timer_elapsed(&timer);
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
    if (cm->rtcd.flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
@@ -4628,7 +4628,7 @@ static int frame_is_reference(const VP8_COMP *cpi)
 | 
			
		||||
 | 
			
		||||
int vp8_get_compressed_data(VP8_COMP *cpi, unsigned int *frame_flags, unsigned long *size, unsigned char *dest, unsigned char *dest_end, int64_t *time_stamp, int64_t *time_end, int flush)
 | 
			
		||||
{
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
    int64_t store_reg[8];
 | 
			
		||||
#endif
 | 
			
		||||
    VP8_COMMON *cm;
 | 
			
		||||
@@ -4650,7 +4650,7 @@ int vp8_get_compressed_data(VP8_COMP *cpi, unsigned int *frame_flags, unsigned l
 | 
			
		||||
 | 
			
		||||
    cpi->common.error.setjmp = 1;
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
    if (cm->rtcd.flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
@@ -4725,7 +4725,7 @@ int vp8_get_compressed_data(VP8_COMP *cpi, unsigned int *frame_flags, unsigned l
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
        if (cm->rtcd.flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
@@ -5114,7 +5114,7 @@ int vp8_get_compressed_data(VP8_COMP *cpi, unsigned int *frame_flags, unsigned l
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
    if (cm->rtcd.flags & HAS_NEON)
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -122,48 +122,48 @@ VP8_COMMON_SRCS-$(ARCH_ARM)  += common/arm/subpixel_arm.h
 | 
			
		||||
VP8_COMMON_SRCS-$(ARCH_ARM)  += common/arm/dequantize_arm.c
 | 
			
		||||
VP8_COMMON_SRCS-$(ARCH_ARM)  += common/arm/dequantize_arm.h
 | 
			
		||||
 | 
			
		||||
# common (armv6)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/bilinearfilter_arm.c
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/bilinearfilter_arm.h
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/bilinearfilter_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/copymem8x4_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/copymem8x8_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/copymem16x16_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/dc_only_idct_add_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/iwalsh_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/filter_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/idct_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/loopfilter_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/simpleloopfilter_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/sixtappredict8x4_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/intra4x4_predict_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/dequant_idct_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/dequantize_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV6)  += common/arm/armv6/idct_blk_v6.c
 | 
			
		||||
# common (media)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/bilinearfilter_arm.c
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/bilinearfilter_arm.h
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/bilinearfilter_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/copymem8x4_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/copymem8x8_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/copymem16x16_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/dc_only_idct_add_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/iwalsh_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/filter_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/idct_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/loopfilter_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/simpleloopfilter_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/sixtappredict8x4_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/intra4x4_predict_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/dequant_idct_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/dequantize_v6$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_MEDIA)  += common/arm/armv6/idct_blk_v6.c
 | 
			
		||||
 | 
			
		||||
# common (neon)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/bilinearpredict4x4_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/bilinearpredict8x4_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/bilinearpredict8x8_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/bilinearpredict16x16_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/copymem8x4_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/copymem8x8_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/copymem16x16_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/dc_only_idct_add_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/iwalsh_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/loopfilter_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/loopfiltersimplehorizontaledge_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/loopfiltersimpleverticaledge_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/mbloopfilter_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/shortidct4x4llm_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/sixtappredict4x4_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/sixtappredict8x4_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/sixtappredict8x8_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/sixtappredict16x16_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/dequant_idct_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/idct_dequant_full_2x_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/idct_dequant_0_2x_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/dequantizeb_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_ARMV7)  += common/arm/neon/idct_blk_neon.c
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/bilinearpredict4x4_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/bilinearpredict8x4_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/bilinearpredict8x8_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/bilinearpredict16x16_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/copymem8x4_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/copymem8x8_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/copymem16x16_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/dc_only_idct_add_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/iwalsh_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/loopfilter_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/loopfiltersimplehorizontaledge_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/loopfiltersimpleverticaledge_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/mbloopfilter_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/shortidct4x4llm_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/sixtappredict4x4_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/sixtappredict8x4_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/sixtappredict8x8_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/sixtappredict16x16_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/buildintrapredictorsmby_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/save_neon_reg$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/dequant_idct_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/idct_dequant_full_2x_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/idct_dequant_0_2x_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/dequantizeb_neon$(ASM)
 | 
			
		||||
VP8_COMMON_SRCS-$(HAVE_NEON)  += common/arm/neon/idct_blk_neon.c
 | 
			
		||||
 
 | 
			
		||||
@@ -23,41 +23,41 @@ VP8_CX_SRCS-$(ARCH_ARM)  += encoder/arm/quantize_arm.h
 | 
			
		||||
VP8_CX_SRCS-$(ARCH_ARM)  += encoder/arm/variance_arm.c
 | 
			
		||||
VP8_CX_SRCS-$(ARCH_ARM)  += encoder/arm/variance_arm.h
 | 
			
		||||
 | 
			
		||||
#File list for armv5te
 | 
			
		||||
#File list for edsp
 | 
			
		||||
# encoder
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV5TE) += encoder/arm/boolhuff_arm.c
 | 
			
		||||
VP8_CX_SRCS_REMOVE-$(HAVE_ARMV5TE)  += encoder/boolhuff.c
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV5TE)  += encoder/arm/armv5te/boolhuff_armv5te$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV5TE)  += encoder/arm/armv5te/vp8_packtokens_armv5$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV5TE)  += encoder/arm/armv5te/vp8_packtokens_mbrow_armv5$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV5TE)  += encoder/arm/armv5te/vp8_packtokens_partitions_armv5$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_EDSP) += encoder/arm/boolhuff_arm.c
 | 
			
		||||
VP8_CX_SRCS_REMOVE-$(HAVE_EDSP)  += encoder/boolhuff.c
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_EDSP)  += encoder/arm/armv5te/boolhuff_armv5te$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_EDSP)  += encoder/arm/armv5te/vp8_packtokens_armv5$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_EDSP)  += encoder/arm/armv5te/vp8_packtokens_mbrow_armv5$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_EDSP)  += encoder/arm/armv5te/vp8_packtokens_partitions_armv5$(ASM)
 | 
			
		||||
 | 
			
		||||
#File list for armv6
 | 
			
		||||
#File list for media
 | 
			
		||||
# encoder
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV6)  += encoder/arm/armv6/vp8_subtract_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV6)  += encoder/arm/armv6/vp8_short_fdct4x4_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV6)  += encoder/arm/armv6/vp8_fast_quantize_b_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV6)  += encoder/arm/armv6/vp8_sad16x16_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV6)  += encoder/arm/armv6/vp8_variance16x16_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV6)  += encoder/arm/armv6/vp8_variance_halfpixvar16x16_h_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV6)  += encoder/arm/armv6/vp8_variance_halfpixvar16x16_v_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV6)  += encoder/arm/armv6/vp8_variance_halfpixvar16x16_hv_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV6)  += encoder/arm/armv6/vp8_mse16x16_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV6)  += encoder/arm/armv6/vp8_variance8x8_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV6)  += encoder/arm/armv6/walsh_v6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_MEDIA)  += encoder/arm/armv6/vp8_subtract_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_MEDIA)  += encoder/arm/armv6/vp8_short_fdct4x4_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_MEDIA)  += encoder/arm/armv6/vp8_fast_quantize_b_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_MEDIA)  += encoder/arm/armv6/vp8_sad16x16_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_MEDIA)  += encoder/arm/armv6/vp8_variance16x16_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_MEDIA)  += encoder/arm/armv6/vp8_variance_halfpixvar16x16_h_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_MEDIA)  += encoder/arm/armv6/vp8_variance_halfpixvar16x16_v_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_MEDIA)  += encoder/arm/armv6/vp8_variance_halfpixvar16x16_hv_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_MEDIA)  += encoder/arm/armv6/vp8_mse16x16_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_MEDIA)  += encoder/arm/armv6/vp8_variance8x8_armv6$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_MEDIA)  += encoder/arm/armv6/walsh_v6$(ASM)
 | 
			
		||||
 | 
			
		||||
#File list for neon
 | 
			
		||||
# encoder
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV7)  += encoder/arm/neon/fastquantizeb_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV7)  += encoder/arm/neon/picklpf_arm.c
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV7)  += encoder/arm/neon/sad8_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV7)  += encoder/arm/neon/sad16_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV7)  += encoder/arm/neon/shortfdct_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV7)  += encoder/arm/neon/subtract_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV7)  += encoder/arm/neon/variance_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV7)  += encoder/arm/neon/vp8_mse16x16_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV7)  += encoder/arm/neon/vp8_subpixelvariance8x8_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_ARMV7)  += encoder/arm/neon/vp8_subpixelvariance16x16_neon$(ASM)
 | 
			
		||||
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_NEON)  += encoder/arm/neon/fastquantizeb_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/picklpf_arm.c
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/sad8_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/sad16_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/shortfdct_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/subtract_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/variance_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/vp8_mse16x16_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/vp8_subpixelvariance8x8_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/vp8_subpixelvariance16x16_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/vp8_subpixelvariance16x16s_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/vp8_memcpy_neon$(ASM)
 | 
			
		||||
VP8_CX_SRCS-$(HAVE_NEON)  += encoder/arm/neon/vp8_shortwalsh4x4_neon$(ASM)
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@ int arm_cpu_caps(void)
 | 
			
		||||
     *  instructions via their assembled hex code.
 | 
			
		||||
     * All of these instructions should be essentially nops.
 | 
			
		||||
     */
 | 
			
		||||
#if defined(HAVE_ARMV5TE)
 | 
			
		||||
#if defined(HAVE_EDSP)
 | 
			
		||||
    if (mask & HAS_EDSP)
 | 
			
		||||
    {
 | 
			
		||||
        __try
 | 
			
		||||
@@ -66,7 +66,7 @@ int arm_cpu_caps(void)
 | 
			
		||||
            /*Ignore exception.*/
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#if defined(HAVE_ARMV6)
 | 
			
		||||
#if defined(HAVE_MEDIA)
 | 
			
		||||
    if (mask & HAS_MEDIA)
 | 
			
		||||
        __try
 | 
			
		||||
        {
 | 
			
		||||
@@ -79,7 +79,7 @@ int arm_cpu_caps(void)
 | 
			
		||||
            /*Ignore exception.*/
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#if defined(HAVE_ARMV7)
 | 
			
		||||
#if defined(HAVE_NEON)
 | 
			
		||||
    if (mask & HAS_NEON)
 | 
			
		||||
    {
 | 
			
		||||
        __try
 | 
			
		||||
@@ -115,13 +115,13 @@ int arm_cpu_caps(void)
 | 
			
		||||
    mask = arm_cpu_env_mask();
 | 
			
		||||
    features = android_getCpuFeatures();
 | 
			
		||||
 | 
			
		||||
#if defined(HAVE_ARMV5TE)
 | 
			
		||||
#if defined(HAVE_EDSP)
 | 
			
		||||
    flags |= HAS_EDSP;
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(HAVE_ARMV6)
 | 
			
		||||
#if defined(HAVE_MEDIA)
 | 
			
		||||
    flags |= HAS_MEDIA;
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(HAVE_ARMV7)
 | 
			
		||||
#if defined(HAVE_NEON)
 | 
			
		||||
    if (features & ANDROID_CPU_ARM_FEATURE_NEON)
 | 
			
		||||
        flags |= HAS_NEON;
 | 
			
		||||
#endif
 | 
			
		||||
@@ -153,17 +153,17 @@ int arm_cpu_caps(void)
 | 
			
		||||
        char buf[512];
 | 
			
		||||
        while (fgets(buf, 511, fin) != NULL)
 | 
			
		||||
        {
 | 
			
		||||
#if defined(HAVE_ARMV5TE) || defined(HAVE_ARMV7)
 | 
			
		||||
#if defined(HAVE_EDSP) || defined(HAVE_NEON)
 | 
			
		||||
            if (memcmp(buf, "Features", 8) == 0)
 | 
			
		||||
            {
 | 
			
		||||
                char *p;
 | 
			
		||||
#if defined(HAVE_ARMV5TE)
 | 
			
		||||
#if defined(HAVE_EDSP)
 | 
			
		||||
                p=strstr(buf, " edsp");
 | 
			
		||||
                if (p != NULL && (p[5] == ' ' || p[5] == '\n'))
 | 
			
		||||
                {
 | 
			
		||||
                    flags |= HAS_EDSP;
 | 
			
		||||
                }
 | 
			
		||||
#if defined(HAVE_ARMV7)
 | 
			
		||||
#if defined(HAVE_NEON)
 | 
			
		||||
                p = strstr(buf, " neon");
 | 
			
		||||
                if (p != NULL && (p[5] == ' ' || p[5] == '\n'))
 | 
			
		||||
                {
 | 
			
		||||
@@ -173,7 +173,7 @@ int arm_cpu_caps(void)
 | 
			
		||||
#endif
 | 
			
		||||
            }
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(HAVE_ARMV6)
 | 
			
		||||
#if defined(HAVE_MEDIA)
 | 
			
		||||
            if (memcmp(buf, "CPU architecture:",17) == 0){
 | 
			
		||||
                int version;
 | 
			
		||||
                version = atoi(buf+17);
 | 
			
		||||
@@ -200,13 +200,13 @@ int arm_cpu_caps(void)
 | 
			
		||||
        return flags;
 | 
			
		||||
    }
 | 
			
		||||
    mask = arm_cpu_env_mask();
 | 
			
		||||
#if defined(HAVE_ARMV5TE)
 | 
			
		||||
#if defined(HAVE_EDSP)
 | 
			
		||||
    flags |= HAS_EDSP;
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(HAVE_ARMV6)
 | 
			
		||||
#if defined(HAVE_MEDIA)
 | 
			
		||||
    flags |= HAS_MEDIA;
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(HAVE_ARMV7)
 | 
			
		||||
#if defined(HAVE_NEON)
 | 
			
		||||
    flags |= HAS_NEON;
 | 
			
		||||
#endif
 | 
			
		||||
    return flags & mask;
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
 | 
			
		||||
void vp8_arch_arm_vpx_scale_init()
 | 
			
		||||
{
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#if CONFIG_RUNTIME_CPU_DETECT
 | 
			
		||||
    int flags = arm_cpu_caps();
 | 
			
		||||
    if (flags & HAS_NEON)
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@
 | 
			
		||||
#include "vpx_config.h"
 | 
			
		||||
#include "vpx_scale/yv12config.h"
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
    void vp8_yv12_extend_frame_borders_neon(YV12_BUFFER_CONFIG *ybf);
 | 
			
		||||
 | 
			
		||||
    /* Copy Y,U,V buffer data from src to dst, filling border of dst as well. */
 | 
			
		||||
 
 | 
			
		||||
@@ -15,10 +15,10 @@ SCALE_SRCS-$(ARCH_ARM)    += arm/yv12extend_arm.h
 | 
			
		||||
SCALE_SRCS-$(ARCH_ARM)    += arm/scalesystemdependent.c
 | 
			
		||||
 | 
			
		||||
#neon
 | 
			
		||||
SCALE_SRCS-$(HAVE_ARMV7)  += arm/neon/vp8_vpxyv12_copyframe_func_neon$(ASM)
 | 
			
		||||
SCALE_SRCS-$(HAVE_ARMV7)  += arm/neon/vp8_vpxyv12_copy_y_neon$(ASM)
 | 
			
		||||
SCALE_SRCS-$(HAVE_ARMV7)  += arm/neon/vp8_vpxyv12_copysrcframe_func_neon$(ASM)
 | 
			
		||||
SCALE_SRCS-$(HAVE_ARMV7)  += arm/neon/vp8_vpxyv12_extendframeborders_neon$(ASM)
 | 
			
		||||
SCALE_SRCS-$(HAVE_ARMV7)  += arm/neon/yv12extend_arm.c
 | 
			
		||||
SCALE_SRCS-$(HAVE_NEON)  += arm/neon/vp8_vpxyv12_copyframe_func_neon$(ASM)
 | 
			
		||||
SCALE_SRCS-$(HAVE_NEON)  += arm/neon/vp8_vpxyv12_copy_y_neon$(ASM)
 | 
			
		||||
SCALE_SRCS-$(HAVE_NEON)  += arm/neon/vp8_vpxyv12_copysrcframe_func_neon$(ASM)
 | 
			
		||||
SCALE_SRCS-$(HAVE_NEON)  += arm/neon/vp8_vpxyv12_extendframeborders_neon$(ASM)
 | 
			
		||||
SCALE_SRCS-$(HAVE_NEON)  += arm/neon/yv12extend_arm.c
 | 
			
		||||
 | 
			
		||||
SCALE_SRCS-no += $(SCALE_SRCS_REMOVE-yes)
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
#include "vpx_scale/yv12config.h"
 | 
			
		||||
#include "vpx_scale/generic/yv12extend_generic.h"
 | 
			
		||||
 | 
			
		||||
#if HAVE_ARMV7
 | 
			
		||||
#if HAVE_NEON
 | 
			
		||||
#include "vpx_scale/arm/yv12extend_arm.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user