public inbox for libc-ports@sourceware.org
 help / color / mirror / Atom feed
From: Will Newton <will.newton@linaro.org>
To: Roland McGrath <roland@hack.frob.com>
Cc: libc-ports@sourceware.org, Patch Tracking <patches@linaro.org>
Subject: Re: [PATCH, v5] ARM: Add Cortex-A15 optimized NEON and VFP memcpy routines, with IFUNC.
Date: Wed, 01 May 2013 15:26:00 -0000	[thread overview]
Message-ID: <CANu=DmhgUNKBos95su4qaeMRwWWij_Ss3_GhXjJmJChcMjFruA@mail.gmail.com> (raw)
In-Reply-To: <20130430171818.697972C08A@topped-with-meat.com>

On 30 April 2013 18:18, Roland McGrath <roland@hack.frob.com> wrote:

Hi Roland,

Thanks for the review!

>> +++ b/ports/sysdeps/arm/armv7/multiarch/aeabi_memcpy.c
>> @@ -0,0 +1,33 @@
>> +/* Copyright (C) 2005-2013 Free Software Foundation, Inc.
>
> The first line of each new file should be a descriptive comment.
>
>> +void *__memcpy_arm (void *dest, const void *src, size_t n);
>> +
>> +/* Copy memory like memcpy, but no return value required.  Can't alias
>> +   to memcpy because it's not defined in the same translation
>> +   unit.  */
>
> Why not just define the aliases in memcpy.S instead?
> (Then this can be an empty file just to override arm/aeabi_memcpy.c.)
>
> You should also add some comments about why it's important that the
> __aeabi_* functions use __memcpy_arm rather than memcpy.

Done.

>> +++ b/ports/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c
>> @@ -0,0 +1,44 @@
>> +/* Enumerate available IFUNC implementations of a function.  arm version.
>
> ARM in caps.

Done.

>> +           IFUNC_IMPL_ADD (array, i, memcpy, hwcap & HWCAP_ARM_VFPv3,
>> +                           __memcpy_vfp)
>
> HWCAP_ARM_VFP.

Yep, not sure how that slipped back in.

>> +ENTRY(memcpy)
>> +     .type   memcpy, %gnu_indirect_function
>> +     ldr     r1, .Lmemcpy_arm
>> +     tst     r0, #HWCAP_ARM_VFP
>> +     ldrne   r1, .Lmemcpy_vfp
>
> If __SOFTFP__ is predefined by the compiler, then the compiler is presuming
> VFP support anyway.  So you can make this:
>
> #ifdef __SOFTFP__
>         ldr     r1, .Lmemcpy_arm
>         tst     r0, #HWCAP_ARM_VFP
>         ldrne   r1, .Lmemcpy_vfp
> #else
>         ldr     r1, .Lmemcpy_vfp
> #endif
>
> (and also conditionalize .Lmemcpy_arm, below).

I'm not sure I follow the logic here, could you elaborate?

>> +# If we are configuring for armv7 we need binutils 2.21 to ensure that
>> +# NEON alignments are assembled correctly.
>> +if test $machine = arm/armv7; then
>> +   AC_CHECK_PROG_VER(AS, $AS, --version,
>> +               [GNU assembler.* \([0-9]*\.[0-9.]*\)],
>> +               [2.1[0-9][0-9]*|2.[2-9][1-9]*|[3-9].*|[1-9][0-9]*], AS=: critic_missing="$critic_missing as")
>> +fi
>
> Just put this in sysdeps/arm/armv7/configure.in and don't test $machine.
> Whenever possible, it is far better to test for an actual relevant detail
> empirically rather than testing version numbers.  If you can show an
> example of an instruction sequence that is misassembled by binutils 2.20
> then we can help you construct a more precise configure check.

I've moved the configure fragment as you suggest. I'll look into the
creating a test for the assembler breakage.

--
Will Newton
Toolchain Working Group, Linaro

  reply	other threads:[~2013-05-01 15:26 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-30 16:54 Will Newton
2013-04-30 17:08 ` Joseph S. Myers
2013-05-01  9:11   ` Will Newton
2013-04-30 17:18 ` Roland McGrath
2013-05-01 15:26   ` Will Newton [this message]
2013-05-01 17:01     ` Roland McGrath
2013-05-01 18:43       ` Will Newton
2013-05-02 19:54         ` Roland McGrath
2013-05-01 12:53 ` Richard Henderson
2013-05-01 16:50   ` Roland McGrath

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CANu=DmhgUNKBos95su4qaeMRwWWij_Ss3_GhXjJmJChcMjFruA@mail.gmail.com' \
    --to=will.newton@linaro.org \
    --cc=libc-ports@sourceware.org \
    --cc=patches@linaro.org \
    --cc=roland@hack.frob.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).