This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 0/3]: Initial Sparc multiarch support
- From: David Miller <davem at davemloft dot net>
- To: libc-alpha at sourceware dot org
- Date: Fri, 26 Feb 2010 05:19:34 -0800 (PST)
- Subject: [PATCH 0/3]: Initial Sparc multiarch support
Following this posting are three patches that add initial
multiarch support for sparc. And below is the GIT pull
information to grab this work from my davem/sparc branch.
The first two patches make changes that ease the implementation
of multiarch.
We pull the __align_cpy_*() routines out of memcpy and remove
any dependency they have on the memcpy code. Incidentally these
are still not used by gcc at all. :-) In fact I doubt there are
any actual users.
Next we toss the memmove and bcopy bits in favor of the generic
code. This is a temporary measure and new optimized routines
will be added to the multiarch area at a later date.
Finally we multiarch everything. Now distribution makers only
have to build glibc 3 times to cover all possible cases.
Once for sparc-*-linux, once for sparcv9-*-linux and once for
sparc64-*-linux.
This is compared to the _9_ variants required beforehand.
Please pull, thanks a lot!
The following changes since commit 4a1297d761c3754ca2643ab6cd9e9cf952d77cf5:
Ulrich Drepper (1):
We can use the 64-bit register versions of the double functions.
are available in the git repository at:
ssh://sourceware.org/git/glibc.git davem/sparc
David S. Miller (3):
sparc: Reimplement 64-bit aligned copy routines and remove from memcpy files.
sparc: Pull bcopy/memmove out of memcpy.S implementations.
sparc: Add multiarch support for memset/bzero/memcpy.
ChangeLog | 57 ++
sysdeps/sparc/Makefile | 5 +
sysdeps/sparc/elf/rtld-global-offsets.sym | 7 +
sysdeps/sparc/sparc32/bcopy.c | 1 -
sysdeps/sparc/sparc32/memcpy.S | 347 +---------
sysdeps/sparc/sparc32/memmove.c | 1 -
sysdeps/sparc/sparc32/sparcv9/bcopy.c | 1 -
sysdeps/sparc/sparc32/sparcv9/memmove.c | 1 -
sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile | 4 +
.../sparc32/sparcv9/multiarch/memcpy-niagara1.S | 2 +
.../sparc32/sparcv9/multiarch/memcpy-niagara2.S | 2 +
.../sparc32/sparcv9/multiarch/memcpy-ultra3.S | 2 +
sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.S | 4 +
.../sparc32/sparcv9/multiarch/memset-niagara1.S | 2 +
sysdeps/sparc/sparc32/sparcv9/multiarch/memset.S | 4 +
sysdeps/sparc/sparc32/sparcv9/sparcv9b/memcpy.S | 2 -
sysdeps/sparc/sparc32/sparcv9/sparcv9v/memcpy.S | 2 -
sysdeps/sparc/sparc32/sparcv9/sparcv9v/memset.S | 2 -
sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memcpy.S | 2 -
sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memset.S | 2 -
sysdeps/sparc/sparc64/Makefile | 4 +
sysdeps/sparc/sparc64/align-cpy.S | 85 +++
sysdeps/sparc/sparc64/bcopy.c | 1 -
sysdeps/sparc/sparc64/memcopy.h | 1 +
sysdeps/sparc/sparc64/memcpy.S | 353 ---------
sysdeps/sparc/sparc64/memmove.c | 1 -
sysdeps/sparc/sparc64/multiarch/Makefile | 4 +
sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S | 342 +++++++++
sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S | 492 +++++++++++++
sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S | 320 +++++++++
sysdeps/sparc/sparc64/multiarch/memcpy.S | 107 +++
.../memset.S => multiarch/memset-niagara1.S} | 17 +-
sysdeps/sparc/sparc64/multiarch/memset.S | 145 ++++
sysdeps/sparc/sparc64/sparcv9b/memcpy.S | 610 ----------------
sysdeps/sparc/sparc64/sparcv9v/memcpy.S | 596 ----------------
sysdeps/sparc/sparc64/sparcv9v2/memcpy.S | 746 --------------------
sysdeps/sparc/sparc64/sparcv9v2/memset.S | 1 -
37 files changed, 1599 insertions(+), 2676 deletions(-)
create mode 100644 sysdeps/sparc/elf/rtld-global-offsets.sym
delete mode 100644 sysdeps/sparc/sparc32/bcopy.c
delete mode 100644 sysdeps/sparc/sparc32/memmove.c
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/bcopy.c
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/memmove.c
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-niagara1.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-niagara2.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra3.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memset-niagara1.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memset.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/sparcv9b/memcpy.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/sparcv9v/memcpy.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/sparcv9v/memset.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memcpy.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memset.S
create mode 100644 sysdeps/sparc/sparc64/align-cpy.S
delete mode 100644 sysdeps/sparc/sparc64/bcopy.c
create mode 100644 sysdeps/sparc/sparc64/memcopy.h
delete mode 100644 sysdeps/sparc/sparc64/memmove.c
create mode 100644 sysdeps/sparc/sparc64/multiarch/Makefile
create mode 100644 sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S
create mode 100644 sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
create mode 100644 sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
create mode 100644 sysdeps/sparc/sparc64/multiarch/memcpy.S
rename sysdeps/sparc/sparc64/{sparcv9v/memset.S => multiarch/memset-niagara1.S} (94%)
create mode 100644 sysdeps/sparc/sparc64/multiarch/memset.S
delete mode 100644 sysdeps/sparc/sparc64/sparcv9b/memcpy.S
delete mode 100644 sysdeps/sparc/sparc64/sparcv9v/memcpy.S
delete mode 100644 sysdeps/sparc/sparc64/sparcv9v2/memcpy.S
delete mode 100644 sysdeps/sparc/sparc64/sparcv9v2/memset.S