shithub: libvpx

Download patch

ref: 462e0ff88b67ffecd3a502a6050e76f2ba8f2094
parent: eea8ea88abf31ca3ab43f2bebbb6dde8cfd27d9b
author: James Zern <[email protected]>
date: Thu Jun 2 19:51:22 EDT 2016

vpx_dsp,add_noise: remove mmx implementation

a sse2 version exists, this is a reasonable modern baseline.

Change-Id: If31d36c8412d25b53f41b4a93cf02f46802c0c33

--- a/test/add_noise_test.cc
+++ b/test/add_noise_test.cc
@@ -185,11 +185,6 @@
 INSTANTIATE_TEST_CASE_P(C, AddNoiseTest,
                         ::testing::Values(vpx_plane_add_noise_c));
 
-#if HAVE_MMX
-INSTANTIATE_TEST_CASE_P(MMX, AddNoiseTest,
-                        ::testing::Values(vpx_plane_add_noise_mmx));
-#endif
-
 #if HAVE_SSE2
 INSTANTIATE_TEST_CASE_P(SSE2, AddNoiseTest,
                         ::testing::Values(vpx_plane_add_noise_sse2));
--- a/vpx_dsp/vpx_dsp.mk
+++ b/vpx_dsp/vpx_dsp.mk
@@ -55,7 +55,6 @@
 ifneq ($(filter yes,$(CONFIG_POSTPROC) $(CONFIG_VP9_POSTPROC)),)
 DSP_SRCS-yes += add_noise.c
 DSP_SRCS-$(HAVE_MSA) += mips/add_noise_msa.c
-DSP_SRCS-$(HAVE_MMX) += x86/add_noise_mmx.asm
 DSP_SRCS-$(HAVE_SSE2) += x86/add_noise_sse2.asm
 endif # CONFIG_POSTPROC
 
--- a/vpx_dsp/vpx_dsp_rtcd_defs.pl
+++ b/vpx_dsp/vpx_dsp_rtcd_defs.pl
@@ -1913,7 +1913,7 @@
 #
 if (vpx_config("CONFIG_POSTPROC") eq "yes" || vpx_config("CONFIG_VP9_POSTPROC") eq "yes") {
     add_proto qw/void vpx_plane_add_noise/, "uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch";
-    specialize qw/vpx_plane_add_noise mmx sse2 msa/;
+    specialize qw/vpx_plane_add_noise sse2 msa/;
 }
 
 }  # CONFIG_ENCODERS || CONFIG_POSTPROC || CONFIG_VP9_POSTPROC
--- a/vpx_dsp/x86/add_noise_mmx.asm
+++ /dev/null
@@ -1,86 +1,0 @@
-;
-;  Copyright (c) 2015 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.
-;
-
-%include "vpx_ports/x86_abi_support.asm"
-
-;void vpx_plane_add_noise_mmx (unsigned char *Start, unsigned char *noise,
-;                            unsigned char blackclamp[16],
-;                            unsigned char whiteclamp[16],
-;                            unsigned char bothclamp[16],
-;                            unsigned int Width, unsigned int Height, int Pitch)
-global sym(vpx_plane_add_noise_mmx) PRIVATE
-sym(vpx_plane_add_noise_mmx):
-    push        rbp
-    mov         rbp, rsp
-    SHADOW_ARGS_TO_STACK 8
-    GET_GOT     rbx
-    push        rsi
-    push        rdi
-    ; end prolog
-
-    ; get the clamps in registers
-    mov     rdx, arg(2) ; blackclamp
-    movq    mm3, [rdx]
-    mov     rdx, arg(3) ; whiteclamp
-    movq    mm4, [rdx]
-    mov     rdx, arg(4) ; bothclamp
-    movq    mm5, [rdx]
-
-.addnoise_loop:
-    call sym(LIBVPX_RAND) WRT_PLT
-    mov     rcx, arg(1) ;noise
-    and     rax, 0xff
-    add     rcx, rax
-
-            mov     rdi, rcx
-            movsxd  rcx, dword arg(5) ;[Width]
-            mov     rsi, arg(0) ;Pos
-            xor         rax,rax
-
-.addnoise_nextset:
-            movq        mm1,[rsi+rax]         ; get the source
-
-            psubusb     mm1, mm3 ; subtract black clamp
-            paddusb     mm1, mm5 ; add both clamp
-            psubusb     mm1, mm4 ; subtract whiteclamp
-
-            movq        mm2,[rdi+rax]         ; get the noise for this line
-            paddb       mm1,mm2              ; add it in
-            movq        [rsi+rax],mm1         ; store the result
-
-            add         rax,8                 ; move to the next line
-
-            cmp         rax, rcx
-            jl          .addnoise_nextset
-
-    movsxd  rax, dword arg(7) ; Pitch
-    add     arg(0), rax ; Start += Pitch
-    sub     dword arg(6), 1   ; Height -= 1
-    jg      .addnoise_loop
-
-    ; begin epilog
-    pop rdi
-    pop rsi
-    RESTORE_GOT
-    UNSHADOW_ARGS
-    pop         rbp
-    ret
-
-
-SECTION_RODATA
-align 16
-Blur:
-    times 16 dw 16
-    times  8 dw 64
-    times 16 dw 16
-    times  8 dw  0
-
-rd:
-    times 4 dw 0x40