summaryrefslogtreecommitdiff
path: root/libcpu
diff options
context:
space:
mode:
authorGuEe-GUI <[email protected]>2024-12-12 13:52:49 +0800
committerRbb666 <[email protected]>2024-12-13 10:39:20 +0800
commit78f318aa8f506891002b58eeb45e8d18623cde15 (patch)
treec8b0c0fe788770b6cc920deffd7602ccc4c16d54 /libcpu
parentec4f375bbc8f4baf88c99d0464842f67a79b3def (diff)
[FIXUP] __rt_clz loss in aarch64
Signed-off-by: GuEe-GUI <[email protected]>
Diffstat (limited to 'libcpu')
-rw-r--r--libcpu/aarch64/common/cpuport.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/libcpu/aarch64/common/cpuport.c b/libcpu/aarch64/common/cpuport.c
index b2592c854d..ed619990d7 100644
--- a/libcpu/aarch64/common/cpuport.c
+++ b/libcpu/aarch64/common/cpuport.c
@@ -56,4 +56,19 @@ unsigned long __rt_ffsl(unsigned long value)
#endif
}
+unsigned long __rt_clz(unsigned long value)
+{
+#ifdef __GNUC__
+ return __builtin_clz(value);
+#else
+ unsigned long val;
+
+ __asm__ volatile ("clz %0, %1"
+ :"=r"(val)
+ :"r"(value));
+
+ return val;
+#endif
+}
+
#endif /* RT_USING_CPU_FFS */