* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Add vis3
trunc{,f} to libm-sysdep_routes.
* sysdeps/sparc/sparc64/fpu/multiarch/Makefile: Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_trunc-vis3.S: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_trunc.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_truncf-vis3.S: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_truncf.S: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_trunc.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_truncf.S: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.S: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.S: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.S: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.S: New file.
* sysdeps/sparc/sparc64/fpu/s_trunc.S: New file.
* sysdeps/sparc/sparc64/fpu/s_truncf.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Add vis3
nearbyint{,f} to libm-sysdep_routes.
* sysdeps/sparc/sparc64/fpu/multiarch/Makefile: Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S:
New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.S: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S:
New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.S: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S: New
file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.S: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S: New
file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.S: New file.
* sysdeps/sparc/sparc64/fpu/s_nearbyint.S: New file.
* sysdeps/sparc/sparc64/fpu/s_nearbyintf.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Add vis3
fdim/fdimf to libm-sysdep_routines.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S: New file.
* sysdeps/sparc/sparc32/fpu/s_fdim.S: New file.
* sysdeps/sparc/sparc32/fpu/s_fdimf.S: New file.
* sysdeps/sparc/sparc64/fpu/s_fdim.S: New file.
* sysdeps/sparc/sparc64/fpu/s_fdimf.S: New file.
* math/Makefile: Recognize gmp-sysdep_routines.
* sysdeps/sparc/sparc64/multiarch/Makefile: Add VIS3 optimized GMP routines
to sysdeps.
* sysdeps/sparc/sparc64/multiarch/add_n-vis3.S: New file.
* sysdeps/sparc/sparc64/multiarch/add_n.S: New file.
* sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S: New file.
* sysdeps/sparc/sparc64/multiarch/addmul_1.S: New file.
* sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S: New file.
* sysdeps/sparc/sparc64/multiarch/mul_1.S: New file.
* sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S: New file.
* sysdeps/sparc/sparc64/multiarch/sub_n.S: New file.
* sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S: New file.
* sysdeps/sparc/sparc64/multiarch/submul_1.S: New file.
* sysdeps/sparc/sparc32/sparcv9/mul_1.S: Properly optimize for 32-bit
sparc V9 rather than using V8 code.
* sysdeps/sparc/sparc32/sparcv9/addmul_1.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/submul_1.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/mul_1.S: Properly optimize for 32-bit
sparc V9 rather than using V8 code.
* sysdeps/sparc/sparc32/sparcv9/addmul_1.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/submul_1.S: Likewise.
With help from Joseph Myers.
* sysdeps/ieee754/ldbl-128/s_atanl.c (__atanl): Handle tiny and
very large arguments properly.
* math/libm-test.inc (atan_test): New tests.
(atan2_test): New tests.
* sysdeps/sparc/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
With help from Joseph Myers.
* sysdeps/ieee754/flt-32/e_j0f.c (__ieee754_y0f): Adjust tinyness
cutoff to 2**-13.
* sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_y1f): Adjust tinyness
cutoff to 2**-25.
* sysdeps/ieee754/ldbl-128/e_j0l.c (U0): New constant.
( __ieee754_y0l): Avoid arithmetic underflow when 'x' is very
small.
* sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_y1l): Likewise.
* math/libm-test.inc (y0_test): New tests.
(y1_test): New tests.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
* sysdeps/sparc/fpu/libm-test-ulps: Update.
* crypt/Makefile: Move test targets after toplevel Rules
inclusion. Grab any necessary sysdep routines when linking.
* crypt/md5.c (md5_process_block): Remove define, we will always
name it __md5_process_block.
(md5_finish_ctx): Update md5_process_block call.
(md5_stream): Likewise.
(md5_process_bytes): Likewise.
(md5_process_block): Rename to __md5_process_block and move to ...
* crypt/md5-block.c: ... here.
* crypt/sha256.c (sha256_process_block): Move to ...
* crypt/sha256-block.c: ... here.
* crypt/sha512.c (sha512_process_block): Move to ...
* crypt/sha512-block.c: ... here.
* locale/Makefile (CFLAGS-md5.c): Define to add crypt/ to include
path.
* sysdeps/sparc/sparc-ifunc.c (sparc_libc_ifunc): Define.
* sysdeps/sparc/sparc64/multiarch/Makefile
(libcrypt-sysdep_routines): Add crypto assembler sysdeps when in
crypt subdir.
(localedef-aux): Add md5 crypto assembler when in locale subdir.
* sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile: Mirror sparc64
multiarch changes.
* sysdeps/sparc/sparc64/multiarch/md5-block.c: New file.
* sysdeps/sparc/sparc64/multiarch/md5-crop.S: New file.
* sysdeps/sparc/sparc64/multiarch/sha256-block.c: New file.
* sysdeps/sparc/sparc64/multiarch/sha256-crop.S: New file.
* sysdeps/sparc/sparc64/multiarch/sha512-block.c: New file.
* sysdeps/sparc/sparc64/multiarch/sha512-crop.S: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/md5-block.c: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/md5-crop.S: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-block.c: New
file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-crop.S: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-block.c: New
file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-crop.S: New file.
* sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S: On 32-bit, clear
upper 32-bits of the length value in %o2 since we use branch-on-register
tests which consider the entire 64-bit register.
* sysdeps/sparc/sparc64/multiarch/memset-niagara4.S: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/memset-niagara4.S: New
file.
* sysdeps/sparc/sparc64/multiarch/Makefile: Add to
sysdep_routines.
* sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile: Likewise.
* sysdeps/sparc/sparc64/multiarch/memset.S: Use Niagara-4 memset
and bzero when HWCAP_SPARC_CRYPTO is present.
* sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-niagara4.S: New
file.
* sysdeps/sparc/sparc64/multiarch/Makefile: Add to
sysdep_routines.
* sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile: Likewise.
* sysdeps/sparc/sparc64/multiarch/memcpy.S: Use Niagara-4 memcpy
and mempcpy when HWCAP_SPARC_CRYPTO is set.
[BZ #14376]
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Do not
pass reloc->r_addend in as the 'high' argument to
sparc64_fixup_plt when handling R_SPARC_JMP_IREL relocations.
* sysdeps/sparc/sparc32/sparcv9/addmul_1.S: New file.
* sysdeps/sparc/sparc32/sparcv9/submul_1.S: New file.
* sysdeps/sparc/sparc32/sparcv9/mul_1.S: New file.
The original runtime linker auditing interface described
by Solaris allows the 5th argument of la_pltenter() to be
modified. This patch cleans up the ldsodefs.h definitions
such that the 5th argument is not constant.
At one point the 5th argument *was* constant but this was
changed with commit 2413fdba7a.
This patch updates alpha, ia64, mips, sh and sparc with similar
changes.
fmovd clears the current exception field in the %fsr, fsrc2
does not and therefore runs more efficiently on some cpus.
* sysdeps/sparc/sparc64/memcpy.S: Use fsrc2 to move 64-bit
values between float registers.
* sysdeps/sparc/sparc64/memset.S: Likewise.
* sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S: Likewise.
* sysdeps/sparc/sparc32/soft-fp/q_util.c
(___Q_simulate_exceptions): Use real FP ops rather than writing
into the %fsr.
* sysdeps/sparc/sparc32/soft-fp/q_util.c (__Qp_handle_exceptions):
Likewise.
* soft-fp/soft-fp.h (FP_CUR_EXCEPTIONS): Define.
(FP_TRAPPING_EXCEPTIONS): Provide default implementation.
* sysdeps/sparc/sparc32/soft-fp/sfp-machine.h
(FP_TRAPPING_EXCEPTIONS): Define.
* sysdeps/sparc/sparc64/soft-fp/sfp-machine.h
(FP_TRAPPING_EXCEPTIONS): Define.
* soft-fp/op-common.h (_FP_PACK_SEMIRAW): Signal underflow for
subnormals only when inexact has been signalled or underflow
exceptions are enabled.
(_FP_PACK_CANONICAL): Likewise.
* sysdeps/sparc/sparc32/bits/atomic.h: Include sysdep.h to get
HWCAP_* values only after the memory barriers have been defined.
(atomic_full_barrier): Define.
(atomic_read_barrier): Define.
(atomic_write_barrier): Define.
[BZ# 6794]
* sysdeps/ieee754/ldbl-96/s_ilogbl.c: Moved to ...
* sysdeps/ieee754/ldbl-96/e_ilogbl.c: ... here.
Rename __ilogbl to __ieee754_ilogbl and remove weak_alias.
* sysdeps/ieee754/ldbl-128/s_ilogbl.c: Moved to ...
* sysdeps/ieee754/ldbl-128/e_ilogbl.c: ... here.
Rename __ilogbl to __ieee754_ilogbl and remove weak_alias.
* sysdeps/ieee754/ldbl-64-128/s_ilogbl.c: Moved to ...
* sysdeps/ieee754/ldbl-64-128/e_ilogbl.c: ... here.
* sysdeps/sparc/sparc64/soft-fp/s_ilogbl.c: Moved to ...
* sysdeps/sparc/sparc64/soft-fp/e_ilogbl.c: ... here.
Rename __ilogbl to __ieee754_ilogbl and remove weak_alias.
* sysdeps/sparc/sparc64/multiarch/memcpy.S: Provide a hidden def to
the IFUNC routine in the libc case.
* sysdeps/sparc/sparc64/multiarch/memcpy.S: Likewise.
* 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.
* sysdeps/sparc/Makefile: Add -fPIC to ASFLAGS-.os here....
* sysdeps/sparc/sparc32/Makefile: rather than here...
* sysdeps/sparc/sparc64/Makefile: and here.
* 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.
* 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.
* 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.
* sysdeps/sparc/sparc64/fpu/s_copysign.S (__copysign): Use fzeros/fnegs
to load 0x80000000 into a float register instead of using the stack.
* sysdeps/sparc/sparc64/fpu/s_copysignf.S (__copysignf): Likewise.
* 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.
* 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.
* sysdeps/sparc/sparc64/fpu/s_finite.S: New file.
* sysdeps/sparc/sparc64/fpu/s_finitef.S: New file.
* sysdeps/sparc/sparc64/fpu/s_isinf.S: New file.
* sysdeps/sparc/sparc64/fpu/s_isinff.S: New file.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* config.h.in (HAVE_BINUTILS_GOTDATA): New.
(HAVE_GCC_GOTDATA): New.
* sysdeps/sparc/elf/configure.in: Test for GOTDATA
relocation support in both binutils and gcc.
* sysdeps/sparc/elf/configure: Regenerate.
* sysdeps/unix/sparc/sysdep.h (SPARC_PIC_THUNK): New macro.
(SETUP_PIC_REG): Use SPARC_PIC_THUNK and don't save and restore
%o7 across the call.
(SETUP_PIC_REG_LEAF): Do %o7 save/restore in this new macro
instead.
* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Use
SETUP_PIC_REG_LEAF.
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
* sysdeps/sparc/crti.S: Use SETUP_PIC_REG.
* sysdeps/sparc/crtn.S: Likewise.
/
* 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
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.