From 14e07b218356a47717864124e9a97801ec32bd74 Mon Sep 17 00:00:00 2001 From: George Muraru Date: Wed, 15 Apr 2020 09:15:58 +0300 Subject: [PATCH] Add clrsbdi2 needed by tensorflowlite Signed-off-by: George Muraru Reviewed-by: Felipe Huici --- Makefile.uk | 5 +++++ lib/builtins/clrsbdi2.c | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 lib/builtins/clrsbdi2.c diff --git a/Makefile.uk b/Makefile.uk index 23f9e2e..dcb042b 100644 --- a/Makefile.uk +++ b/Makefile.uk @@ -62,8 +62,11 @@ LIBCOMPILER_RT_SRC=$(LIBCOMPILER_RT_ORIGIN)/$(LIBCOMPILER_RT_SUBDIR) # Library includes ################################################################################ CINCLUDES-$(CONFIG_LIBCOMPILER_RT) += -I$(LIBCOMPILER_RT_SRC)/lib +CINCLUDES-$(CONFIG_LIBCOMPILER_RT) += -I$(LIBCOMPILER_RT_SRC)/lib/builtins CINCLUDES-$(CONFIG_LIBCOMPILER_RT) += -I$(LIBCOMPILER_RT_SRC)/include + CXXINCLUDES-$(CONFIG_LIBCOMPILER_RT) += -I$(LIBCOMPILER_RT_SRC)/lib +CXXINCLUDES-$(CONFIG_LIBCOMPILER_RT) += -I$(LIBCOMPILER_RT_SRC)/lib/builtins CXXINCLUDES-$(CONFIG_LIBCOMPILER_RT) += -I$(LIBCOMPILER_RT_SRC)/include ################################################################################ @@ -238,3 +241,5 @@ LIBCOMPILER_RT_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBCOMPILER_RT_SRC)/lib/builtins/ ifdef CONFIG_LIBCOMPILER_RT_ATOMIC LIBCOMPILER_RT_SRCS-y += $(LIBCOMPILER_RT_SRC)/lib/builtins/atomic.c endif + +LIBCOMPILER_RT_SRCS-y += $(LIBCOMPILER_RT_BASE)/lib/builtins/clrsbdi2.c diff --git a/lib/builtins/clrsbdi2.c b/lib/builtins/clrsbdi2.c new file mode 100644 index 0000000..286d510 --- /dev/null +++ b/lib/builtins/clrsbdi2.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2013-2017 Free Software Foundation, Inc. + This file is part of GCC. + GCC is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation; either version 3, or (at your option) any later + version. + GCC is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . +*/ + +#include + +/* Returns: Number of leading zeroes */ + + +COMPILER_RT_ABI di_int +__clrsbdi2(di_int x) +{ + int ret; + if (x < 0LL) + x = ~x; + if (x == 0LL) + return 8 * sizeof (x) -1; + ret = __builtin_clz((du_int) x); + return ret - 1; +} -- 2.39.5