http://sourceware.org/ml/libc-alpha/2013-08/msg00092.html
Use conditional form of branch and link to avoid destroying the cpu
link stack used to predict blr return addresses.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S: Use
conditional form of branch and link when obtaining pc.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S: Likewise.
http://sourceware.org/ml/libc-alpha/2013-08/msg00091.html
More LE support, correcting word accesses to _dl_hwcap.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S: Use
HIWORD/LOWORD.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S: Ditto.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S: Ditto.
This patch introduces two new convenience functions to set the default
thread attributes used for creating threads. This allows a programmer
to set the default thread attributes just once in a process and then
run pthread_create without additional attributes.
This feature is specifically for the C++ compiler to offload calling
thread_local object destructors on thread program exit, to glibc.
This is to overcome the possible complication of destructors of
thread_local objects getting called after the DSO in which they're
defined is unloaded by the dynamic linker. The DSO is marked as
'unloadable' if it has a constructed thread_local object and marked as
'unloadable' again when all the constructed thread_local objects
defined in it are destroyed.
In order for the __kernel_get_tbfreq vDSO call to work the
INTERNAL_VSYSCALL_NCS macro needed to be updated to prevent it from
assuming an integer return type (since the timebase frequency is a 64-bit
value) by specifying the type of the return type as a macro parameter. The
macro then specifically declares the return value as a 'register' (or
implied pair) of the denoted type. The compiler is then informed that this
register (or implied pair) is to be used for the return value.
* Makerules (%.abilist): Add vpath on sysdep_dirs.
(check-abi-%): Remove AWK script prerequisite and explicit
abilist directory.
(check-abi): Rewrite to just diff the symlist with the abilist.
(config-tls, config-abi-config): Delete, no longer used.
(update-abi-%): Remove AWK script and explicit abilist directory.
(update-abi): Rewrite to simply compare and conditionally copy the
symlist and the sysdep abilist file. Remove update-abi-config
checks.
* abilist/ld.abilist: Remove.
* abilist/libBrokenLocale.abilist: Remove.
* abilist/libanl.abilist: Remove.
* abilist/libcrypt.abilist: Remove.
* abilist/libdl.abilist: Remove.
* abilist/librt.abilist: Remove.
* abilist/libthread_db.abilist: Remove.
* abilist/libutil.abilist: Remove.
* scripts/extract-abilist.awk: Remove.
* scripts/merge-abilist.awk: Remove.
* sysdeps/generic/libcidn.abilist: New file.
* sysdeps/generic/libnss_compat.abilist: New file.
* sysdeps/generic/libnss_db.abilist: New file.
* sysdeps/generic/libnss_dns.abilist: New file.
* sysdeps/generic/libnss_files.abilist: New file.
* sysdeps/generic/libnss_hesiod.abilist: New file.
* sysdeps/generic/libnss_nis.abilist: New file.
* sysdeps/generic/libnss_nisplus.abilist: New file.
* sysdeps/unix/sysv/linux/i386/nptl/ld.abilist: New file.
* sysdeps/unix/sysv/linux/i386/nptl/libanl.abilist: New file.
* sysdeps/unix/sysv/linux/i386/nptl/libBrokenLocale.abilist: New
file.
* sysdeps/unix/sysv/linux/i386/nptl/libc.abilist: New file.
* sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist: New file.
* sysdeps/unix/sysv/linux/i386/nptl/libdl.abilist: New file.
* sysdeps/unix/sysv/linux/i386/nptl/libm.abilist: New file.
* sysdeps/unix/sysv/linux/i386/nptl/libnsl.abilist: New file.
* sysdeps/unix/sysv/linux/i386/nptl/libpthread.abilist: New file.
* sysdeps/unix/sysv/linux/i386/nptl/libresolv.abilist: New file.
* sysdeps/unix/sysv/linux/i386/nptl/librt.abilist: New file.
* sysdeps/unix/sysv/linux/i386/nptl/libthread_db.abilist: New
file.
* sysdeps/unix/sysv/linux/i386/nptl/libutil.abilist: New file.
* sysdeps/unix/sysv/linux/x86_64/nptl/ld.abilist: New file.
* sysdeps/unix/sysv/linux/x86_64/nptl/libanl.abilist: New file.
* sysdeps/unix/sysv/linux/x86_64/nptl/libBrokenLocale.abilist: New
file.
* sysdeps/unix/sysv/linux/x86_64/nptl/libc.abilist: New file.
* sysdeps/unix/sysv/linux/x86_64/nptl/libcrypt.abilist: New file.
* sysdeps/unix/sysv/linux/x86_64/nptl/libdl.abilist: New file.
* sysdeps/unix/sysv/linux/x86_64/nptl/libm.abilist: New file.
* sysdeps/unix/sysv/linux/x86_64/nptl/libnsl.abilist: New file.
* sysdeps/unix/sysv/linux/x86_64/nptl/libpthread.abilist: New
file.
* sysdeps/unix/sysv/linux/x86_64/nptl/libresolv.abilist: New file.
* sysdeps/unix/sysv/linux/x86_64/nptl/librt.abilist: New file.
* sysdeps/unix/sysv/linux/x86_64/nptl/libthread_db.abilist: New
file.
* sysdeps/unix/sysv/linux/x86_64/nptl/libutil.abilist: New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/ld.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libanl.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libBrokenLocale.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libc.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libcrypt.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libdl.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libm.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libnsl.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libpthread.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libresolv.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/librt.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libthread_db.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libutil.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/ld.abilist: New
file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libanl.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libBrokenLocale.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist: New
file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libdl.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm.abilist: New
file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libnsl.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libpthread.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libresolv.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/librt.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libthread_db.abilist:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libutil.abilist:
New file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/ld.abilist: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libanl.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libBrokenLocale.abilist:
New file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libdl.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libm.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libnsl.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libpthread.abilist:
New file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libresolv.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/librt.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libthread_db.abilist:
New file.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libutil.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/ld.abilist: New file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libanl.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libBrokenLocale.abilist:
New file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libdl.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libm.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libnsl.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libpthread.abilist:
New file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libresolv.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/librt.abilist: New
file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libthread_db.abilist:
New file.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libutil.abilist: New
file.
* sysdeps/unix/sysv/linux/sh/nptl/ld.abilist: New file.
* sysdeps/unix/sysv/linux/sh/nptl/libanl.abilist: New file.
* sysdeps/unix/sysv/linux/sh/nptl/libBrokenLocale.abilist: New
file.
* sysdeps/unix/sysv/linux/sh/nptl/libc.abilist: New file.
* sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist: New file.
* sysdeps/unix/sysv/linux/sh/nptl/libdl.abilist: New file.
* sysdeps/unix/sysv/linux/sh/nptl/libm.abilist: New file.
* sysdeps/unix/sysv/linux/sh/nptl/libnsl.abilist: New file.
* sysdeps/unix/sysv/linux/sh/nptl/libpthread.abilist: New file.
* sysdeps/unix/sysv/linux/sh/nptl/libresolv.abilist: New file.
* sysdeps/unix/sysv/linux/sh/nptl/librt.abilist: New file.
* sysdeps/unix/sysv/linux/sh/nptl/libthread_db.abilist: New file.
* sysdeps/unix/sysv/linux/sh/nptl/libutil.abilist: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/ld.abilist: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libanl.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libBrokenLocale.abilist:
New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libdl.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libm.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libnsl.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libpthread.abilist:
New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libresolv.abilist:
New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/librt.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libthread_db.abilist:
New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libutil.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/ld.abilist: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libanl.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libBrokenLocale.abilist:
New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libdl.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libnsl.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libpthread.abilist:
New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libresolv.abilist:
New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/librt.abilist: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libthread_db.abilist:
New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libutil.abilist: New
file.
This patch tries to organize the implies files for ppc, since there are
a number of processors and most of them are compatible with each other
(backwards compatible).
Having in mind that we start the search for processor-specific files in
the sysdeps/unix/sysv/linux tree
(sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/[processor]/fpu to be
exact), we would like to grab any linux-specific code from that tree
prior to going through the other tree (sysdeps/powerpc/...).
For that, i removed the Implies files that were originally inside the
fpu directories and placed then in the non-fpu directories (still inside
the unix/sysv/linux tree). If no processor-specific/linux-specific files
could be found, we "imply" the other tree's (sysdeps/powerpc/...) fpu
directory for that specific processor AND also the non-fpu directory for
that same tree.
If, again, no processor-specific code is found, we read another Implies
file that will point to the most compatible processor that we should
grab code from, and so on, until we reach the power4 processor.
So, in summary, the Implies files will live inside these directories
now:
* sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/[processor]
* sysdeps/powerpc/powerpc[32|64]/[processor]
Practical example of the order we will use to pick power6-specific code
with the new structure.
sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/power6/fpu ->
sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/power6 ->
sysdeps/powerpc/powerpc[32|64]/power6/fpu ->
sysdeps/powerpc/powerpc[32|64]/power6 ->
sysdeps/powerpc/powerpc[32|64]/power5+/fpu ->
sysdeps/powerpc/powerpc[32|64]/power5+ ->
sysdeps/powerpc/powerpc[32|64]/power5/fpu ->
sysdeps/powerpc/powerpc[32|64]/power5 ->
sysdeps/powerpc/powerpc[32|64]/power4/fpu ->
sysdeps/powerpc/powerpc[32|64]/power4 (from here, it'll go to the
generic path as usual)
Due to alignment of 64bit parameters there is a dummy second argument.
But other than that the syscall arguments are directly mapped to the
function arguments.
Due to a pasto the fallocate64 interface, introduced in glibc 2.10,
isn't exported for 32-bit Linux platforms. It is too late for this
now so exported them for glibc 2.11.
2009-05-06 Ryan S. Arnold <rsa@us.ibm.com>
[BZ #10118]
* Makeconfig (+asflags): New variable based upon ASFLAG or
asflags-cpu.
(ASFLAGS): Add override to set ASFLAGS to +asflags.
* config.make.in (asflags-cpu): Add variable based upon
@libc_cv_cc_submachine@ to propagate -mcpu=CPU from --with-cpu=CPU to
the assembler.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/setcontext.S:
Remove unneeded file now that the assembler emits _ARCH_PWR6 and
recognizes power6 instruction set due to passing -mcpu=power6 from
--with-cpu=power6 when compiling .S files.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/swapcontext.S:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/setcontext.S:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/swapcontext.S:
Likewise.
2009-01-11 Ryan S. Arnold <rsa@us.ibm.com>
[BZ #9726]
* sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_SET_DI_FPSCR,
_SET_SI_FPSCR): Clobber fp0 to prevent erroneous test-case passes.
2009-01-08 Ryan S. Arnold <rsa@us.ibm.com>
[BZ #9726]
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
(__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
(__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0.
2008-11-13 Ryan S. Arnold <rsa@us.ibm.com>
[BZ #6411]
* sysdeps/powerpc/fpu/Makefile: Added test case tst-setcontext-fpscr.
* sysdeps/powerpc/fpu/feholdexcpt.c (_FPU_MASK_ALL): Define to replace
magic numbers.
* sysdeps/powerpc/fpu/fenv_libc.h (fesetenv_register): Dynamically
choose mtfsf insn based on PPC_FEATURE_HAS_DFP.
(relax_fenv_state): Same as above.
(FPSCR_29): Reserve bit in ISA 2.05.
(FPSCR_NI): Provide define for compat.
* sysdeps/powerpc/fpu/fesetenv.c (_FPU_MASK_ALL): Define to replace
magic numbers.
* sysdeps/powerpc/fpu/feupdateenv.c (_FPU_MASK_ALL): Define to replace
magic numbers.
* sysdeps/powerpc/fpu/tst-setcontext-fpscr.c: New file. Test case to
test setcontext and swapcontext with dynamic 64-bit FPSCR detection.
* sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S (__longjmp): Adjust
access to hwcap to account for hwcap size increase to uint64_t.
* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S (__sigsetjmp ):
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
(*setcontext): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/setcontext.S:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/swapcontext.S:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
(*setcontext): dynamically select mtfsf insn based on
PPC_FEATURE_HAS_DFP. Adjust access to hwcap to account for hwcap size
increase to uint64_t.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
(*swapcontext): dynamically select mtfsf insn based on
PPC_FEATURE_HAS_DFP. Adjust access to hwcap to account for hwcap size
increase to uint64_t.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/setcontext.S:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/swapcontext.S:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
(*setcontext): dynamically select mtfsf insn based on
PPC_FEATURE_HAS_DFP.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
(*swapcontext): dynamically select mtfsf insn based on
PPC_FEATURE_HAS_DFP.
__fe_nomask_env.
* sysdeps/powerpc/fpu/fe_nomask.c: Add libm_hidden_def.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: Likewise.
* sysdeps/powerpc/bits/fenv.h: Make safe for C++.
* sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: New file.
* sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Rename
function from fegetexcept and make old name weak alias.
* include/fenv.h: Declare __fegetexcept.
* sysdeps/powerpc/fpu/fedisblxcpt.c: Use __fegetexcept instead of
fegetexcept.
* sysdeps/powerpc/fpu/feenablxcpt.c: Likewise.
* sysdeps/powerpc/fpu/fraiseexcpt.c (__feraiseexcept): Avoid call
to fetestexcept.
* sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Use __frexpl
instead of frexpl to avoid local PLT.
* math/s_significandl.c (__significandl): Use __ilogbl instead of
ilogbl to avoid local PLT.
* sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Use __ldexpl
instead of ldexpl to avoid local PLT.
* sysdeps/ieee754/ldbl-128ibm/e_expl.c (__ieee754_expl): Use
__roundl not roundl to avoid local PLT.
* sysdeps/ieee754/ldbl-128/e_j0l.c: Use function names which avoid
local PLTs. Use __sincosl instead of separate sinl and cosl
calls.
* sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
Don't use CGOTSETUP and CGOTRESTORE macros.
(CGOTSETUP, CGOTRESTORE): Remove.
<IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
@local symbol.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S (__socket):
Don't use CGOTSETUP and CGOTRESTORE macros.
2007-08-05 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S (__socket):
Don't use CGOTSETUP and CGOTRESTORE macros.
* sysdeps/powerpc/powerpc32/power5/fpu/Implies: New file.
* sysdeps/powerpc/powerpc32/power5+/fpu/Implies: New file.
* sysdeps/powerpc/powerpc32/power6/fpu/Implies: New file.
* sysdeps/powerpc/powerpc32/power6x/fpu/Implies: New file.
* sysdeps/powerpc/powerpc64/970/fpu/Implies: New file.
* sysdeps/powerpc/powerpc64/power5/fpu/Implies: New file.
* sysdeps/powerpc/powerpc64/power5+/fpu/Implies: New file.
* sysdeps/powerpc/powerpc64/power6/fpu/Implies: New file.
* sysdeps/powerpc/powerpc64/power6x/fpu/Implies: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/970/fpu/Implies: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power4/fpu/Implies:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power5/fpu/Implies:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power5+/fpu/Implies:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/Implies:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6x/fpu/Implies:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/970/fpu/Implies: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power4/fpu/Implies:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power5/fpu/Implies:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power5+/fpu/Implies:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/Implies:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power6x/fpu/Implies:
New file.
2007-05-31 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S: Move.
* sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S: To here.
* sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrintf.S: Move.
* sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S: To here.
* sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llround.S: Move.
* sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S: To here.
* sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llroundf.S: Move.
* sysdeps/powerpc/powerpc32/power4/fpu/s_llroundf.S: To here.
2007-05-22 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S
(LONG_DOUBLE_COMPAT): Specify correct version, GLIBC_2_1.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S
(LONG_DOUBLE_COMPAT): Specify correct version, GLIBC_2_1.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S
(LONG_DOUBLE_COMPAT): Specify correct version, GLIBC_2_1.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S
(LONG_DOUBLE_COMPAT): Specify correct version, GLIBC_2_1.
2007-05-21 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power4/fpu/slowexp.c: New file.
* sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt.c: New file.
* sysdeps/powerpc/powerpc64/power4/fpu/slowexp.c: New file.
* sysdeps/powerpc/powerpc64/power4/fpu/w_sqrt.c: New file.
2007-03-15 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S
[LONG_DOUBLE_COMPAT]: Add compat_symbol for llrintl@@GLIBC_2_1.
2006-02-13 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S: New File
* sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S: New File
* sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S: New File
* sysdeps/powerpc/powerpc32/power6/fpu/s_llroundf.S: New File
2006-10-20 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power4/fpu/slowpow.c: New file.
* sysdeps/powerpc/powerpc64/power4/fpu/slowpow.c: New file.
2006-10-03 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llround.S: New file.
* sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llroundf.S: New file.
* sysdeps/powerpc/powerpc32/powerpc64/fpu/Makefile: Moved.
* sysdeps/powerpc/powerpc32/powerpc64/fpu/mpa.c: Likewise.
* sysdeps/powerpc/powerpc32/power4/fpu/Makefile: To here.
* sysdeps/powerpc/powerpc32/power4/fpu/mpa.c: Likewise.
2006-09-29 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S: New file.
* sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S: New file.
* sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S: New file.
* sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S: New file.
2006-09-28 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S: New file.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_llroundf.S: New file.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S: New file.
* sysdeps/powerpc/powerpc32/power6x/fpu/Implies: New file.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S: New file.
* sysdeps/powerpc/powerpc64/power6x/fpu/Implies: New file.
2006-08-31 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/powerpc64/fpu/Makefile: New file.
* sysdeps/powerpc/powerpc32/powerpc64/fpu/mpa.c: New file.
* sysdeps/powerpc/powerpc64/power4/fpu/Makefile: New file.
* sysdeps/powerpc/powerpc64/power4/fpu/mpa.c: New file.
2006-06-15 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S: New file.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_ceilf.S: New file.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S: New file.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_floorf.S: New file.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S: New file.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_roundf.S: New file.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S: New file.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_truncf.S: New file.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S: New file.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S: New file.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S: New file.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S: New file.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S: New file.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S: New file.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S: New file.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S: New file.
2006-03-20 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S: New file.
* sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrintf.S: New file.
2007-06-01 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power6/memset.S: New file.
* sysdeps/powerpc/powerpc64/power6/memset.S: New file.
2007-05-31 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/970/Implies: New file.
* sysdeps/powerpc/powerpc32/power5/Implies: New file.
* sysdeps/powerpc/powerpc32/power5+/Implies: New file.
* sysdeps/powerpc/powerpc32/power6/Implies: New file.
* sysdeps/powerpc/powerpc32/power6x/Implies: New file.
* sysdeps/powerpc/powerpc64/970/Implies: New file.
* sysdeps/powerpc/powerpc64/power5/Implies: New file.
* sysdeps/powerpc/powerpc64/power5+/Implies: New file.
* sysdeps/powerpc/powerpc64/power6/Implies: New file.
* sysdeps/powerpc/powerpc64/power6x/Implies: New file.
2007-05-21 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power4/memset.S: New file
2007-03-13 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc64/memcpy.S: Improve aligned loop to minimize
branch miss-predicts. Ensure that cache line crossing does not impact
dispatch grouping.
2006-12-13 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc64/power4/memcopy.h: Replace with include
"../../powerpc32/power4/memcopy.h".
* sysdeps/powerpc/powerpc64/power4/wordcopy.c: Replace with include
"../../powerpc32/power4/wordcopy.c".
2006-10-03 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/powerpc64/Makefile: Moved.
* sysdeps/powerpc/powerpc32/powerpc64/memcopy.h: Likewise.
* sysdeps/powerpc/powerpc32/powerpc64/wordcopy.c: Likewise.
* sysdeps/powerpc/powerpc32/power4/Makefile: To here.
* sysdeps/powerpc/powerpc32/power4/memcopy.h: Likewise.
* sysdeps/powerpc/powerpc32/power4/wordcopy.c: Likewise.
2006-09-10 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power6/memcpy.S: New file.
2006-08-31 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power6/wordcopy.c: New file.
* sysdeps/powerpc/powerpc32/powerpc64/Makefile: New file.
* sysdeps/powerpc/powerpc32/powerpc64/memcopy.h: New file.
* sysdeps/powerpc/powerpc32/powerpc64/wordcopy.c: New file.
* sysdeps/powerpc/powerpc64/power4/Makefile: New file.
* sysdeps/powerpc/powerpc64/power4/memcopy.h: New file.
* sysdeps/powerpc/powerpc64/power4/wordcopy.c: New file.
* sysdeps/powerpc/powerpc64/power6/wordcopy.c: New file.
2006-07-06 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc64/power6/memcpy.S: New file.
2006-03-20 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/power4/memcmp.S: New file.
* sysdeps/powerpc/powerpc32/power4/memcpy.S: New file.
* sysdeps/powerpc/powerpc32/power4/memset.S: New file.
* sysdeps/powerpc/powerpc32/power4/strncmp.S: New file.
* sysdeps/powerpc/powerpc64/power4/memcmp.S: New file.
* sysdeps/powerpc/powerpc64/power4/memcpy.S: New file.
* sysdeps/powerpc/powerpc64/power4/strncmp.S: New file.
Peter Bergner <bergner@us.ibm.com>
* sysdeps/powerpc/bits/fenv.h: Declare __fe_mask_env extern.
Define FE_NOMASK_ENV as FE_EANBLED_ENV. Define FE_MASK_ENV.
* sysdeps/powerpc/fpu/Makefile: Add fe_mask to libm-support.
* sysdeps/powerpc/fpu/fe_mask.c: New file.
* sysdeps/powerpc/fpu/fe_nomask.c: Correct comment.
* sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept):
Call __fe_mask_env() if all FP exceptions disabled.
* sysdeps/powerpc/fpu/feholdexcpt.c (feholdexcept): Copy high 32-bits
from old FPSCR to new fenv to propagate DFP rounding modes.
Call __fe_mask_env() if FP exceptions previously enabled.
* sysdeps/powerpc/fpu/fesetenv.c (fesetenv): Change mask to merge
exceptions from env. Use __fe_nomask_env() or __fe_mask_env() when
transitioning from all exceptions disabled to any exception enabled
or visa versa.
* sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Change mask to
merge exceptions from env. Call __fe_nomask_env or __fe_mask_env
when transitioning from all exceptions disabled to any exception
enabled or visa versa.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fe_nomask.c: Moved to...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: ...here.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c: Moved to...
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: ...here.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c: New file.
of non-volatile floating-point registers to the stack (fp14-fp31).
* sysdeps/powerpc/powerpc32/gprsave0.S: Add cfi_offset for spilling of
non-volatile general-purpose registers to the stack (gpr13-gpr31).
* sysdeps/powerpc/powerpc64/dl-trampoline.S: Add cfi_offset
for non-volatiles gpr30 - grp31 spilled to the stack.
* sysdeps/powerpc/powerpc64/memcpy.S: Add cfi_offset for non-volatile
gpr31 spill to the stack.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S:
Add cfi_offset for non-volatile gpr31 spill to the stack.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Add cfi_offset
for non-volatiles gpr28 - grp31 spilled to the stack.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S: Add
cfi_adjust_cfa_offset when a frame is stacked.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S:
(__novec_setcontext) : Add cfi_offset for non-volatile gpr31 spill
add LR saved to the stack. Add cfi_adjust_cfa_offset when frame is
stacked.
(__setcontext) : Add cfi_offset for non-volatile gpr31 spill to
the stack.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S:
(__novec_swapcontext) : Add cfi_offset for non-volatile gpr31 spill
add LR saved to the stack.
(__swapcontext) : Add cfi_offset for non-volatile gpr31 spill add LR
saved to the stack. Add cfi_adjust_cfa_offset when frame is stacked.
Jakub Jelinek <jakub@redhat.com>
Roland McGrath <roland@redhat.com>
Steven Munroe <sjmunroe@us.ibm.com>
Alan Modra <amodra@bigpond.net.au>
* sysdeps/powerpc/powerpc64/fpu/s_truncf.S: Comment fix.
* sysdeps/powerpc/powerpc32/fpu/s_truncf.S: Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_llroundf.S: Likewise.
* sysdeps/powerpc/fpu/libm-test-ulps: Update.
* math/libm-test.inc (check_float_internal): Allow ulp <= 0.5.
(erfc_test): Don't run erfcl (27.0L) test if erfcl (27.0L) is
denormal.
[TEST_LDOUBLE] (ceil_test, floor_test, llrint_test, llround_test,
rint_test, round_test, trunc_test): Add new tests.
* sysdeps/powerpc/powerpc32/fpu/s_copysignl.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_fabs.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_fabsl.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_fdim.c: New file.
* sysdeps/powerpc/powerpc32/fpu/s_fmax.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_fmin.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_isnan.c: New file.
* sysdeps/powerpc/powerpc64/fpu/s_ceill.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_copysignl.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_fabs.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_fabsl.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_fdim.c: New file.
* sysdeps/powerpc/powerpc64/fpu/s_floorl.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_fmax.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_fmin.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_isnan.c: New file.
* sysdeps/powerpc/powerpc64/fpu/s_llrintl.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_llroundl.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_lrintl.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_lroundl.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_nearbyintl.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_rintl.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_roundl.S: New file.
* sysdeps/powerpc/powerpc64/fpu/s_truncl.S: New file.
* sysdeps/unix/sysv/linux/powerpc/Implies: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/Implies: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/Implies: New file.
* sysdeps/unix/sysv/linux/powerpc/configure.in: New file.
* sysdeps/unix/sysv/linux/powerpc/configure: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h
(__LONG_DOUBLE_MATH_OPTIONAL): Define.
(__NO_LONG_DOUBLE_MATH): Define.
* sysdeps/unix/sysv/linux/powerpc/nldbl-abi.h: New file.
* sysdeps/powerpc/fpu/s_isnan.c: Include math_ldbl_opt.h.
* sysdeps/powerpc/powerpc64/fpu/s_ceil.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (ceill): Add compatibility symbols.
* sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (copysignl): Add compatibility symbols.
* sysdeps/powerpc/powerpc64/fpu/s_floor.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (floorl): Add compatibility symbols.
* sysdeps/powerpc/powerpc64/fpu/s_llrint.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (llrintl, lrintl): Add compatibility symbols.
* sysdeps/powerpc/powerpc64/fpu/s_llround.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (llroundl, lroundl): Add compatibility symbols.
* sysdeps/powerpc/powerpc64/fpu/s_rint.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (rintl): Add compatibility symbols.
* sysdeps/powerpc/powerpc64/fpu/s_round.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (roundl): Add compatibility symbols.
* sysdeps/powerpc/powerpc64/fpu/s_trunc.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (truncl): Add compatibility symbols.
* sysdeps/powerpc/powerpc32/fpu/s_ceil.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (ceill): Add compatibility symbols.
* sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (copysignl): Add compatibility symbols.
* sysdeps/powerpc/powerpc32/fpu/s_floor.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (floorl): Add compatibility symbols.
* sysdeps/powerpc/powerpc32/fpu/s_lrint.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (lrintl): Add compatibility symbols.
* sysdeps/powerpc/powerpc32/fpu/s_llrint.c: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (llrintl): Add compatibility symbols.
* sysdeps/powerpc/powerpc32/fpu/s_lround.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (lroundl): Add compatibility symbols.
* sysdeps/powerpc/powerpc32/fpu/s_rint.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (rintl): Add compatibility symbols.
* sysdeps/powerpc/powerpc32/fpu/s_round.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (roundl): Add compatibility symbols.
* sysdeps/powerpc/powerpc32/fpu/s_trunc.S: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (truncl): Add compatibility symbols.
* misc/qefgcvt_r.c [LDBL_MIN_10_EXP == -291] (FLOAT_MIN_10_NORM): New.
* sysdeps/powerpc/fpu/bits/mathdef.h (__NO_LONG_DOUBLE_MATH): Remove.
* sysdeps/powerpc/Implies: Add ieee754/ldbl-128ibm.
* sysdeps/powerpc/powerpc32/Implies: Remove powerpc/soft-fp.
* sysdeps/ieee754/ldbl-128ibm/Makefile: New file.
* sysdeps/ieee754/ldbl-128ibm/e_acoshl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_acosl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_asinl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_atan2l.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_atanhl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_coshl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_expl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_fmodl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_hypotl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_j0l.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_j1l.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_jnl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_log10l.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_log2l.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_logl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_powl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_remainderl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_sinhl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/ieee754.h: New file.
* sysdeps/ieee754/ldbl-128ibm/k_cosl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/k_sincosl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/k_sinl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/k_tanl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c: New file.
* sysdeps/ieee754/ldbl-128ibm/math_ldbl.h: New file.
* sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/printf_fphex.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_atanl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_cosl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_erfl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_expm1l.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_fabsl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_finitel.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_frexpl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_ilogbl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_isinfl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_isnanl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_log1pl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_logbl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_modfl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_remquol.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_rintl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_signbitl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_sincosl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_sinl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_tanhl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_tanl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_truncl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/strtold_l.c: New file.
* sysdeps/ieee754/ldbl-128ibm/t_sincosl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/w_expl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_copysignl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_floorl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_llrintl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_llroundl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_roundl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_ceill.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_lrintl.c: New file.
* sysdeps/ieee754/ldbl-128ibm/s_lroundl.c: New file.
* sysdeps/ieee754/ldbl-128/e_powl.c: Fix old comment.
directive to ENTRY macros.
(END): Add cfi_endproc directive to END macro.
* sysdeps/powerpc/powerpc64/sysdep.h (ENTRY, EALIGN): Add cfi_startproc
directive to ENTRY macros.
(END, END_GEN_TB): Add cfi_endproc directive to END macros.
* sysdeps/powerpc/powerpc32/dl-start.S: Remove ENTRY()s for
_dl_start_user and _dl_main_dispatch.
* sysdeps/powerpc/powerpc32/fpu/fprrest.S: Use END macro.
* sysdeps/powerpc/powerpc32/fpu/fprsave.S: Use Likewise.
* sysdeps/powerpc/powerpc32/gprrest0.S: Likewise.
* sysdeps/powerpc/powerpc32/gprrest1.S: Likewise.
* sysdeps/powerpc/powerpc32/gprsave0.S: Likewise.
* sysdeps/powerpc/powerpc32/gprsave1.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S: Remove redundant
cfi_startproc and cfi_endproc.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/socket.S: Likewise.
2006-01-04 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/aio_misc.h (struct waitlist): Add result member.
* sysdeps/pthread/aio_notify.c (__aio_notify): For synchronous waiters,
failed I/O, and a result pointer, set value to -1.
* sysdeps/pthread/aio_suspend.c: Initialize result pointer to NULL.
* sysdeps/pthread/lio_listio.c: For LIO_WAIT, point result pointer in
wait list to local variable result. If nonzero afterwards, set errno
to EIO. For LIO_NOWAIT set result to NULL.
* rt/Makefile (tests): Add tst-aio8.
* rt/tst-aio8.c: New file.
value doesn't survive in a registers when the function returns.
* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise.
* sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise.
2005-12-30 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Define
PTR_MANGLE2.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Define
PTR_MANGLE2 and PTR_DEMANGLE2.
* sysdeps/powerpc/powerpc64/__longjmp-common.S: Use PTR_DEMANGLE2.
* sysdeps/powerpc/powerpc64/setjmp-common.S: Use PTR_MANGLE2.
* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise.
* sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise.
2005-12-30 Ulrich Drepper <drepper@redhat.com>
Tom Gall <tom_gall@vnet.ibm.com>
* elf/rtld.c (dl_main): Initialize l_local_scope for sysinfo_map.
* sysdeps/powerpc/elf/libc-start.c: Move this...
* sysdeps/unix/sysv/linux/powerpc/libc-start.c: ...to here.
* sysdeps/powerpc/powerpc32/dl-start.S: Add _dl_main_dispatch label.
* sysdeps/powerpc/powerpc32/hp-timing.h: New file.
* sysdeps/unix/sysv/linux/powerpc/Versions: New file.
* sysdeps/unix/sysv/linux/clock_getres.c: If HAVE_CLOCK_GETRES_VSYSCALL
is not defined, redefine INTERNAL_VSYSCALL and INLINE_VSYSCALL to
INTERNAL_SYSCALL and INLINE_SYSCALL respectively. Otherwise include
<bits/libc-vdso.h>. Use INLINE_VSYSCALL and INTERNAL_SYSCALL instead
of the normal versions throughout the code.
* sysdeps/unix/sysv/linux/clock_gettime.c: Likewise if
HAVE_CLOCK_GETTIME_VSYSCALL is defined.
* sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h: New file.
* sysdeps/unix/sysv/linux/powerpc/dl-vdso.c: New file.
* sysdeps/unix/sysv/linux/powerpc/dl-vdso.h: New file.
* sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c: Use vDSO.
* sysdeps/unix/sysv/linux/powerpc/gettimeofday.c: New file.
* sysdeps/unix/sysv/linux/powerpc/Makefile: Add dl-vdso to routines.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Define
INLINE_VSYSCALL, INTERNAL_VSYSCALL, INTERNAL_SYSCALL_NCS,
INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK, HAVE_CLOCK_GETRES_VSYSCALL,
and HAVE_CLOCK_GETTIME_VSYSCALL.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise.
Move common function to...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S:
Move common function to...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S:
Move common function to...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S:
New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym
(_FRAME_BACKCHAIN, _FRAME_LR_SAVE, _FRAME_PARM_SAVE1,
_FRAME_PARM_SAVE2, _FRAME_PARM_SAVE3, _FRAME_PARM_SAVE4):
Remove unrelated stack frame defines.
fchownat, and unlinkat.
(static-only-routines): Add fstatat and fstatat64.
(tests): Add tst-unlinkat, tst-fstatat, tst-futimesat, tst-renameat,
and tst-fchownat.
* io/Versions [GLIBC_2.4]: Add fchownat, __fxstatat, __fxstatat64,
and unlinkat.
* io/fcntl.h: Define AT_FDCWD, AT_SYMLINK_NOFOLLOW, and AT_REMOVEDIR.
* io/fstatat.c: New file.
* io/fstatat64.c: New file.
* io/sys/stat.h: Declare fstatat, fstatat64, __fxstatat, __fxstatat64
and define fstatat and fstatat64 inline functions.
* libio/stdio.h: Declare renameat.
* misc/Makefile (routines): Add futimesat.
* misc/Versions [GLIBC_2.4]: Add futimesat.
* posix/unistd.h: Declare fchownat and unlinkat.
* stdio-common/Makefile (routines): Add renameat.
* stdio-common/Versions [GLIBC_2.4]: Add renameat.
* sysdeps/generic/fchownat.c: New file.
* sysdeps/generic/futimesat.c: New file.
* sysdeps/generic/fxstatat.c: New file.
* sysdeps/generic/fxstatat64.c: New file.
* sysdeps/generic/renameat.c: New file.
* sysdeps/generic/unlinkat.c: New file.
* sysdeps/unix/sysv/linux/fchownat.c: New file.
* sysdeps/unix/sysv/linux/futimesat.c: New file.
* sysdeps/unix/sysv/linux/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/fxstatat64.c: New file.
* sysdeps/unix/sysv/linux/renameat.c: New file.
* sysdeps/unix/sysv/linux/unlinkat.c: New file.
* sysdeps/unix/sysv/linux/alpha/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/i386/fchownat.c: New file.
* sysdeps/unix/sysv/linux/i386/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/m68k/fchownat.c: New file.
* sysdeps/unix/sysv/linux/m68k/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/powerpc/fchownat.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/sh/fchownat.c: New file.
* sysdeps/unix/sysv/linux/sh/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/fchownat.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/fxstatat64.c: New file.
* time/sys/time.h: Declare futimesat.
* include/fcntl.h: Declare __atfct_seterrno.
* sysdeps/unix/sysv/linux/openat.c (__atfct_seterrno): New function.
Split out from openat code and called.
(do_test): Allow openat to fail with ENOSYS. Handle AT_FDCWD.
* sysdeps/generic/openat.c: Handle AT_FDCWD.
* sysdeps/generic/openat64.c: Likewise.
* io/tst-unlinkat.c: New file.
* io/tst-fstatat.c: New file.
* io/tst-futimesat.c: New file.
* io/tst-renameat.c: New file.
* io/tst-fchownat.c: New file.
* io/tst-openat.c: Don't fail if openat is not implemented.
* sysdeps/unix/sysv/linux/powerpc/chown.c: Don't provide backward
compatibility code if new kernel is guaranteed.
* time/sys/time.h: Add a few nonnull attributes.
implicitly used memcpy.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
(truncate64): Use __truncate, not truncate.
(__have_no_truncate64): Renamed from have_no_truncate64.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c
(__have_no_truncate64): Renamed from have_no_truncate64.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Correct stack
alignment. Clean up flag bit tests.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Correct stack
alignment. Clean up flag bit tests. Remove redundent SP assignment.
Add TOC register save/restore around function call.