From 8c6fc0c15415b32080a848bbde640e104098cf13 Mon Sep 17 00:00:00 2001 From: Carlos Maiolino Date: Thu, 10 Jul 2025 22:18:39 +0200 Subject: Initial drop Add some riscv code Signed-off-by: Carlos Maiolino --- riscv/riscv-probe/libfemto/std/clz.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 riscv/riscv-probe/libfemto/std/clz.c (limited to 'riscv/riscv-probe/libfemto/std/clz.c') diff --git a/riscv/riscv-probe/libfemto/std/clz.c b/riscv/riscv-probe/libfemto/std/clz.c new file mode 100644 index 0000000..bc94795 --- /dev/null +++ b/riscv/riscv-probe/libfemto/std/clz.c @@ -0,0 +1,22 @@ +// See LICENSE for license details. + +#include + +#define GLUE_HELPER(x, y) x##y +#define GLUE(x, y) GLUE_HELPER(x, y) + +#define DEFINE_CLZ(T,bits) \ +int GLUE(clz,bits)(T val) \ +{ \ + int n = 0; \ + for (n = 0; n < bits; n++) { \ + if (val < 0) break; \ + val <<= 1; \ + } \ + return n; \ +} + +DEFINE_CLZ(int8_t,8) +DEFINE_CLZ(int16_t,16) +DEFINE_CLZ(int32_t,32) +DEFINE_CLZ(int64_t,64) -- cgit v1.2.3