This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]