This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: [PATCH v2 3/3] Add ffsl(), ffsll(), fls(), flsl(), flsll()
Hi
I am testing with RISC-V with newlib/trunk and just hang on ffs,
after investigate, I saw gcc just generate a ffs call in ffs for riscv64
and I guess riscv64 is not the only target will hit this bug,
so maybe we can revert the part of this patch, at least for ffs.c?
Code gen by riscv64-elf-gcc:
.file "ffs.c"
.option nopic
.globl ffs
.text
.align 1
.globl ffs
.type ffs, @function
ffs:
add sp,sp,-16
sd ra,8(sp)
call ffs
ld ra,8(sp)
sext.w a0,a0
add sp,sp,16
jr ra
.size ffs, .-ffs
.ident "GCC: (GNU) 8.0.0 20170509 (experimental)"
On Wed, Jul 5, 2017 at 7:26 PM, Corinna Vinschen <vinschen@redhat.com> wrote:
> On Jul 5 10:54, Sebastian Huber wrote:
>> Use compiler builtin for ffs(). Remove duplicate implementation from
>> Cygwin.
>>
>> Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
>> ---
>> newlib/libc/misc/ffs.c | 14 ++-------
>> newlib/libc/string/Makefile.am | 5 ++++
>> newlib/libc/string/Makefile.in | 64 +++++++++++++++++++++++++++++++++---------
>> newlib/libc/string/ffsl.c | 34 ++++++++++++++++++++++
>> newlib/libc/string/ffsll.c | 34 ++++++++++++++++++++++
>> newlib/libc/string/fls.c | 38 +++++++++++++++++++++++++
>> newlib/libc/string/flsl.c | 38 +++++++++++++++++++++++++
>> newlib/libc/string/flsll.c | 38 +++++++++++++++++++++++++
>> winsup/cygwin/syscalls.cc | 22 ---------------
>> 9 files changed, 240 insertions(+), 47 deletions(-)
>> create mode 100644 newlib/libc/string/ffsl.c
>> create mode 100644 newlib/libc/string/ffsll.c
>> create mode 100644 newlib/libc/string/fls.c
>> create mode 100644 newlib/libc/string/flsl.c
>> create mode 100644 newlib/libc/string/flsll.c
>
> Patchset looks good, please push.
>
> For Cygwin we also need to add the new fls* entry points to
> common.din and to the docs. I'll do that later, when you
> pushed your patch.
>
>
> Thanks,
> Corinna
>
> --
> Corinna Vinschen
> Cygwin Maintainer
> Red Hat
- References:
- [PATCH 3/3] Add ffsl(), ffsll(), fls(), flsl(), flsll()
- [PATCH v2 3/3] Add ffsl(), ffsll(), fls(), flsl(), flsll()
- Re: [PATCH v2 3/3] Add ffsl(), ffsll(), fls(), flsl(), flsll()