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
This commit is contained in:
parent
f17a2eb9d5
commit
096eaba728
@ -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
|
|
||||||
|
|
@ -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;
|
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)
|
static int get_free_fb (VP8_COMMON *cm)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -307,9 +301,6 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, size_t size,
|
|||||||
const uint8_t *source,
|
const uint8_t *source,
|
||||||
int64_t time_stamp)
|
int64_t time_stamp)
|
||||||
{
|
{
|
||||||
#if HAVE_NEON
|
|
||||||
int64_t dx_store_reg[8];
|
|
||||||
#endif
|
|
||||||
VP8_COMMON *cm = &pbi->common;
|
VP8_COMMON *cm = &pbi->common;
|
||||||
int retcode = -1;
|
int retcode = -1;
|
||||||
|
|
||||||
@ -319,15 +310,6 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, size_t size,
|
|||||||
if(retcode <= 0)
|
if(retcode <= 0)
|
||||||
return retcode;
|
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);
|
cm->new_fb_idx = get_free_fb (cm);
|
||||||
|
|
||||||
/* setup reference frames for vp8_decode_frame */
|
/* 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;
|
pbi->last_time_stamp = time_stamp;
|
||||||
|
|
||||||
decode_exit:
|
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;
|
pbi->common.error.setjmp = 0;
|
||||||
return retcode;
|
return retcode;
|
||||||
}
|
}
|
||||||
|
@ -4820,33 +4820,11 @@ static void Pass2Encode(VP8_COMP *cpi, unsigned long *size, unsigned char *dest,
|
|||||||
}
|
}
|
||||||
#endif
|
#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)
|
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;
|
struct vpx_usec_timer timer;
|
||||||
int res = 0;
|
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);
|
vpx_usec_timer_start(&timer);
|
||||||
|
|
||||||
/* Reinit the lookahead buffer if the frame size changes */
|
/* 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);
|
vpx_usec_timer_mark(&timer);
|
||||||
cpi->time_receive_data += vpx_usec_timer_elapsed(&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;
|
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)
|
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;
|
VP8_COMMON *cm;
|
||||||
struct vpx_usec_timer tsctimer;
|
struct vpx_usec_timer tsctimer;
|
||||||
struct vpx_usec_timer ticktimer;
|
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;
|
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);
|
vpx_usec_timer_start(&cmptimer);
|
||||||
|
|
||||||
cpi->source = NULL;
|
cpi->source = NULL;
|
||||||
@ -5005,14 +4962,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
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5416,15 +5365,6 @@ int vp8_get_compressed_data(VP8_COMP *cpi, unsigned int *frame_flags, unsigned l
|
|||||||
#endif
|
#endif
|
||||||
#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;
|
cpi->common.error.setjmp = 0;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -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/sixtappredict8x8_neon$(ASM)
|
||||||
VP8_COMMON_SRCS-$(HAVE_NEON) += common/arm/neon/sixtappredict16x16_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/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_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_dequant_0_2x_neon$(ASM)
|
||||||
VP8_COMMON_SRCS-$(HAVE_NEON) += common/arm/neon/idct_blk_neon.c
|
VP8_COMMON_SRCS-$(HAVE_NEON) += common/arm/neon/idct_blk_neon.c
|
||||||
|
Loading…
x
Reference in New Issue
Block a user