| Index: source/libvpx/vpx_dsp/mips/convolve8_vert_dspr2.c
|
| diff --git a/source/libvpx/vpx_dsp/mips/vpx_convolve8_vert_dspr2.c b/source/libvpx/vpx_dsp/mips/convolve8_vert_dspr2.c
|
| similarity index 92%
|
| rename from source/libvpx/vpx_dsp/mips/vpx_convolve8_vert_dspr2.c
|
| rename to source/libvpx/vpx_dsp/mips/convolve8_vert_dspr2.c
|
| index cf9b4f1a0a1e39aa6031f2561487af9592265447..d553828c59a2b4a51f3cb65f0ba93281aeeff217 100644
|
| --- a/source/libvpx/vpx_dsp/mips/vpx_convolve8_vert_dspr2.c
|
| +++ b/source/libvpx/vpx_dsp/mips/convolve8_vert_dspr2.c
|
| @@ -12,7 +12,7 @@
|
| #include <stdio.h>
|
|
|
| #include "./vpx_dsp_rtcd.h"
|
| -#include "vpx_dsp/mips/vpx_common_dspr2.h"
|
| +#include "vpx_dsp/mips/convolve_common_dspr2.h"
|
| #include "vpx_dsp/vpx_dsp_common.h"
|
| #include "vpx_dsp/vpx_filter.h"
|
| #include "vpx_ports/mem.h"
|
| @@ -333,60 +333,49 @@ void vpx_convolve8_vert_dspr2(const uint8_t *src, ptrdiff_t src_stride,
|
| const int16_t *filter_x, int x_step_q4,
|
| const int16_t *filter_y, int y_step_q4,
|
| int w, int h) {
|
| - if (((const int32_t *)filter_y)[1] == 0x800000) {
|
| - vpx_convolve_copy(src, src_stride,
|
| - dst, dst_stride,
|
| - filter_x, x_step_q4,
|
| - filter_y, y_step_q4,
|
| - w, h);
|
| - } else if (((const int32_t *)filter_y)[0] == 0) {
|
| + assert(y_step_q4 == 16);
|
| + assert(((const int32_t *)filter_y)[1] != 0x800000);
|
| +
|
| + if (((const int32_t *)filter_y)[0] == 0) {
|
| vpx_convolve2_vert_dspr2(src, src_stride,
|
| dst, dst_stride,
|
| filter_x, x_step_q4,
|
| filter_y, y_step_q4,
|
| w, h);
|
| } else {
|
| - if (16 == y_step_q4) {
|
| - uint32_t pos = 38;
|
| -
|
| - /* bit positon for extract from acc */
|
| - __asm__ __volatile__ (
|
| - "wrdsp %[pos], 1 \n\t"
|
| - :
|
| - : [pos] "r" (pos)
|
| - );
|
| -
|
| - prefetch_store(dst);
|
| -
|
| - switch (w) {
|
| - case 4 :
|
| - case 8 :
|
| - case 16 :
|
| - case 32 :
|
| - convolve_vert_4_dspr2(src, src_stride,
|
| - dst, dst_stride,
|
| - filter_y, w, h);
|
| - break;
|
| - case 64 :
|
| - prefetch_store(dst + 32);
|
| - convolve_vert_64_dspr2(src, src_stride,
|
| - dst, dst_stride,
|
| - filter_y, h);
|
| - break;
|
| - default:
|
| - vpx_convolve8_vert_c(src, src_stride,
|
| + uint32_t pos = 38;
|
| +
|
| + /* bit positon for extract from acc */
|
| + __asm__ __volatile__ (
|
| + "wrdsp %[pos], 1 \n\t"
|
| + :
|
| + : [pos] "r" (pos)
|
| + );
|
| +
|
| + prefetch_store(dst);
|
| +
|
| + switch (w) {
|
| + case 4 :
|
| + case 8 :
|
| + case 16 :
|
| + case 32 :
|
| + convolve_vert_4_dspr2(src, src_stride,
|
| + dst, dst_stride,
|
| + filter_y, w, h);
|
| + break;
|
| + case 64 :
|
| + prefetch_store(dst + 32);
|
| + convolve_vert_64_dspr2(src, src_stride,
|
| dst, dst_stride,
|
| - filter_x, x_step_q4,
|
| - filter_y, y_step_q4,
|
| - w, h);
|
| - break;
|
| - }
|
| - } else {
|
| - vpx_convolve8_vert_c(src, src_stride,
|
| - dst, dst_stride,
|
| - filter_x, x_step_q4,
|
| - filter_y, y_step_q4,
|
| - w, h);
|
| + filter_y, h);
|
| + break;
|
| + default:
|
| + vpx_convolve8_vert_c(src, src_stride,
|
| + dst, dst_stride,
|
| + filter_x, x_step_q4,
|
| + filter_y, y_step_q4,
|
| + w, h);
|
| + break;
|
| }
|
| }
|
| }
|
|
|