Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/media/libsoundtouch/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 4 kB image not shown  

Quelle  moz-libsoundtouch.patch   Sprache: unbekannt

 
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

[ Dauer der Verarbeitung: 0.21 Sekunden  (vorverarbeitet)  ]