shithub: opus

Download patch

ref: d0db9e99cb9423f138a3b9e3acc53b142b7c5232
parent: 3692173d65872e6f1f1d4f4c2b3f0b22c4c5a309
author: Siarhei Volkau <lis8215@gmail.com>
date: Sun Aug 17 12:58:36 EDT 2025

refactor: MIPS: fix __builtin_clz usage

Due to historical reasons __builtin_clz result is undefined for 0.
Fix that in MIPS port.

Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
Signed-off-by: Jean-Marc Valin <jeanmarcv@google.com>

--- a/silk/mips/macros_mipsr1.h
+++ b/silk/mips/macros_mipsr1.h
@@ -29,7 +29,10 @@
 #ifndef SILK_MACROS_MIPSR1_H__
 #define SILK_MACROS_MIPSR1_H__
 
-#define mips_clz(x) __builtin_clz(x)
+static inline int mips_clz(opus_uint32 x)
+{
+    return x ? __builtin_clz(x) : 32;
+}
 
 #undef silk_SMULWB
 static inline int silk_SMULWB(int a, int b)
--