Commit Graph

223 Commits

Author SHA1 Message Date
David S. Miller
993eb0541c Reduce down to one definition of _ELF_DYNAMIC_DO_RELOC.
* elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): Reduce down to one
	definition.
	* sysdeps/powerpc/powerpc32/dl-machine.h
	(ELF_MACHINE_PLTREL_OVERLAP): Delete.
	* sysdeps/s390/s390-32/dl-machine.h
	(ELF_MACHINE_PLTREL_OVERLAP): Likewise.
	* sysdeps/sparc/sparc32/dl-machine.h
	(ELF_MACHINE_PLTREL_OVERLAP): Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h
	(ELF_MACHINE_PLTREL_OVERLAP): Likewise.
2012-04-05 15:28:37 -07:00
David S. Miller
88d85d4f00 Optimize mempcpy on sparc.
* sysdeps/sparc/sparc32/memcpy.S: Implement mempcpy using a stub
	that branches into memcpy.
	* sysdeps/sparc/sparc64/memcpy.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy.S: Add mempcpy multiarch
	bits.
	* sysdeps/sparc/sparc64/rtld-memcpy.c: Include generic mempcpy
	implementation too.
	* sysdeps/sparc/mempcpy.S: New file.
2012-03-28 22:35:26 -07:00
David S. Miller
88570753ec Use generic memset/memcpy in rtld on sparcv9/sparc64.
* sysdeps/sparc/sparc32/sparcv9/multiarch/rtld-memset.c: New file.
	* sysdeps/sparc/sparc32/sparcv9/multiarch/rtld-memcpy.c: New file.
	* sysdeps/sparc/sparc32/sparcv9/rtld-memset.c: New file.
	* sysdeps/sparc/sparc32/sparcv9/rtld-memcpy.c: New file.
	* sysdeps/sparc/sparc64/multiarch/rtld-memset.c: New file.
	* sysdeps/sparc/sparc64/multiarch/rtld-memcpy.c: New file.
	* sysdeps/sparc/sparc64/rtld-memset.c: New file.
	* sysdeps/sparc/sparc64/rtld-memcpy.c: New file.
2012-03-28 22:22:15 -07:00
David S. Miller
18c9d62b9c Make sparc's -fPIC addition to ASFLAGS-.os more robust.
* sysdeps/sparc/Makefile: Add -fPIC to ASFLAGS-.os here....
	* sysdeps/sparc/sparc32/Makefile: rather than here...
	* sysdeps/sparc/sparc64/Makefile: and here.
2012-03-28 14:25:42 -07:00
Andreas Jaeger
8cd23080c4 Move sysdeps/sparc/{,sparc32,sparc64}/elf files
* sysdeps/sparc/elf/configure.in: Moved to ...
	* sysdeps/sparc/configure.in: ... here.
	* sysdeps/sparc/elf/configure: Delete file.
	* sysdeps/sparc/sparc32/elf/start.S: Moved to ...
	* sysdeps/sparc/sparc32/start.S: ... here.
	* sysdeps/sparc/sparc64/elf/start.S: Moved to ...
	* sysdeps/sparc/sparc64/start.S: ... here.
	* sysdeps/sparc/sparc32/elf/Makefile: Merged into ...
	* sysdeps/sparc/sparc32/Makefile: ... this.
	* sysdeps/sparc/sparc64/elf/Makefile: Merged into ...
	* sysdeps/sparc/sparc64/Makefile: ... this.
2012-03-28 09:26:30 +02:00
H.J. Lu
eb96ffb07d Move stdio-common/_itoa.h to sysdeps/generic 2012-03-20 16:00:23 -07:00
David S. Miller
e6a62e18fd Add sparc vis3 optimized fma/fmaf.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf.c: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf.c: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/Makefile: Add fma/fmaf
	sysdep routines.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Likewise.
2012-03-15 23:09:16 -07:00
David S. Miller
88cb87d908 Sparc long double is emulated in software, therefore use dbl-64's s_fma.c
* sysdeps/sparc/sparc32/fpu/s_fma.c: New file.
	* sysdeps/sparc/sparc64/fpu/s_fma.c: New file.
2012-03-15 20:55:42 -07:00
David S. Miller
006f1daa5a Create a header for sparc ifunc expansion and use it for VIS3 ifuncs.
* sysdeps/sparc/sparc-ifunc.h: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil.S: Use sparc-ifunc.h
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceilf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floorf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmax.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaxf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmin.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fminf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrt.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrtf.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_finite.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floor.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fmax.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fmin.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fminf.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_rint.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.S: Likewise.
2012-03-15 20:29:44 -07:00
David S. Miller
f7062b9a6f Sparc optimized fmin{,f} and fmax{,f}.
* sysdeps/sparc/sparc64/fpu/s_fmax.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_fmaxf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_fmin.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_fminf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_fmax.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_fmaxf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_fmin.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_fminf.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fmax.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fmin-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fmin.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fminf-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fminf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmax-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmax.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaxf-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaxf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmin-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmin.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fminf-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fminf.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/Makefile: Add new vis3
	fmin/fmax sysdep routines.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Likewise.
2012-03-15 02:13:54 -07:00
David S. Miller
559398ab74 Add more sparc VIS3 optimized math routines.
* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_finite.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floor.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_rint.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/Makefile: Add new VIS3 routines.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceilf-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceilf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floorf-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floorf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrt-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrt.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrtf-vis3.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrtf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Add new VIS3 routines.

	* sysdeps/sparc/sparc32/sparcv9/fpu/unix/sysv/linux/multiarch/Implies:
	New file.
2012-03-15 00:14:55 -07:00
David S. Miller
eae47a3618 Add framework for using sparc VIS3 instructions, use it for copysign/signbit.
* 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.
2012-03-14 16:43:09 -07:00
David S. Miller
2d2cd51564 Fix bugs in sparc PLT profiling register management, and add sparc sotruss support.
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Protect local
	variables with appropriate CPP guards.
	* sysdeps/sparc/sparc32/dl-trampoline.S: Propagate the stack_ptr from the
	frame pointer, not the stack pointer.  Correct layout comments.  Fix test
	on resulting framesize and the management of the outregs buffer for pltexit.
	Preserve floating point return values across _dl_call_pltexit call.
	* sysdeps/sparc/sparc64/dl-trampoline.S: Fix test on resulting
	framesize and the management of the outregs buffer for pltexit.
	Preserve floating point return values across _dl_call_pltexit
	call.
	* elf/sotruss-lib.c (la_sparc32_gnu_pltenter, la_sparc64_gnu_pltenter,
	la_sparc32_gnu_pltexit, la_sparc64_gnu_pltexit): New functions.
	(print_exit): Fix format string for return register value.
2012-03-09 20:48:06 -08:00
David S. Miller
6358490d55 Add sparc optimized {l,}rint{,f} for 32-bit v9 and 64-bit.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_lrint.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_llrint.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_llrintf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_lrint.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_lrintf.S: New file.
2012-03-02 18:59:09 -08:00
David S. Miller
dfdb8ff299 Optimized sparc assembler for signbit{,f,l} and some variants of isnan.
* sysdeps/sparc/sparc32/fpu/s_signbit.S: New file.
	* sysdeps/sparc/sparc32/fpu/s_signbitf.S: New file.
	* sysdeps/sparc/sparc32/fpu/s_signbitl.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_isnan.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_isnanf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_signbit.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_signbitf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_signbitl.S: New file.
2012-03-01 20:43:38 -08:00
David S. Miller
7f66bd07f0 Sparc doesn't need seperate 32-bit and 64-bit ulps files.
* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Move...
	* sysdeps/sparc/fpu/libm-test-ulps: to here.
	* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Delete.
2012-03-01 17:32:58 -08:00
David S. Miller
53362a4b0f Remove sparc binutils GOTDATA checks in lieu of new minimum version requirement.
* sysdeps/sparc/crti.S: Remove HAVE_BINUTILS_GOTDATA checks.
	* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc32/elf/start.S: Likewise.
	* sysdeps/sparc/sparc32/fpu/w_sqrt.S: Likewise.
	* sysdeps/sparc/sparc32/fpu/w_sqrtf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S: Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc64/elf/start.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/w_sqrt.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/w_sqrtf.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
	* config.h.in (HAVE_BINUTILS_GOTDATA): Delete.
	* sysdeps/sparc/elf/configure.in: Remove binutils GOTDATA checks.
	* sysdeps/sparc/elf/configure: Regenerated.
2012-03-01 15:04:16 -08:00
David S. Miller
8847f03770 Add sparc optimized sqrt{,f}.
* sysdeps/sparc/sparc32/fpu/w_sqrt.S: New file.
	* sysdeps/sparc/sparc32/fpu/w_sqrtf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S: New file.
	* sysdeps/sparc/sparc64/fpu/w_sqrt.S: New file.
	* sysdeps/sparc/sparc64/fpu/w_sqrtf.S: New file.
2012-02-28 22:37:58 -08:00
David S. Miller
741a235bf6 Add optimized copysign for sparc.
* sysdeps/sparc/sparc32/fpu/s_copysign.S: New file.
	* sysdeps/sparc/sparc32/fpu/s_copysignf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_copysign.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_copysignf.S: New file.
2012-02-28 00:33:00 -08:00
David S. Miller
1aff59a3f7 Optimized sparc floor{,f} routines.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_floor.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_floorf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_floor.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_floorf.S: New file.
2012-02-27 20:36:30 -08:00
David S. Miller
d6b5aa5879 Fix %fp/%sp typo in new sparc ceil{,f} assembler.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_ceil.S: Fix accidental use of
	frame pointer instead of stack pointer relative arg slot.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_ceilf.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/s_ceil.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/s_ceilf.S: Likewise.
2012-02-27 20:33:25 -08:00
David S. Miller
d674b76d0e Fix comment formatting in new optimized sparc math files. 2012-02-27 15:26:06 -08:00
David S. Miller
428d5830a2 Optimized sparc ceil{,f} and rint{,f} routines.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_ceil.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_ceilf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_ceil.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_ceilf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_rint.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_rintf.S: New file.
2012-02-27 14:55:58 -08:00
David S. Miller
586394099c Update long-double sparc math ULPs missed by previous changes.
* sysdeps/sparc/sparc32/fpu/libm-test-ulps: More jn test ULP updates.
	* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Likewise.
2012-02-21 15:36:11 -08:00
David S. Miller
c0e70b2543 Tweak sparc32 longjmp to not store a dummy frame pointer onto the stack.
* sysdeps/sparc/sparc32/__longjmp.S: Unwind in the 'thread' path
	using a normal save/restore sequence, rather than allocating a
	dummy stack frame just to store a frame pointer and restore.
	* sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S: Likewise.
2012-02-20 20:50:14 -08:00
David S. Miller
3d2b3019e0 Use sparc GOTDATA relocations whenever possible.
* sysdeps/sparc/crti.S: Try to use GOTDATA relocs.
	* sysdeps/sparc/sparc32/dl-machine.h (RTLD_START): Likewise.
	* sysdeps/sparc/sparc32/elf/start.S: Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h (RTLD_START): Likewise.
	* sysdeps/sparc/sparc64/elf/start.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memset.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
	(SYSCALL_ERROR_HANDLER): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
	(SYSCALL_ERROR_HANDLER): Likewise.
2012-02-20 17:51:53 -08:00
David S. Miller
3a2545a0f3 Consolidate Sparc ELF configure fragments to one spot.
* sysdeps/sparc/sparc32/elf/configure.in: Delete.
	* sysdeps/sparc/sparc32/elf/configure: Delete.
	* sysdeps/sparc/sparc64/elf/configure.in: Delete.
	* sysdeps/sparc/sparc64/elf/configure: Delete.
	* sysdeps/sparc/elf/configure.in: New file.
	* sysdeps/sparc/elf/configure: Generate.
2012-02-20 17:51:40 -08:00
David S. Miller
7a8b71c37c Remove sparc WDISP22 configure checks, no longer used.
* sysdeps/sparc/sparc32/elf/configure.in: Delete WDISP22 check.
	* sysdeps/sparc/sparc32/elf/configure: Regenerate.
	* sysdeps/sparc/sparc64/elf/configure.in: Likewise.
	* sysdeps/sparc/sparc64/elf/configure: Regenerate.
	* config.h.in (BROKEN_SPARC_WDISP22): Remove.
2012-02-20 17:51:21 -08:00
Joseph Myers
5ad91f6e6f Resort ULPs files with gen-libm-test.pl -n in C locale. 2012-02-20 18:06:05 +00:00
Aurelien Jarno
06b99b0263 Adjust SPARC ULPs to take into account the new jn tests. 2012-02-20 07:37:30 +01:00
David S. Miller
f63f338062 Move sparc away from the deprecated inifini.c scheme.
/

	* sysdeps/sparc/Makefile: Add -fPIC when building crt{i,n}.S
	* sysdeps/sparc/crti.S: New file.
	* sysdeps/sparc/crtn.S: New file.
	* sysdeps/sparc/sparc32/Makefile: Remove initfini handling.
	* sysdeps/sparc/sparc64/Makefile: Likewise.

nptl/

	* sysdeps/sparc/Makefile: Add -fPIC when building pt-crti.S and crtn.S
2012-02-16 12:54:05 -08:00
Paul Eggert
59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Ulrich Drepper
a0da5fe1e4 More fallout from supporting only ELF 2012-01-08 00:45:01 -05:00
Ulrich Drepper
0ac5ae2335 Optimize libm
libm is now somewhat integrated with gcc's -ffinite-math-only option
and lots of the wrapper functions have been optimized.
2011-10-12 11:27:51 -04:00
Andreas Schwab
3a62d00d40 Don't call ifunc functions in trace mode 2011-10-05 14:35:40 +02:00
Ulrich Drepper
83cd142045 Remove --wth-tls option, TLS support is required 2011-09-11 15:02:01 -04:00
Ulrich Drepper
d063d16433 Remove support for !USE___THREAD 2011-09-10 16:50:28 -04:00
Ulrich Drepper
92963737c4 Remove support for automatic cvs check-ins
CVS use for glibc is long gone.
2011-09-08 23:19:04 -04:00
David S. Miller
15c95c5d1a Fixes and optimizations for 32-bit sparc fabs*(). 2011-09-05 10:06:15 -07:00
David S. Miller
5f4318d102 Sanitize HWCAP_SPARC_* defines/usage, and add new entries. 2011-09-01 13:43:06 -07:00
David S. Miller
42675c6ff0 Add an elf_ifunc_invoke interface so that architectures can implement
the ifunc resolver calls however they wish.
2011-06-20 19:56:40 -07:00
David S. Miller
9b849836f5 sparc: Fix LD_BIND_NOW with multiarch. 2011-06-07 19:51:06 -07:00
David S. Miller
462a5227b0 sparc: Optimize strlen using techniques from powerpc implementation. 2010-03-09 06:42:53 -08:00
David S. Miller
2fe000dfd6 sparc32: Fix non-v9 build failure in memcpy. 2010-03-09 06:37:45 -08:00
David S. Miller
65ba5b4661 sparc32: Remove unused code.
2010-03-04  David S. Miller  <davem@davemloft.net>

	* sysdeps/sparc/sparc32/sparcv8/udiv_qrnnd.S: Delete.
	* sysdeps/sparc/sparc32/udiv_qrnnd.S: Delete.
2010-03-04 04:25:37 -08:00
David S. Miller
7ec1221ff7 sparc: Use ba,a,pt in PLTs and fix bugs in R_SPARC_JMP_IREL handling.
2010-03-03  David S. Miller  <davem@davemloft.net>

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_lazy_rel): Must
	pass '1' for 't' argument to sparc_fixup_plt.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_lazy_rel):
	Likewise.
	* sysdeps/sparc/sparc32/dl-plt.h (OPCODE_BA_PT): Define.
	(sparc_fixup_plt): Document 't' argument.  Enable branch
	optimization and use v9 branches when possible.  Explain why we
	cannot unconditionally patch the branch into the first PLT
	instruction.
	* sysdeps/sparc/sparc64/dl-plt.h (sparc64_fixup_plt): Document 't'
	argument.  Use v9 branches when possible.  Explain why we can in
	fact unconditionally use a branch in the first PLT instruction
	here.
2010-03-03 02:14:02 -08:00
David S. Miller
3afd5a3b55 sparc: Add multiarch support for memset/bzero/memcpy.
2010-02-25  David S. Miller  <davem@davemloft.net>

	* sysdeps/sparc/elf/rtld-global-offsets.sym: New file.
	* sysdeps/sparc/Makefile (csu): Add rtld-global-offsets.sym to
	gen-as-const-headers.
	* sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile: New file.
	* sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/multiarch/memset.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/sparcv9b/memcpy.S: Move to...
	* sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra3.S: ...here.
	* sysdeps/sparc/sparc32/sparcv9/sparcv9v/memcpy.S: Move to...
	* sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-niagara1.S: ...here.
	* sysdeps/sparc/sparc32/sparcv9/sparcv9v/memset.S: Move to...
	* sysdeps/sparc/sparc32/sparcv9/multiarch/memset-niagara1.S: ...here.
	* sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memcpy.S: Move to...
	* sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-niagara2.S: ...here.
	* sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memset.S: Removed.
	* sysdeps/sparc/sparc64/multiarch/Makefile: New file.
	* sysdeps/sparc/sparc64/sparcv9v/memcpy.S: Move to...
	* sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S: ...here.
	* sysdeps/sparc/sparc64/sparcv9v2/memcpy.S: Move to...
	* sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S: ...here.
	* sysdeps/sparc/sparc64/sparcv9b/memcpy.S: Move to...
	* sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: ...here.
	* sysdeps/sparc/sparc64/sparcv9v/memset.S: Move to...
	* sysdeps/sparc/sparc64/multiarch/memset-niagara1.S: ...here.
	* sysdeps/sparc/sparc64/sparcv9v2/memset.S: Removed.
	* sysdeps/sparc/sparc64/multiarch/memcpy.S: New file.
	* sysdeps/sparc/sparc64/multiarch/memset.S: New file.
2010-02-25 23:58:51 -08:00
David S. Miller
e44f6f89da sparc: Pull bcopy/memmove out of memcpy.S implementations.
2010-02-25  David S. Miller  <davem@davemloft.net>

	* sysdeps/sparc/sparc32/bcopy.c: Delete.
	* sysdeps/sparc/sparc32/memmove.c: Delete.
	* sysdeps/sparc/sparc32/sparcv9/bcopy.c: Delete.
	* sysdeps/sparc/sparc32/sparcv9/memmove.c: Delete.
	* sysdeps/sparc/sparc64/bcopy.c: Delete.
	* sysdeps/sparc/sparc64/memmove.c: Delete.
	* sysdeps/sparc/sparc64/memcopy.h: New.
	* sysdeps/sparc/sparc32/memcpy.S (bcopy, memmove): Remove.
	* sysdeps/sparc/sparc64/memcpy.S (bcopy, memmove): Likewise.
	* sysdeps/sparc/sparc64/sparcv9b/memcpy.S (bcopy, memmove): Likewise.
	* sysdeps/sparc/sparc64/sparcv9v/memcpy.S (bcopy, memmove): Likewise.
	* sysdeps/sparc/sparc64/sparcv9v2/memcpy.S (bcopy, memmove): Likewise.
2010-02-25 23:58:50 -08:00
David S. Miller
5c866a8b9b Fix PLT rewrite when prelinking fails on 32-bit sparc.
When prelinking fails we have to rewrite the PLT, but the code
doing so forgets to adjust all rela->r_offset addresses by the
location of where the object was actually mapped.
2010-02-20 13:48:06 -08:00
David S. Miller
311927f1bd Sparc STT_GNU_IFUNC support 2010-02-10 07:42:17 -08:00