diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /media/libsoundtouch/moz-libsoundtouch.patch | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'media/libsoundtouch/moz-libsoundtouch.patch')
-rw-r--r-- | media/libsoundtouch/moz-libsoundtouch.patch | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/media/libsoundtouch/moz-libsoundtouch.patch b/media/libsoundtouch/moz-libsoundtouch.patch new file mode 100644 index 0000000000..d5607caed4 --- /dev/null +++ b/media/libsoundtouch/moz-libsoundtouch.patch @@ -0,0 +1,152 @@ +diff -u /src/cpu_detect_x86.cpp /src/cpu_detect_x86.cpp +--- /src/cpu_detect_x86.cpp ++++ /src/cpu_detect_x86.cpp +@@ -37,9 +37,8 @@ + + + #if defined(SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS) +- +- #if defined(__GNUC__) && defined(__i386__) +- // gcc ++ #if defined(__GNUC__) && defined(HAVE_CPUID_H) ++ // gcc and clang + #include "cpuid.h" + #elif defined(_M_IX86) + // windows non-gcc +@@ -71,10 +70,18 @@ + /// Checks which instruction set extensions are supported by the CPU. + uint detectCPUextensions(void) + { ++/// If building for RLBox, we enable the SSE code that will be ++/// translated to WASMSIMD with SIMD-everywhere. ++#if defined(SOUNDTOUCH_WASM_SIMD) ++ uint res = 0; ++ res = res | SUPPORT_SSE; ++ res = res | SUPPORT_SSE2; ++ return res & ~_dwDisabledISA; ++ + /// If building for a 64bit system (no Itanium) and the user wants optimizations. + /// Return the OR of SUPPORT_{MMX,SSE,SSE2}. 11001 or 0x19. + /// Keep the _dwDisabledISA test (2 more operations, could be eliminated). +-#if ((defined(__GNUC__) && defined(__x86_64__)) \ ++#elif ((defined(__GNUC__) && defined(__x86_64__)) \ + || defined(_M_X64)) \ + && defined(SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS) + return 0x19 & ~_dwDisabledISA; +@@ -89,18 +96,7 @@ + + uint res = 0; + +-#if defined(__GNUC__) +- // GCC version of cpuid. Requires GCC 4.3.0 or later for __cpuid intrinsic support. +- uint eax, ebx, ecx, edx; // unsigned int is the standard type. uint is defined by the compiler and not guaranteed to be portable. +- +- // Check if no cpuid support. +- if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx)) return 0; // always disable extensions. +- +- if (edx & bit_MMX) res = res | SUPPORT_MMX; +- if (edx & bit_SSE) res = res | SUPPORT_SSE; +- if (edx & bit_SSE2) res = res | SUPPORT_SSE2; +- +-#else ++#if !defined(__GNUC__) + // Window / VS version of cpuid. Notice that Visual Studio 2005 or later required + // for __cpuid intrinsic support. + int reg[4] = {-1}; +@@ -113,7 +109,19 @@ + if ((unsigned int)reg[3] & bit_MMX) res = res | SUPPORT_MMX; + if ((unsigned int)reg[3] & bit_SSE) res = res | SUPPORT_SSE; + if ((unsigned int)reg[3] & bit_SSE2) res = res | SUPPORT_SSE2; ++#elif defined(HAVE_CPUID_H) ++ // GCC version of cpuid. Requires GCC 4.3.0 or later for __cpuid intrinsic support. ++ uint eax, ebx, ecx, edx; // unsigned int is the standard type. uint is defined by the compiler and not guaranteed to be portable. ++ ++ // Check if no cpuid support. ++ if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx)) return 0; // always disable extensions. + ++ if (edx & bit_MMX) res = res | SUPPORT_MMX; ++ if (edx & bit_SSE) res = res | SUPPORT_SSE; ++ if (edx & bit_SSE2) res = res | SUPPORT_SSE2; ++#else ++ // Compatible with GCC but no cpuid.h. ++ return 0; + #endif + + return res & ~_dwDisabledISA; +diff -u /src/STTypes.h /src/STTypes.h +--- /src/STTypes.h ++++ /src/STTypes.h +@@ -54,11 +54,7 @@ + #define SOUNDTOUCH_ALIGN_POINTER_16(x) ( ( (ulongptr)(x) + 15 ) & ~(ulongptr)15 ) + + +-#if (defined(__GNUC__) && !defined(ANDROID)) +- // In GCC, include soundtouch_config.h made by config scritps. +- // Skip this in Android compilation that uses GCC but without configure scripts. +- #include "soundtouch_config.h" +-#endif ++#include "soundtouch_config.h" + + namespace soundtouch + { +diff -u /src/FIRFilter.cpp /src/FIRFilter.cpp +--- /src/FIRFilter.cpp ++++ /src/FIRFilter.cpp +@@ -291,9 +296,11 @@ + + FIRFilter * FIRFilter::newInstance() + { ++#if defined(SOUNDTOUCH_ALLOW_MMX) || defined(SOUNDTOUCH_ALLOW_SSE) + uint uExtensions; + + uExtensions = detectCPUextensions(); ++#endif + + // Check if MMX/SSE instruction set extensions supported by CPU + +diff -u /src/TDStretch.cpp /src/TDStretch.cpp +--- /src/TDStretch.cpp ++++ /src/TDStretch.cpp +@@ -624,9 +624,11 @@ + + TDStretch * TDStretch::newInstance() + { ++#if defined(SOUNDTOUCH_ALLOW_MMX) || defined(SOUNDTOUCH_ALLOW_SSE) + uint uExtensions; + + uExtensions = detectCPUextensions(); ++#endif + + // Check if MMX/SSE instruction set extensions supported by CPU + +diff -u /src/AAFilter.cpp /src/AAFilter.cpp +--- /src/AAFilter.cpp ++++ /src/AAFilter.cpp +@@ -42,7 +42,7 @@ + + using namespace soundtouch; + +-#define PI 3.14159265358979323846 ++#define PI M_PI + #define TWOPI (2 * PI) + + // define this to save AA filter coefficients to a file + + +diff -u /src/sse_optimized.cpp /src/sse_optimized.cpp +--- /src/sse_optimized.cpp ++++ /src_patched/sse_optimized.cpp +@@ -60,7 +60,13 @@ + ////////////////////////////////////////////////////////////////////////////// + + #include "TDStretch.h" ++ ++#ifdef SOUNDTOUCH_WASM_SIMD ++#include "simde/x86/avx2.h" ++#else + #include <xmmintrin.h> ++#endif ++ + #include <math.h> + + // Calculates cross correlation of two buffers |