This patch assumes VIS3 support by binutils, which is supported since
version 2.22. This leads to some code simplification, mostly on
multiarch build where there is only one variant instead of previously
two (whether binutils supports VIS3 instructions or not).
For multiarch files where HAVE_AS_VIS3_SUPPORT was checked and
the default implementation was built with a different name, a new
file with (implementation with -generic appended) is added.
Checked on sparc64-linux-gnu and sparcv9-linux-gnu.
* config.h.in (HAVE_AS_VIS3_SUPPORT): Remove check for VIS3 support.
* sysdeps/sparc/configure.ac (HAVE_AS_VIS3_SUPPORT): Likewise.
* sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c: Likewise.
* sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c: Likewise.
* sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c: Likewise.
* sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c: Likewise.
* sysdeps/sparc/sparc-ifunc.h [!HAVE_AS_VIS3_SUPPORT]
(SPARC_ASM_VIS3_IFUNC, SPARC_ASM_VIS3_VIS2_IFUNC): Remove macros.
* sysdeps/sparc/sparc32/sparcv9/Makefile [$(have-as-vis3) != yes]
(ASFLAGS.o, ASFLAGS-.os, ASFLAGS-.op, ASFLAGS-.oS): Remove rules.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
($(have-as-vis3) == yes): Remove conditional.
* sysdeps/sparc/sparc64/Makefile (($(have-as-vis3) == yes)):
Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-generic.c: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-generic.c: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-generic.c: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-generic.c: New
file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-generic.c: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-generic.c: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_floor-generic.c: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-generic.c: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_fma-generic.c: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-generic.c: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-generic.c: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-generic.c: New file.
Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This was used by --enable-omitfp, and the bulk of it was removed in this
commit:
commit bdeba1354b
Author: Ulrich Drepper <drepper@gmail.com>
Date: Sat Jan 7 11:29:31 2012 -0500
Remove --enable-omitfp support
When building for sparc32/sparcv9 or sparc64, we assume that VIS
instructions are available and use them in the sparc specific assembly
code. However we do not tell GCC to use such instructions, resulting in
slightly suboptimal code.
Fix that by passing -Wa,-Av9a -mvis to GCC.
Changelog:
* sysdeps/sparc/sparc32/sparcv9/Makefile (sysdep-CFLAGS): Add -mvis.
* sysdeps/sparc/sparc64/Makefile (sysdep-CFLAGS): New. Define to
-Wa,-Av9a -mvis.
* sysdeps/sparc/configure.in: New file.
* sysdeps/sparc/configure: Generate.
* configure.in (libc_cv_sparc_as_vis3): Substitute.
* configure: Regenerate.
* config.h.in (HAVE_AS_VIS3_SUPPORT): New.
* config.make.in (have-as-vis3): New.
* sysdeps/sparc/sparc32/sparcv9/Makefile (ASFLAGS-*): If VIS3 is
available use -Av9d instead of -Av9a.
* sysdeps/sparc/sparc64/Makefile: Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-vis3.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-vis3.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.S: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/Makefile: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.S: New file.
2002-08-29 Jakub Jelinek <jakub@redhat.com>
* stdio-common/vfprintf.c (vfprintf): Add builtin_expect for
string_malloced, it is unlikely to be set.
Only call free with non-NULL workspace.
* sysdeps/sparc/sparc32/sparcv9/Makefile (sysdep-CFLAGS): Use
-mcpu=ultrasparc, not only tune for it.
(ASFLAGS*): Set unconditionally.
2002-08-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/readelflib.c (process_elf_file): Make loadaddr
ElfW(Addr). Don't mask upper 32-bits and lower 12 bits off from
p_vaddr/p_offset when computing loadaddr.
2001-04-05 David S. Miller <davem@redhat.com>
Add hp-timing support for sparcv9/sparc64 targets.
* sysdeps/sparc/sparc32/sparcv9/hp-timing.c: New file
* sysdeps/sparc/sparc32/sparcv9/hp-timing.h: New file
* sysdeps/sparc/sparc64/hp-timing.c: New file
* sysdeps/sparc/sparc64/hp-timing.h: New file
* sysdeps/sparc/sparc32/sparcv9/Makefile: Build hp-timing.
* sysdeps/sparc/sparc64/Makefile: Likewise.
2001-04-09 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/fd_to_filename.h: New file.
* sysdeps/unix/sysv/linux/fd_to_filename.h: New file.
* libio/freopen.c (freopen): If FILENAME is NULL, try to get
filename from the open file descriptor.
* libio/freopen64.c (freopen64): Likewise.
2001-04-09 Bruno Haible <haible@clisp.cons.org>
* misc/error.c (error): fflush stdout also if
error_print_progname != NULL.
(error_at_line): Likewise.
2001-04-07 Bruno Haible <haible@clisp.cons.org>
* intl/gettextP.h (struct loaded_domain): Add codeset_cntr field.
(struct binding): Add codeset_cntr field.
(_nl_load_domain): Add domainbinding argument.
(_nl_init_domain_conv, _nl_free_domain_conv): New declarations.
(_nl_find_msg): New declaration, moved here from loadinfo.h.
* intl/loadinfo.h (struct loaded_l10nfile): Remove domainbinding field.
(_nl_make_l10nflist): Remove domainbinding argument.
(_nl_find_msg): Move declaration to gettextP.h.
* intl/bindtextdom.c (set_binding_values): Initialize ->codeset_cntr
to 0. Increment it when ->codeset is changed.
* intl/dcigettext.c (DCIGETTEXT): Pass binding to _nl_find_msg.
(_nl_find_msg): Add domainbinding argument. Reinitialize the converter
if domainbinding->codeset_cntr has been incremented.
* intl/finddomain.c (_nl_find_domain): Don't pass domainbinding to
_nl_make_l10nflist(). Pass it to _nl_load_domain() instead.
* intl/l10nflist.c (_nl_make_l10nflist): Remove domainbinding argument.
* intl/loadmsgcat.c (_nl_init_domain_conv): New function, extracted
from _nl_load_domain. Append //TRANSLIT also when using libiconv.
(_nl_free_domain_conv): New function, extracted from _nl_unload_domain.
(_nl_load_domain): Add domainbinding argument. Call
_nl_init_domain_conv.
(_nl_unload_domain): Call _nl_free_domain_conv.
* intl/Makefile (distribute): Add tst-codeset.sh, tstcodeset.po.
(test-srcs): Add tst-codeset.
(tests): Depend on tst-codeset.out.
(tst-codeset.out): New rule.
(CFLAGS-tst-codeset.c): New variable.
* intl/tst-codeset.sh: New file.
* intl/tstcodeset.po: New file.
* intl/tst-codeset.c: New file.
* locale/findlocale.c (_nl_find_locale): Update _nl_make_l10nflist
calls.
1999-07-25 Jakub Jelinek <jj@ultra.linux.cz>
* sysdeps/sparc/sparc32/sparcv8/Makefile: -mv8 is deprecated, use
-mcpu=v8.
* sysdeps/sparc/sparc32/sparcv9/Makefile: Likewise.
* sysdeps/sparc/sparc64/Makefile: Make %g7 register available for
libc's private use (as assembly routine clobber it anyway).
1999-07-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* README.template (configurations): The crypt add-on has a new
ftp site.
* manual/install.texi (Installation): Likewise.
1999-05-18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-64/stdint.h (INTPTR_MAX): Add missing ).
1999-05-17 David S. Miller <davem@redhat.com>
* sysdeps/sparc/sparc32/atomicity.h: New file.
* sysdeps/sparc/sparc32/sparcv9/atomicity.h: New file.
* sysdeps/sparc/sparc64/atomicity.h: New file.
* sysdeps/sparc/sparc32/sparcv9/Makefile: Add -Wa,-Av9a to
sysdep-CFLAGS.
1999-04-14 Jakub Jelinek <jj@ultra.linux.cz>
* scripts/config.sub: Allow sparcv[6789]-* and sparcv8plus{,a}-*
architectures.
* sysdeps/sparc/sparc32/sparcv8/Makefile: Use sysdep-CFLAGS
instead of CFLAGS.
* sysdeps/sparc/sparc32/sparcv8/Makefile: Use sysdep-CFLAGS
instead of CFLAGS. For gnulib and string directories use
-Wa,-Av9a gcc ASFLAGS.
* sysdeps/sparc/sparc32/sparcv9/memmove.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: New file.
* shlib-versions: Handle sparcv[6789]-* and sparcv8plus{,a}-*
the same way as sparc-*.
1999-03-29 Jakub Jelinek <jj@ultra.linux.cz>
* sysdeps/sparc/sparc32/sparcv8/Makefile: New file.
* sysdeps/sparc/sparc32/sparcv8/rem.S: Delay after write %y.
* sysdeps/sparc/sparc32/sparcv8/sdiv.S: Likewise.
* sysdeps/sparc/sparc32/sparcv8/udiv.S: Likewise.
* sysdeps/sparc/sparc32/sparcv8/urem.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/bcopy.c: New file.
* sysdeps/sparc/sparc32/sparcv9/bzero.c: New file.
* sysdeps/sparc/sparc32/sparcv9/memchr.S: New file.
* sysdeps/sparc/sparc32/sparcv9/memcmp.S: New file.
* sysdeps/sparc/sparc32/sparcv9/memcpy.S: New file.
* sysdeps/sparc/sparc32/sparcv9/memset.S: New file.
* sysdeps/sparc/sparc32/sparcv9/stpcpy.S: New file.
* sysdeps/sparc/sparc32/sparcv9/strcat.S: New file.
* sysdeps/sparc/sparc32/sparcv9/strchr.S: New file.
* sysdeps/sparc/sparc32/sparcv9/strcmp.S: New file.
* sysdeps/sparc/sparc32/sparcv9/strcpy.S: New file.
* sysdeps/sparc/sparc32/sparcv9/strcspn.S: New file.
* sysdeps/sparc/sparc32/sparcv9/strlen.S: New file.
* sysdeps/sparc/sparc32/sparcv9/strncpy.S: New file.
* sysdeps/sparc/sparc32/sparcv9/strpbrk.S: New file.
* sysdeps/sparc/sparc32/sparcv9/strrchr.c: New file.
* sysdeps/sparc/sparc32/sparcv9/strspn.S: New file.
* sysdeps/sparc/sparc32/sparcv9/dotmul.S: New file.
* sysdeps/sparc/sparc32/sparcv9/rem.S: New file.
* sysdeps/sparc/sparc32/sparcv9/sdiv.S: New file.
* sysdeps/sparc/sparc32/sparcv9/udiv.S: New file.
* sysdeps/sparc/sparc32/sparcv9/umul.S: New file.
* sysdeps/sparc/sparc32/sparcv9/urem.S: New file.
* sysdeps/sparc/sparc32/sparcv9/Makefile: New file.
* sysdeps/sparc/sparc32/sparcv9/stpncpy.S: New file.
* sysdeps/sparc/sparc32/sparcv9/strncmp.S: New file.
* sysdeps/sparc/sparc32/bcopy.c: New file.
* sysdeps/sparc/sparc32/bzero.c: New file.
* sysdeps/sparc/sparc32/memchr.S: New file.
* sysdeps/sparc/sparc32/memcpy.S: New file.
* sysdeps/sparc/sparc32/memmove.c: New file.
* sysdeps/sparc/sparc32/memset.S: New file.
* sysdeps/sparc/sparc32/stpcpy.S: New file.
* sysdeps/sparc/sparc32/strchr.S: New file.
* sysdeps/sparc/sparc32/strrchr.c: New file.
* sysdeps/sparc/sparc32/strcpy.S: New file.
* sysdeps/sparc/sparc32/strlen.S: New file.
* sysdeps/sparc/sparc32/strcat.S: New file.
* sysdeps/sparc/sparc32/strcmp.S: New file.
* sysdeps/sparc/sparc64/bcopy.c: New file.
* sysdeps/sparc/sparc64/bzero.c: New file.
* sysdeps/sparc/sparc64/memchr.S: New file.
* sysdeps/sparc/sparc64/memcmp.S: New file.
* sysdeps/sparc/sparc64/memcpy.S: New file.
* sysdeps/sparc/sparc64/memset.S: New file.
* sysdeps/sparc/sparc64/stpcpy.S: New file.
* sysdeps/sparc/sparc64/strcat.S: New file.
* sysdeps/sparc/sparc64/strchr.S: New file.
* sysdeps/sparc/sparc64/strcmp.S: New file.
* sysdeps/sparc/sparc64/strcpy.S: New file.
* sysdeps/sparc/sparc64/strcspn.S: New file.
* sysdeps/sparc/sparc64/strlen.S: New file.
* sysdeps/sparc/sparc64/strncpy.S: New file.
* sysdeps/sparc/sparc64/strpbrk.S: New file.
* sysdeps/sparc/sparc64/strrchr.c: New file.
* sysdeps/sparc/sparc64/strspn.S: New file.
* sysdeps/sparc/sparc64/stpncpy.S: New file.
* sysdeps/sparc/sparc64/strncmp.S: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/Makefile (ASFLAGS-.os):
Append -fPIC, don't replace.
* configure.in: Recognize sparcv8plus / sparcv9.