From 096eaba72807d3685f17bbd07c0b1f1807e1e93d Mon Sep 17 00:00:00 2001 From: Yunqing Wang Date: Tue, 29 Apr 2014 14:36:51 -0700 Subject: [PATCH] Remove VP8 save_reg_neon function This patch did a cleanup following the commit "Save NEON registers in VP8 NEON functions". The pushing/poping of callee-saved NEON registers was moved into individual NEON functions. Therefore, we don't need to save those registers at the beginning of codec. The related code was removed. Change-Id: I5648166514fc9beffb780aa138495597731f49ea --- vp8/common/arm/neon/save_reg_neon.asm | 36 ---------------- vp8/decoder/onyxd_if.c | 27 ------------ vp8/encoder/onyx_if.c | 60 --------------------------- vp8/vp8_common.mk | 1 - 4 files changed, 124 deletions(-) delete mode 100644 vp8/common/arm/neon/save_reg_neon.asm diff --git a/vp8/common/arm/neon/save_reg_neon.asm b/vp8/common/arm/neon/save_reg_neon.asm deleted file mode 100644 index fd7002e7a..000000000 --- a/vp8/common/arm/neon/save_reg_neon.asm +++ /dev/null @@ -1,36 +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. -; - - - EXPORT |vp8_push_neon| - EXPORT |vp8_pop_neon| - - ARM - REQUIRE8 - PRESERVE8 - - AREA ||.text||, CODE, READONLY, ALIGN=2 - -|vp8_push_neon| PROC - vst1.i64 {d8, d9, d10, d11}, [r0]! - vst1.i64 {d12, d13, d14, d15}, [r0]! - bx lr - - ENDP - -|vp8_pop_neon| PROC - vld1.i64 {d8, d9, d10, d11}, [r0]! - vld1.i64 {d12, d13, d14, d15}, [r0]! - bx lr - - ENDP - - END - diff --git a/vp8/decoder/onyxd_if.c b/vp8/decoder/onyxd_if.c index 2d9e343bc..29fea616b 100644 --- a/vp8/decoder/onyxd_if.c +++ b/vp8/decoder/onyxd_if.c @@ -178,12 +178,6 @@ vpx_codec_err_t vp8dx_set_reference(VP8D_COMP *pbi, enum vpx_ref_frame_type ref_ return pbi->common.error.error_code; } -/*For ARM NEON, d8-d15 are callee-saved registers, and need to be saved by us.*/ -#if HAVE_NEON -extern void vp8_push_neon(int64_t *store); -extern void vp8_pop_neon(int64_t *store); -#endif - static int get_free_fb (VP8_COMMON *cm) { int i; @@ -307,9 +301,6 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, size_t size, const uint8_t *source, int64_t time_stamp) { -#if HAVE_NEON - int64_t dx_store_reg[8]; -#endif VP8_COMMON *cm = &pbi->common; int retcode = -1; @@ -319,15 +310,6 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, size_t size, if(retcode <= 0) return retcode; -#if HAVE_NEON -#if CONFIG_RUNTIME_CPU_DETECT - if (cm->cpu_caps & HAS_NEON) -#endif - { - vp8_push_neon(dx_store_reg); - } -#endif - cm->new_fb_idx = get_free_fb (cm); /* setup reference frames for vp8_decode_frame */ @@ -403,15 +385,6 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, size_t size, pbi->last_time_stamp = time_stamp; decode_exit: -#if HAVE_NEON -#if CONFIG_RUNTIME_CPU_DETECT - if (cm->cpu_caps & HAS_NEON) -#endif - { - vp8_pop_neon(dx_store_reg); - } -#endif - pbi->common.error.setjmp = 0; return retcode; } diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index 32c599791..560134ee5 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -4820,33 +4820,11 @@ 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. */ -#if HAVE_NEON -extern void vp8_push_neon(int64_t *store); -extern void vp8_pop_neon(int64_t *store); -#endif - - 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_NEON - int64_t store_reg[8]; -#if CONFIG_RUNTIME_CPU_DETECT - VP8_COMMON *cm = &cpi->common; -#endif -#endif struct vpx_usec_timer timer; int res = 0; -#if HAVE_NEON -#if CONFIG_RUNTIME_CPU_DETECT - if (cm->cpu_caps & HAS_NEON) -#endif - { - vp8_push_neon(store_reg); - } -#endif - vpx_usec_timer_start(&timer); /* Reinit the lookahead buffer if the frame size changes */ @@ -4863,15 +4841,6 @@ 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_NEON -#if CONFIG_RUNTIME_CPU_DETECT - if (cm->cpu_caps & HAS_NEON) -#endif - { - vp8_pop_neon(store_reg); - } -#endif - return res; } @@ -4892,9 +4861,6 @@ 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_NEON - int64_t store_reg[8]; -#endif VP8_COMMON *cm; struct vpx_usec_timer tsctimer; struct vpx_usec_timer ticktimer; @@ -4914,15 +4880,6 @@ int vp8_get_compressed_data(VP8_COMP *cpi, unsigned int *frame_flags, unsigned l cpi->common.error.setjmp = 1; -#if HAVE_NEON -#if CONFIG_RUNTIME_CPU_DETECT - if (cm->cpu_caps & HAS_NEON) -#endif - { - vp8_push_neon(store_reg); - } -#endif - vpx_usec_timer_start(&cmptimer); cpi->source = NULL; @@ -5005,14 +4962,6 @@ int vp8_get_compressed_data(VP8_COMP *cpi, unsigned int *frame_flags, unsigned l #endif -#if HAVE_NEON -#if CONFIG_RUNTIME_CPU_DETECT - if (cm->cpu_caps & HAS_NEON) -#endif - { - vp8_pop_neon(store_reg); - } -#endif return -1; } @@ -5416,15 +5365,6 @@ int vp8_get_compressed_data(VP8_COMP *cpi, unsigned int *frame_flags, unsigned l #endif #endif -#if HAVE_NEON -#if CONFIG_RUNTIME_CPU_DETECT - if (cm->cpu_caps & HAS_NEON) -#endif - { - vp8_pop_neon(store_reg); - } -#endif - cpi->common.error.setjmp = 0; return 0; diff --git a/vp8/vp8_common.mk b/vp8/vp8_common.mk index dfb54a52c..3568b34e1 100644 --- a/vp8/vp8_common.mk +++ b/vp8/vp8_common.mk @@ -172,7 +172,6 @@ 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_reg_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/idct_blk_neon.c -- 2.40.0