This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [csl-arm] Add some EABI functions to libgcc
- From: Richard Earnshaw <rearnsha at gcc dot gnu dot org>
- To: Richard Sandiford <richard at codesourcery dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, Paul Brook <paul at codesourcery dot com>
- Date: Wed, 10 Aug 2005 11:01:44 +0100
- Subject: Re: [csl-arm] Add some EABI functions to libgcc
- References: <87zmrqgm41.fsf@talisman.home>
On Wed, 2005-08-10 at 10:46, Richard Sandiford wrote:
> This patch adds two EABI division functions to libgcc: __aeabi_idiv
> (which can be aliased to __divsi3) and __aeabi_uidiv (which can be
> aliased to __udivsi3).
>
> It also adds implementations of the unaligned read/write functions.
> These functions are written in C rather than assembly, on the basis
> that gcc already generates good opencoded accesses at -O2, and that
> it avoids having to deal with ARM/thumb/--with-tune variations.
>
> The patch also adds the new functions to libgcc-bpabi.ver.
> I've given them the same 3.5 version as the other functions,
> but I wasn't sure whether that was the right thing or not.
>
I see no real reason to change the version for new additions. It's only
changes to ABI interfaces that need version bumps.
> Finally, the patch adds some new tests to arm-eabi1.c
>
> Regression tested with an arm-eabi cross on csl-arm branch. Also tested
> by building an arm-linux-gnu toolchain & glibc and making sure that
> arm-eabi1.c links successfully both with and without -shared-libgcc.
>
> OK for csl-arm branch, and for mainline too if similar testing
> passes there? If so, are there any other branches it should go on?
>
OK for csl-arm and mainline. I don't think it's needed elsewhere.
Thanks,
R.
> Richard
>
>
> * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
> * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
> __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
> and __aeabi_uwrite8.
> * config/arm/unaligned-funcs.c: New file.
> * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
>
> testsuite/
> * gcc.dg/arm-eabi1.c: Test aeabi_idiv, __aeabi_uidiv, __aeabi_uread4,
> __aeabi_uread8, __aeabi_uwrite4 and __aeabi_uwrite8.