shithub: opus

Download patch

ref: 88fc293799c851d3c1873e0f98ae0ace0eba88bb
parent: f126bfc531b9bf61fb92af70ee0a138cd7d0f99a
author: Jean-Marc Valin <jmvalin@amazon.com>
date: Wed Nov 29 13:17:30 EST 2023

Defining __SSEx__ macros when needed for MSVC

--- /dev/null
+++ b/celt/x86/x86_arch_macros.h
@@ -1,0 +1,47 @@
+/* Copyright (c) 2023 Amazon */
+/*
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+   - Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifdef _MSC_VER
+
+# ifdef OPUS_X86_MAY_HAVE_SSE
+#  ifndef __SSE__
+#   define __SSE__
+#  endif
+# endif
+
+# ifdef OPUS_X86_MAY_HAVE_SSE2
+#  ifndef __SSE2__
+#   define __SSE2__
+#  endif
+# endif
+
+# ifdef OPUS_X86_MAY_HAVE_SSE4_1
+#  ifndef __SSE4_1__
+#   define __SSE4_1__
+#  endif
+# endif
+
+#endif
--- a/celt_headers.mk
+++ b/celt_headers.mk
@@ -50,4 +50,5 @@
 celt/mips/vq_mipsr1.h \
 celt/x86/pitch_sse.h \
 celt/x86/vq_sse.h \
+celt/x86/x86_arch_macros.h \
 celt/x86/x86cpu.h
--- a/dnn/x86/nnet_avx2.c
+++ b/dnn/x86/nnet_avx2.c
@@ -29,6 +29,8 @@
 #include "config.h"
 #endif
 
+#include "x86/x86_arch_macros.h"
+
 #ifndef __AVX2__
 #error nnet_avx2.c is being compiled without AVX2 enabled
 #endif
--- a/dnn/x86/nnet_sse2.c
+++ b/dnn/x86/nnet_sse2.c
@@ -29,6 +29,8 @@
 #include "config.h"
 #endif
 
+#include "x86/x86_arch_macros.h"
+
 #ifndef __SSE2__
 #error nnet_sse2.c is being compiled without SSE2 enabled
 #endif
--- a/dnn/x86/nnet_sse4_1.c
+++ b/dnn/x86/nnet_sse4_1.c
@@ -29,6 +29,8 @@
 #include "config.h"
 #endif
 
+#include "x86/x86_arch_macros.h"
+
 #ifndef __SSE4_1__
 #error nnet_sse4_1.c is being compiled without SSE4.1 enabled
 #endif
--