summaryrefslogtreecommitdiff
path: root/sysdeps/mips
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/mips')
-rw-r--r--sysdeps/mips/Makefile6
-rw-r--r--sysdeps/mips/__longjmp.c2
-rw-r--r--sysdeps/mips/add_n.S2
-rw-r--r--sysdeps/mips/addmul_1.S2
-rw-r--r--sysdeps/mips/atomic-machine.h (renamed from sysdeps/mips/bits/atomic.h)37
-rw-r--r--sysdeps/mips/bits/dlfcn.h2
-rw-r--r--sysdeps/mips/bits/fenv.h2
-rw-r--r--sysdeps/mips/bits/ipctypes.h2
-rw-r--r--sysdeps/mips/bits/link.h2
-rw-r--r--sysdeps/mips/bits/mathdef.h2
-rw-r--r--sysdeps/mips/bits/nan.h2
-rw-r--r--sysdeps/mips/bits/setjmp.h2
-rw-r--r--sysdeps/mips/bits/wordsize.h2
-rw-r--r--sysdeps/mips/bsd-_setjmp.S2
-rw-r--r--sysdeps/mips/bsd-setjmp.S2
-rw-r--r--sysdeps/mips/dl-dtprocnum.h2
-rw-r--r--sysdeps/mips/dl-machine-reject-phdr.h2
-rw-r--r--sysdeps/mips/dl-machine.h6
-rw-r--r--sysdeps/mips/dl-procinfo.c2
-rw-r--r--sysdeps/mips/dl-procinfo.h2
-rw-r--r--sysdeps/mips/dl-tls.h2
-rw-r--r--sysdeps/mips/dl-trampoline.c2
-rw-r--r--sysdeps/mips/fpregdef.h2
-rw-r--r--sysdeps/mips/fpu/e_sqrt.c2
-rw-r--r--sysdeps/mips/fpu/e_sqrtf.c2
-rw-r--r--sysdeps/mips/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/mips/fpu/fedisblxcpt.c2
-rw-r--r--sysdeps/mips/fpu/feenablxcpt.c2
-rw-r--r--sysdeps/mips/fpu/fegetenv.c2
-rw-r--r--sysdeps/mips/fpu/fegetexcept.c2
-rw-r--r--sysdeps/mips/fpu/fegetround.c2
-rw-r--r--sysdeps/mips/fpu/feholdexcpt.c2
-rw-r--r--sysdeps/mips/fpu/fenv_libc.h2
-rw-r--r--sysdeps/mips/fpu/fesetenv.c2
-rw-r--r--sysdeps/mips/fpu/fesetround.c2
-rw-r--r--sysdeps/mips/fpu/feupdateenv.c2
-rw-r--r--sysdeps/mips/fpu/fgetexcptflg.c2
-rw-r--r--sysdeps/mips/fpu/fraiseexcpt.c2
-rw-r--r--sysdeps/mips/fpu/fsetexcptflg.c2
-rw-r--r--sysdeps/mips/fpu/ftestexcept.c2
-rw-r--r--sysdeps/mips/fpu_control.h8
-rw-r--r--sysdeps/mips/gccframe.h2
-rw-r--r--sysdeps/mips/ieee754/ieee754.h2
-rw-r--r--sysdeps/mips/include/sys/asm.h2
-rw-r--r--sysdeps/mips/jmpbuf-unwind.h2
-rw-r--r--sysdeps/mips/ldsodefs.h2
-rw-r--r--sysdeps/mips/libc-tls.c2
-rw-r--r--sysdeps/mips/linkmap.h (renamed from sysdeps/mips/bits/linkmap.h)0
-rw-r--r--sysdeps/mips/lshift.S2
-rw-r--r--sysdeps/mips/machine-gmon.h4
-rw-r--r--sysdeps/mips/math-tests.h2
-rw-r--r--sysdeps/mips/math_private.h11
-rw-r--r--sysdeps/mips/memcpy.S47
-rw-r--r--sysdeps/mips/memset.S2
-rw-r--r--sysdeps/mips/memusage.h2
-rw-r--r--sysdeps/mips/mips32/crti.S2
-rw-r--r--sysdeps/mips/mips32/crtn.S2
-rw-r--r--sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h38
-rw-r--r--sysdeps/mips/mips32/fpu/fpucw-helpers.c2
-rw-r--r--sysdeps/mips/mips32/libm-test-ulps236
-rw-r--r--sysdeps/mips/mips64/Implies1
-rw-r--r--sysdeps/mips/mips64/__longjmp.c6
-rw-r--r--sysdeps/mips/mips64/add_n.S2
-rw-r--r--sysdeps/mips/mips64/addmul_1.S2
-rw-r--r--sysdeps/mips/mips64/bsd-_setjmp.S2
-rw-r--r--sysdeps/mips/mips64/bsd-setjmp.S2
-rw-r--r--sysdeps/mips/mips64/e_sqrtl.c2
-rw-r--r--sysdeps/mips/mips64/gmp-mparam.h2
-rw-r--r--sysdeps/mips/mips64/libm-test-ulps532
-rw-r--r--sysdeps/mips/mips64/lshift.S2
-rw-r--r--sysdeps/mips/mips64/mul_1.S2
-rw-r--r--sysdeps/mips/mips64/n32/crti.S2
-rw-r--r--sysdeps/mips/mips64/n32/crtn.S2
-rw-r--r--sysdeps/mips/mips64/n64/crti.S2
-rw-r--r--sysdeps/mips/mips64/n64/crtn.S2
-rw-r--r--sysdeps/mips/mips64/rshift.S2
-rw-r--r--sysdeps/mips/mips64/setjmp.S2
-rw-r--r--sysdeps/mips/mips64/setjmp_aux.c2
-rw-r--r--sysdeps/mips/mips64/sub_n.S2
-rw-r--r--sysdeps/mips/mips64/submul_1.S2
-rw-r--r--sysdeps/mips/mul_1.S2
-rw-r--r--sysdeps/mips/nptl/Makefile2
-rw-r--r--sysdeps/mips/nptl/bits/pthreadtypes.h2
-rw-r--r--sysdeps/mips/nptl/bits/semaphore.h2
-rw-r--r--sysdeps/mips/nptl/pthread_spin_lock.c2
-rw-r--r--sysdeps/mips/nptl/pthreaddef.h2
-rw-r--r--sysdeps/mips/nptl/tls.h38
-rw-r--r--sysdeps/mips/regdef.h2
-rw-r--r--sysdeps/mips/rshift.S2
-rw-r--r--sysdeps/mips/setjmp.S2
-rw-r--r--sysdeps/mips/setjmp_aux.c2
-rw-r--r--sysdeps/mips/sgidefs.h2
-rw-r--r--sysdeps/mips/sotruss-lib.c2
-rw-r--r--sysdeps/mips/stackinfo.h2
-rw-r--r--sysdeps/mips/start.S2
-rw-r--r--sysdeps/mips/strcmp.S2
-rw-r--r--sysdeps/mips/sub_n.S2
-rw-r--r--sysdeps/mips/submul_1.S2
-rw-r--r--sysdeps/mips/sys/asm.h2
-rw-r--r--sysdeps/mips/sys/fpregdef.h2
-rw-r--r--sysdeps/mips/sys/regdef.h2
-rw-r--r--sysdeps/mips/sys/tas.h4
-rw-r--r--sysdeps/mips/sys/ucontext.h2
-rw-r--r--sysdeps/mips/tls-macros.h15
-rw-r--r--sysdeps/mips/tst-abi-fp32mod.c2
-rw-r--r--sysdeps/mips/tst-abi-fp64amod.c2
-rw-r--r--sysdeps/mips/tst-abi-fp64mod.c2
-rw-r--r--sysdeps/mips/tst-abi-fpxxmod.c2
-rw-r--r--sysdeps/mips/tst-abi-fpxxomod.c2
-rw-r--r--sysdeps/mips/tst-abi-interlink.c2
-rw-r--r--sysdeps/mips/tst-audit.h2
-rw-r--r--sysdeps/mips/tst-mode-switch-1.c2
-rw-r--r--sysdeps/mips/tst-mode-switch-2.c2
-rw-r--r--sysdeps/mips/tst-mode-switch-3.c2
114 files changed, 646 insertions, 539 deletions
diff --git a/sysdeps/mips/Makefile b/sysdeps/mips/Makefile
index 463b121758..3d3552322b 100644
--- a/sysdeps/mips/Makefile
+++ b/sysdeps/mips/Makefile
@@ -42,17 +42,23 @@ fpabi-modules-names += tst-abi-fpxxmod
CFLAGS-tst-abi-fpxxmod.c += -mfpxx -mno-odd-spreg
endif
ifneq (,$(filter $(o32-fpabi),xx xxo))
+ifeq ($(has-modd-spreg),yes)
fpabi-modules-names += tst-abi-fpxxomod
CFLAGS-tst-abi-fpxxomod.c += -mfpxx -modd-spreg
endif
+endif
ifneq (,$(filter $(o32-fpabi),xx 64a))
+ifeq ($(has-mpf64),yes)
fpabi-modules-names += tst-abi-fp64amod
CFLAGS-tst-abi-fp64amod.c += -mfp64 -mno-odd-spreg
endif
+endif
ifneq (,$(filter $(o32-fpabi),xx xxo 64a 64))
+ifeq ($(has-mpf64)-$(has-modd-spreg),yes-yes)
fpabi-modules-names += tst-abi-fp64mod
CFLAGS-tst-abi-fp64mod.c += -mfp64 -modd-spreg
endif
+endif
modules-names += $(fpabi-modules-names)
comma:=,
diff --git a/sysdeps/mips/__longjmp.c b/sysdeps/mips/__longjmp.c
index 8acb109cdf..9aed9fa517 100644
--- a/sysdeps/mips/__longjmp.c
+++ b/sysdeps/mips/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
diff --git a/sysdeps/mips/add_n.S b/sysdeps/mips/add_n.S
index e9f26f2c5a..6450bd93cc 100644
--- a/sysdeps/mips/add_n.S
+++ b/sysdeps/mips/add_n.S
@@ -1,7 +1,7 @@
/* MIPS2 __mpn_add_n -- Add two limb vectors of the same length > 0 and
store sum in a third limb vector.
-Copyright (C) 1995-2015 Free Software Foundation, Inc.
+Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/addmul_1.S b/sysdeps/mips/addmul_1.S
index 2162685458..cf09942254 100644
--- a/sysdeps/mips/addmul_1.S
+++ b/sysdeps/mips/addmul_1.S
@@ -1,7 +1,7 @@
/* MIPS __mpn_addmul_1 -- Multiply a limb vector with a single limb and
add the product to a second limb vector.
-Copyright (C) 1995-2015 Free Software Foundation, Inc.
+Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/bits/atomic.h b/sysdeps/mips/atomic-machine.h
index a39188160b..a60e4fbac8 100644
--- a/sysdeps/mips/bits/atomic.h
+++ b/sysdeps/mips/atomic-machine.h
@@ -1,5 +1,5 @@
/* Low-level functions for atomic operations. Mips version.
- Copyright (C) 2005-2015 Free Software Foundation, Inc.
+ Copyright (C) 2005-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,8 +16,8 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _MIPS_BITS_ATOMIC_H
-#define _MIPS_BITS_ATOMIC_H 1
+#ifndef _MIPS_ATOMIC_MACHINE_H
+#define _MIPS_ATOMIC_MACHINE_H 1
#include <stdint.h>
#include <inttypes.h>
@@ -38,7 +38,7 @@ typedef uintptr_t uatomicptr_t;
typedef intmax_t atomic_max_t;
typedef uintmax_t uatomic_max_t;
-#if _MIPS_SIM == _ABIO32
+#if _MIPS_SIM == _ABIO32 && __mips < 2
#define MIPS_PUSH_MIPS2 ".set mips2\n\t"
#else
#define MIPS_PUSH_MIPS2
@@ -85,7 +85,7 @@ typedef uintmax_t uatomic_max_t;
#define MIPS_SYNC_STR_1(X) MIPS_SYNC_STR_2(X)
#define MIPS_SYNC_STR MIPS_SYNC_STR_1(MIPS_SYNC)
-#if __GNUC_PREREQ (4, 8) || (defined __mips16 && __GNUC_PREREQ (4, 7))
+#if __GNUC_PREREQ (4, 8) || defined __mips16
/* The __atomic_* builtins are available in GCC 4.7 and later, but MIPS
support for their efficient implementation was added only in GCC 4.8.
We still want to use them even with GCC 4.7 for MIPS16 code where we
@@ -213,31 +213,6 @@ typedef uintmax_t uatomic_max_t;
__atomic_val_bysize (__arch_exchange_and_add, int, mem, value, \
__ATOMIC_RELEASE)
-#elif defined __mips16 /* !__GNUC_PREREQ (4, 7) */
-/* This implementation using __sync* builtins will be removed once glibc
- requires GCC 4.7 or later to build. */
-
-# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
- __sync_val_compare_and_swap ((mem), (oldval), (newval))
-# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
- (!__sync_bool_compare_and_swap ((mem), (oldval), (newval)))
-
-# define atomic_exchange_acq(mem, newval) \
- __sync_lock_test_and_set ((mem), (newval))
-
-# define atomic_exchange_and_add(mem, val) \
- __sync_fetch_and_add ((mem), (val))
-
-# define atomic_bit_test_set(mem, bit) \
- ({ __typeof (bit) __bit = (bit); \
- (__sync_fetch_and_or ((mem), 1 << (__bit)) & (1 << (__bit))); })
-
-# define atomic_and(mem, mask) (void) __sync_fetch_and_and ((mem), (mask))
-# define atomic_and_val(mem, mask) __sync_fetch_and_and ((mem), (mask))
-
-# define atomic_or(mem, mask) (void) __sync_fetch_and_or ((mem), (mask))
-# define atomic_or_val(mem, mask) __sync_fetch_and_or ((mem), (mask))
-
#else /* !__mips16 && !__GNUC_PREREQ (4, 8) */
/* This implementation using inline assembly will be removed once glibc
requires GCC 4.8 or later to build. */
@@ -500,4 +475,4 @@ typedef uintmax_t uatomic_max_t;
".set pop" : : : "memory")
#endif /* !__mips16 */
-#endif /* bits/atomic.h */
+#endif /* atomic-machine.h */
diff --git a/sysdeps/mips/bits/dlfcn.h b/sysdeps/mips/bits/dlfcn.h
index 0c74042a90..caf7ea72ea 100644
--- a/sysdeps/mips/bits/dlfcn.h
+++ b/sysdeps/mips/bits/dlfcn.h
@@ -1,5 +1,5 @@
/* System dependent definitions for run-time dynamic loading.
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/fenv.h b/sysdeps/mips/bits/fenv.h
index ccd70dee55..f829bd3807 100644
--- a/sysdeps/mips/bits/fenv.h
+++ b/sysdeps/mips/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/ipctypes.h b/sysdeps/mips/bits/ipctypes.h
index f6f74c9290..d09136b805 100644
--- a/sysdeps/mips/bits/ipctypes.h
+++ b/sysdeps/mips/bits/ipctypes.h
@@ -1,5 +1,5 @@
/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM. MIPS version
- Copyright (C) 2002-2015 Free Software Foundation, Inc.
+ Copyright (C) 2002-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/link.h b/sysdeps/mips/bits/link.h
index 4a3ec63e28..0bb6a61b10 100644
--- a/sysdeps/mips/bits/link.h
+++ b/sysdeps/mips/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/mathdef.h b/sysdeps/mips/bits/mathdef.h
index cfc7288abb..3a1162776f 100644
--- a/sysdeps/mips/bits/mathdef.h
+++ b/sysdeps/mips/bits/mathdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/nan.h b/sysdeps/mips/bits/nan.h
index 320af08692..feecd2704a 100644
--- a/sysdeps/mips/bits/nan.h
+++ b/sysdeps/mips/bits/nan.h
@@ -1,5 +1,5 @@
/* `NAN' constant for IEEE 754 machines. MIPS version.
- Copyright (C) 1992-2015 Free Software Foundation, Inc.
+ Copyright (C) 1992-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/setjmp.h b/sysdeps/mips/bits/setjmp.h
index a78f01b398..9ba70beda3 100644
--- a/sysdeps/mips/bits/setjmp.h
+++ b/sysdeps/mips/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. MIPS version.
- Copyright (C) 1992-2015 Free Software Foundation, Inc.
+ Copyright (C) 1992-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/wordsize.h b/sysdeps/mips/bits/wordsize.h
index befbd21b9b..bc90435442 100644
--- a/sysdeps/mips/bits/wordsize.h
+++ b/sysdeps/mips/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bsd-_setjmp.S b/sysdeps/mips/bsd-_setjmp.S
index 742757650f..b75e091f16 100644
--- a/sysdeps/mips/bsd-_setjmp.S
+++ b/sysdeps/mips/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS version.
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bsd-setjmp.S b/sysdeps/mips/bsd-setjmp.S
index 0654a4e144..2ec4fe8263 100644
--- a/sysdeps/mips/bsd-setjmp.S
+++ b/sysdeps/mips/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. MIPS version.
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/dl-dtprocnum.h b/sysdeps/mips/dl-dtprocnum.h
index 8f4622a4f3..ee72ebe81e 100644
--- a/sysdeps/mips/dl-dtprocnum.h
+++ b/sysdeps/mips/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. MIPS version.
- Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/dl-machine-reject-phdr.h b/sysdeps/mips/dl-machine-reject-phdr.h
index b09df30ff6..6fe8287356 100644
--- a/sysdeps/mips/dl-machine-reject-phdr.h
+++ b/sysdeps/mips/dl-machine-reject-phdr.h
@@ -1,5 +1,5 @@
/* Machine-dependent program header inspection for the ELF loader.
- Copyright (C) 2014-2015 Free Software Foundation, Inc.
+ Copyright (C) 2014-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/dl-machine.h b/sysdeps/mips/dl-machine.h
index 8738564241..8c0b40e8de 100644
--- a/sysdeps/mips/dl-machine.h
+++ b/sysdeps/mips/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. MIPS version.
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
@@ -151,7 +151,7 @@ elf_machine_load_address (void)
#ifndef __mips16
asm (" .set noreorder\n"
" " STRINGXP (PTR_LA) " %0, 0f\n"
-# if __mips_isa_rev < 6
+# if !defined __mips_isa_rev || __mips_isa_rev < 6
" bltzal $0, 0f\n"
" nop\n"
"0: " STRINGXP (PTR_SUBU) " %0, $31, %0\n"
@@ -259,7 +259,7 @@ do { \
and not just plain _start. */
#ifndef __mips16
-# if __mips_isa_rev < 6
+# if !defined __mips_isa_rev || __mips_isa_rev < 6
# define LCOFF STRINGXP(.Lcof2)
# define LOAD_31 STRINGXP(bltzal $8) "," STRINGXP(.Lcof2)
# else
diff --git a/sysdeps/mips/dl-procinfo.c b/sysdeps/mips/dl-procinfo.c
index 706aaed6cc..9158d32d3d 100644
--- a/sysdeps/mips/dl-procinfo.c
+++ b/sysdeps/mips/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for Mips version of processor capability information.
- Copyright (C) 2007-2015 Free Software Foundation, Inc.
+ Copyright (C) 2007-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Robert Millan <rmh@gnu.org>.
diff --git a/sysdeps/mips/dl-procinfo.h b/sysdeps/mips/dl-procinfo.h
index ef4252639d..d031b0c46f 100644
--- a/sysdeps/mips/dl-procinfo.h
+++ b/sysdeps/mips/dl-procinfo.h
@@ -1,5 +1,5 @@
/* Mips version of processor capability information handling macros.
- Copyright (C) 2007-2015 Free Software Foundation, Inc.
+ Copyright (C) 2007-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Robert Millan <rmh@gnu.org>.
diff --git a/sysdeps/mips/dl-tls.h b/sysdeps/mips/dl-tls.h
index 54dc71190c..4d084d6191 100644
--- a/sysdeps/mips/dl-tls.h
+++ b/sysdeps/mips/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. MIPS version.
- Copyright (C) 2005-2015 Free Software Foundation, Inc.
+ Copyright (C) 2005-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/dl-trampoline.c b/sysdeps/mips/dl-trampoline.c
index 25b170990c..fbb1ded65f 100644
--- a/sysdeps/mips/dl-trampoline.c
+++ b/sysdeps/mips/dl-trampoline.c
@@ -1,5 +1,5 @@
/* PLT trampoline. MIPS version.
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
diff --git a/sysdeps/mips/fpregdef.h b/sysdeps/mips/fpregdef.h
index eeccd7272e..d00f7115cb 100644
--- a/sysdeps/mips/fpregdef.h
+++ b/sysdeps/mips/fpregdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/fpu/e_sqrt.c b/sysdeps/mips/fpu/e_sqrt.c
index fa98a225b9..9c48fef125 100644
--- a/sysdeps/mips/fpu/e_sqrt.c
+++ b/sysdeps/mips/fpu/e_sqrt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Hartvig Ekner <hartvige@mips.com>, 2002.
diff --git a/sysdeps/mips/fpu/e_sqrtf.c b/sysdeps/mips/fpu/e_sqrtf.c
index 28da63cf58..b3a31550dd 100644
--- a/sysdeps/mips/fpu/e_sqrtf.c
+++ b/sysdeps/mips/fpu/e_sqrtf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Hartvig Ekner <hartvige@mips.com>, 2002.
diff --git a/sysdeps/mips/fpu/fclrexcpt.c b/sysdeps/mips/fpu/fclrexcpt.c
index 8fe865cb2f..6b044ab05f 100644
--- a/sysdeps/mips/fpu/fclrexcpt.c
+++ b/sysdeps/mips/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1998.
diff --git a/sysdeps/mips/fpu/fedisblxcpt.c b/sysdeps/mips/fpu/fedisblxcpt.c
index a20d309040..87287cbcb0 100644
--- a/sysdeps/mips/fpu/fedisblxcpt.c
+++ b/sysdeps/mips/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 2000.
diff --git a/sysdeps/mips/fpu/feenablxcpt.c b/sysdeps/mips/fpu/feenablxcpt.c
index 7d8968dcd6..0a6dffc37c 100644
--- a/sysdeps/mips/fpu/feenablxcpt.c
+++ b/sysdeps/mips/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 2000.
diff --git a/sysdeps/mips/fpu/fegetenv.c b/sysdeps/mips/fpu/fegetenv.c
index 8123d4de97..fd9dcb8a4b 100644
--- a/sysdeps/mips/fpu/fegetenv.c
+++ b/sysdeps/mips/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1998.
diff --git a/sysdeps/mips/fpu/fegetexcept.c b/sysdeps/mips/fpu/fegetexcept.c
index 55031a0a2d..d02089c261 100644
--- a/sysdeps/mips/fpu/fegetexcept.c
+++ b/sysdeps/mips/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 2000.
diff --git a/sysdeps/mips/fpu/fegetround.c b/sysdeps/mips/fpu/fegetround.c
index bfe9130f60..72b414e71e 100644
--- a/sysdeps/mips/fpu/fegetround.c
+++ b/sysdeps/mips/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
diff --git a/sysdeps/mips/fpu/feholdexcpt.c b/sysdeps/mips/fpu/feholdexcpt.c
index 69e34e8a30..4e48bc055a 100644
--- a/sysdeps/mips/fpu/feholdexcpt.c
+++ b/sysdeps/mips/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 2000.
diff --git a/sysdeps/mips/fpu/fenv_libc.h b/sysdeps/mips/fpu/fenv_libc.h
index 73584ca605..bb28d8fded 100644
--- a/sysdeps/mips/fpu/fenv_libc.h
+++ b/sysdeps/mips/fpu/fenv_libc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>.
diff --git a/sysdeps/mips/fpu/fesetenv.c b/sysdeps/mips/fpu/fesetenv.c
index e1629aa1e9..a99810eee5 100644
--- a/sysdeps/mips/fpu/fesetenv.c
+++ b/sysdeps/mips/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1998.
diff --git a/sysdeps/mips/fpu/fesetround.c b/sysdeps/mips/fpu/fesetround.c
index 61892542a3..0e0b2f2293 100644
--- a/sysdeps/mips/fpu/fesetround.c
+++ b/sysdeps/mips/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
diff --git a/sysdeps/mips/fpu/feupdateenv.c b/sysdeps/mips/fpu/feupdateenv.c
index 899d49441b..2f9e4a3cf2 100644
--- a/sysdeps/mips/fpu/feupdateenv.c
+++ b/sysdeps/mips/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1998.
diff --git a/sysdeps/mips/fpu/fgetexcptflg.c b/sysdeps/mips/fpu/fgetexcptflg.c
index b586807ecc..04fe583db5 100644
--- a/sysdeps/mips/fpu/fgetexcptflg.c
+++ b/sysdeps/mips/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1998.
diff --git a/sysdeps/mips/fpu/fraiseexcpt.c b/sysdeps/mips/fpu/fraiseexcpt.c
index 1b082df96e..9d71e2051b 100644
--- a/sysdeps/mips/fpu/fraiseexcpt.c
+++ b/sysdeps/mips/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 2000.
diff --git a/sysdeps/mips/fpu/fsetexcptflg.c b/sysdeps/mips/fpu/fsetexcptflg.c
index 09b51cd7c1..43a2037da6 100644
--- a/sysdeps/mips/fpu/fsetexcptflg.c
+++ b/sysdeps/mips/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Hartvig Ekner <hartvige@mips.com>, 2002.
diff --git a/sysdeps/mips/fpu/ftestexcept.c b/sysdeps/mips/fpu/ftestexcept.c
index 0af7ddc427..41b2f73da8 100644
--- a/sysdeps/mips/fpu/ftestexcept.c
+++ b/sysdeps/mips/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
diff --git a/sysdeps/mips/fpu_control.h b/sysdeps/mips/fpu_control.h
index cfb4e6a0fd..ca077bf9aa 100644
--- a/sysdeps/mips/fpu_control.h
+++ b/sysdeps/mips/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. Mips version.
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Olaf Flebbe and Ralf Baechle.
@@ -93,20 +93,20 @@ extern fpu_control_t __fpu_control;
/* Mask for rounding control. */
#define _FPU_RC_MASK 0x3
-#define _FPU_RESERVED 0xfe840000 /* Reserved bits in cw, incl NAN2008. */
+#define _FPU_RESERVED 0xfe8c0000 /* Reserved bits in cw, incl ABS/NAN2008. */
/* The fdlibm code requires strict IEEE double precision arithmetic,
and no interrupts for exceptions, rounding to nearest. */
#ifdef __mips_nan2008
-# define _FPU_DEFAULT 0x00040000
+# define _FPU_DEFAULT 0x000C0000
#else
# define _FPU_DEFAULT 0x00000000
#endif
/* IEEE: same as above, but exceptions. */
#ifdef __mips_nan2008
-# define _FPU_IEEE 0x00040F80
+# define _FPU_IEEE 0x000C0F80
#else
# define _FPU_IEEE 0x00000F80
#endif
diff --git a/sysdeps/mips/gccframe.h b/sysdeps/mips/gccframe.h
index 3a35d19706..eaa7bfb44e 100644
--- a/sysdeps/mips/gccframe.h
+++ b/sysdeps/mips/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. mips version.
- Copyright (C) 2001-2015 Free Software Foundation, Inc.
+ Copyright (C) 2001-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/ieee754/ieee754.h b/sysdeps/mips/ieee754/ieee754.h
index bcbd621bb2..f34a2fa2d0 100644
--- a/sysdeps/mips/ieee754/ieee754.h
+++ b/sysdeps/mips/ieee754/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/include/sys/asm.h b/sysdeps/mips/include/sys/asm.h
index 26ecf7725f..7e288df117 100644
--- a/sysdeps/mips/include/sys/asm.h
+++ b/sysdeps/mips/include/sys/asm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/jmpbuf-unwind.h b/sysdeps/mips/jmpbuf-unwind.h
index fd1c6e647e..55a9b09056 100644
--- a/sysdeps/mips/jmpbuf-unwind.h
+++ b/sysdeps/mips/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/ldsodefs.h b/sysdeps/mips/ldsodefs.h
index ad95de5648..7399eff32d 100644
--- a/sysdeps/mips/ldsodefs.h
+++ b/sysdeps/mips/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/libc-tls.c b/sysdeps/mips/libc-tls.c
index de7786dbc2..b4c91fb84b 100644
--- a/sysdeps/mips/libc-tls.c
+++ b/sysdeps/mips/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. MIPS version.
- Copyright (C) 2005-2015 Free Software Foundation, Inc.
+ Copyright (C) 2005-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/bits/linkmap.h b/sysdeps/mips/linkmap.h
index 1fb9678a6d..1fb9678a6d 100644
--- a/sysdeps/mips/bits/linkmap.h
+++ b/sysdeps/mips/linkmap.h
diff --git a/sysdeps/mips/lshift.S b/sysdeps/mips/lshift.S
index b20eb812b0..8bca5466b2 100644
--- a/sysdeps/mips/lshift.S
+++ b/sysdeps/mips/lshift.S
@@ -1,6 +1,6 @@
/* MIPS2 __mpn_lshift --
-Copyright (C) 1995-2015 Free Software Foundation, Inc.
+Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/machine-gmon.h b/sysdeps/mips/machine-gmon.h
index ee2e3ea099..8e8efd2ebe 100644
--- a/sysdeps/mips/machine-gmon.h
+++ b/sysdeps/mips/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. MIPS
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -83,7 +83,7 @@ static void __attribute_used__ __mcount (u_long frompc, u_long selfpc)
#endif
#if _MIPS_SIM == _ABIN32
-# if __mips_isa_rev < 6
+# if !defined __mips_isa_rev || __mips_isa_rev < 6
# define PTR_ADDU_STRING "add" /* no u */
# define PTR_SUBU_STRING "sub" /* no u */
# else
diff --git a/sysdeps/mips/math-tests.h b/sysdeps/mips/math-tests.h
index d049ffff1a..f41c1616b0 100644
--- a/sysdeps/mips/math-tests.h
+++ b/sysdeps/mips/math-tests.h
@@ -1,5 +1,5 @@
/* Configuration for math tests. MIPS version.
- Copyright (C) 2013-2015 Free Software Foundation, Inc.
+ Copyright (C) 2013-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/math_private.h b/sysdeps/mips/math_private.h
index baa5f28fd2..2ea3c5708a 100644
--- a/sysdeps/mips/math_private.h
+++ b/sysdeps/mips/math_private.h
@@ -1,5 +1,5 @@
/* Internal math stuff. MIPS version.
- Copyright (C) 2013-2015 Free Software Foundation, Inc.
+ Copyright (C) 2013-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,7 +16,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _MATH_PRIVATE_H
+#ifndef MIPS_MATH_PRIVATE_H
+#define MIPS_MATH_PRIVATE_H 1
#ifdef __mips_nan2008
/* MIPS aligned to IEEE 754-2008. */
@@ -106,7 +107,7 @@ libc_feholdexcept_setround_mips (fenv_t *envp, int round)
static __always_inline void
libc_fesetenv_mips (fenv_t *envp)
{
- fpu_control_t cw;
+ fpu_control_t cw __attribute__ ((unused));
/* Read current state to flush fpu pipeline. */
_FPU_GETCW (cw);
@@ -247,6 +248,10 @@ libc_feholdsetround_mips_ctx (struct rm_ctx *ctx, int round)
#endif
+/* Enable __finitel, __isinfl, and __isnanl for binary compatibility
+ when built without long double support. */
+#define LDBL_CLASSIFY_COMPAT 1
+
#include_next <math_private.h>
#endif
diff --git a/sysdeps/mips/memcpy.S b/sysdeps/mips/memcpy.S
index c85935b811..9b072d7420 100644
--- a/sysdeps/mips/memcpy.S
+++ b/sysdeps/mips/memcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -295,7 +295,7 @@ L(memcpy):
* size, copy dst pointer to v0 for the return value.
*/
slti t2,a2,(2 * NSIZE)
- bne t2,zero,L(lastb)
+ bne t2,zero,L(lasts)
#if defined(RETURN_FIRST_PREFETCH) || defined(RETURN_LAST_PREFETCH)
move v0,zero
#else
@@ -546,7 +546,7 @@ L(chkw):
*/
L(chk1w):
andi a2,t8,(NSIZE-1) /* a2 is the reminder past one (d)word chunks */
- beq a2,t8,L(lastb)
+ beq a2,t8,L(lastw)
PTR_SUBU a3,t8,a2 /* a3 is count of bytes in one (d)word chunks */
PTR_ADDU a3,a0,a3 /* a3 is the dst address after loop */
@@ -558,6 +558,20 @@ L(wordCopy_loop):
bne a0,a3,L(wordCopy_loop)
C_ST REG3,UNIT(-1)(a0)
+/* If we have been copying double words, see if we can copy a single word
+ before doing byte copies. We can have, at most, one word to copy. */
+
+L(lastw):
+#ifdef USE_DOUBLE
+ andi t8,a2,3 /* a2 is the remainder past 4 byte chunks. */
+ beq t8,a2,L(lastb)
+ move a2,t8
+ lw REG3,0(a1)
+ sw REG3,0(a0)
+ PTR_ADDIU a0,a0,4
+ PTR_ADDIU a1,a1,4
+#endif
+
/* Copy the last 8 (or 16) bytes */
L(lastb):
blez a2,L(leave)
@@ -572,6 +586,33 @@ L(leave):
j ra
nop
+/* We jump here with a memcpy of less than 8 or 16 bytes, depending on
+ whether or not USE_DOUBLE is defined. Instead of just doing byte
+ copies, check the alignment and size and use lw/sw if possible.
+ Otherwise, do byte copies. */
+
+L(lasts):
+ andi t8,a2,3
+ beq t8,a2,L(lastb)
+
+ andi t9,a0,3
+ bne t9,zero,L(lastb)
+ andi t9,a1,3
+ bne t9,zero,L(lastb)
+
+ PTR_SUBU a3,a2,t8
+ PTR_ADDU a3,a0,a3
+
+L(wcopy_loop):
+ lw REG3,0(a1)
+ PTR_ADDIU a0,a0,4
+ PTR_ADDIU a1,a1,4
+ bne a0,a3,L(wcopy_loop)
+ sw REG3,-4(a0)
+
+ b L(lastb)
+ move a2,t8
+
#ifndef R6_CODE
/*
* UNALIGNED case, got here with a3 = "negu a0"
diff --git a/sysdeps/mips/memset.S b/sysdeps/mips/memset.S
index 864ab07c38..9035b3d2f6 100644
--- a/sysdeps/mips/memset.S
+++ b/sysdeps/mips/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/memusage.h b/sysdeps/mips/memusage.h
index bf7912e532..dd1692f961 100644
--- a/sysdeps/mips/memusage.h
+++ b/sysdeps/mips/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips32/crti.S b/sysdeps/mips/mips32/crti.S
index 4125f41c2a..5c0ad7328a 100644
--- a/sysdeps/mips/mips32/crti.S
+++ b/sysdeps/mips/mips32/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (o32).
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips32/crtn.S b/sysdeps/mips/mips32/crtn.S
index d4d29fa58f..a2f97c85e1 100644
--- a/sysdeps/mips/mips32/crtn.S
+++ b/sysdeps/mips/mips32/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (o32).
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h b/sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h
new file mode 100644
index 0000000000..b9f4aea488
--- /dev/null
+++ b/sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h
@@ -0,0 +1,38 @@
+/* Fix for conversion of floating point to integer overflow. MIPS version.
+ Copyright (C) 2015-2016 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef FIX_FP_INT_CONVERT_OVERFLOW_H
+#define FIX_FP_INT_CONVERT_OVERFLOW_H 1
+
+/* As of GCC 5, the generic libgcc2.c conversions from floating point
+ to long long may not raise the correct exceptions on overflow (and
+ may raise spurious "inexact" exceptions even in non-overflow cases,
+ see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59412>). */
+#define FIX_FLT_LLONG_CONVERT_OVERFLOW 1
+#define FIX_DBL_LLONG_CONVERT_OVERFLOW 1
+#define FIX_LDBL_LLONG_CONVERT_OVERFLOW 0
+
+/* As of GCC 5 and binutils 2.25, for MIPS I GCC generates calls to
+ assembler macros for conversions from floating point to integer
+ types, and those macros save and restore the whole of FSCR and so
+ lose exceptions. */
+#define FIX_FLT_LONG_CONVERT_OVERFLOW (__mips == 1)
+#define FIX_DBL_LONG_CONVERT_OVERFLOW (__mips == 1)
+#define FIX_LDBL_LONG_CONVERT_OVERFLOW 0
+
+#endif /* fix-fp-int-convert-overflow.h */
diff --git a/sysdeps/mips/mips32/fpu/fpucw-helpers.c b/sysdeps/mips/mips32/fpu/fpucw-helpers.c
index 40391a3ec5..2af39e969e 100644
--- a/sysdeps/mips/mips32/fpu/fpucw-helpers.c
+++ b/sysdeps/mips/mips32/fpu/fpucw-helpers.c
@@ -1,5 +1,5 @@
/* FPU control word handling, MIPS version, needed by MIPS16 callers.
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips32/libm-test-ulps b/sysdeps/mips/mips32/libm-test-ulps
index e38d37fe47..aa3d696863 100644
--- a/sysdeps/mips/mips32/libm-test-ulps
+++ b/sysdeps/mips/mips32/libm-test-ulps
@@ -24,28 +24,28 @@ idouble: 1
ifloat: 1
Function: "acosh":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: "acosh_downward":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
Function: "acosh_towardzero":
double: 2
-float: 1
+float: 2
idouble: 2
-ifloat: 1
+ifloat: 2
Function: "acosh_upward":
double: 2
-float: 1
+float: 2
idouble: 2
-ifloat: 1
+ifloat: 2
Function: "asin":
float: 1
@@ -138,16 +138,16 @@ idouble: 1
ifloat: 2
Function: "atanh":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: "atanh_downward":
double: 3
-float: 2
+float: 3
idouble: 3
-ifloat: 2
+ifloat: 3
Function: "atanh_towardzero":
double: 2
@@ -156,9 +156,9 @@ idouble: 2
ifloat: 2
Function: "atanh_upward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: "cabs":
@@ -498,9 +498,9 @@ idouble: 3
ifloat: 1
Function: "cbrt_upward":
-double: 4
+double: 5
float: 1
-idouble: 4
+idouble: 5
ifloat: 1
Function: Real part of "ccos":
@@ -649,9 +649,9 @@ ifloat: 2
Function: Real part of "clog":
double: 3
-float: 2
+float: 3
idouble: 3
-ifloat: 2
+ifloat: 3
Function: Imaginary part of "clog":
float: 1
@@ -659,9 +659,9 @@ ifloat: 1
Function: Real part of "clog10":
double: 3
-float: 3
+float: 4
idouble: 3
-ifloat: 3
+ifloat: 4
Function: Imaginary part of "clog10":
double: 2
@@ -670,10 +670,10 @@ idouble: 2
ifloat: 2
Function: Real part of "clog10_downward":
-double: 6
-float: 6
-idouble: 6
-ifloat: 6
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
Function: Imaginary part of "clog10_downward":
double: 2
@@ -683,9 +683,9 @@ ifloat: 4
Function: Real part of "clog10_towardzero":
double: 5
-float: 4
+float: 5
idouble: 5
-ifloat: 4
+ifloat: 5
Function: Imaginary part of "clog10_towardzero":
double: 2
@@ -694,22 +694,22 @@ idouble: 2
ifloat: 4
Function: Real part of "clog10_upward":
-double: 8
+double: 6
float: 5
-idouble: 8
+idouble: 6
ifloat: 5
Function: Imaginary part of "clog10_upward":
double: 2
-float: 3
+float: 4
idouble: 2
-ifloat: 3
+ifloat: 4
Function: Real part of "clog_downward":
-double: 7
-float: 5
-idouble: 7
-ifloat: 5
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
Function: Imaginary part of "clog_downward":
double: 1
@@ -718,22 +718,22 @@ idouble: 1
ifloat: 2
Function: Real part of "clog_towardzero":
-double: 7
-float: 5
-idouble: 7
-ifloat: 5
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
Function: Imaginary part of "clog_towardzero":
double: 1
-float: 2
+float: 3
idouble: 1
-ifloat: 2
+ifloat: 3
Function: Real part of "clog_upward":
-double: 8
-float: 5
-idouble: 8
-ifloat: 5
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
Function: Imaginary part of "clog_upward":
double: 1
@@ -934,9 +934,9 @@ idouble: 2
ifloat: 2
Function: Real part of "csqrt_downward":
-double: 4
+double: 5
float: 4
-idouble: 4
+idouble: 5
ifloat: 4
Function: Imaginary part of "csqrt_downward":
@@ -946,9 +946,9 @@ idouble: 4
ifloat: 3
Function: Real part of "csqrt_towardzero":
-double: 3
+double: 4
float: 3
-idouble: 3
+idouble: 4
ifloat: 3
Function: Imaginary part of "csqrt_towardzero":
@@ -1090,15 +1090,15 @@ idouble: 1
ifloat: 1
Function: "erfc":
-double: 2
+double: 3
float: 2
-idouble: 2
+idouble: 3
ifloat: 2
Function: "erfc_downward":
-double: 4
+double: 5
float: 6
-idouble: 4
+idouble: 5
ifloat: 6
Function: "erfc_towardzero":
@@ -1108,11 +1108,15 @@ idouble: 3
ifloat: 4
Function: "erfc_upward":
-double: 4
+double: 5
float: 6
-idouble: 4
+idouble: 5
ifloat: 6
+Function: "exp":
+float: 1
+ifloat: 1
+
Function: "exp10":
double: 2
idouble: 2
@@ -1185,9 +1189,9 @@ ifloat: 1
Function: "expm1_towardzero":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
+ifloat: 2
Function: "expm1_upward":
double: 1
@@ -1196,28 +1200,28 @@ idouble: 1
ifloat: 1
Function: "gamma":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "gamma_downward":
double: 4
-float: 3
+float: 4
idouble: 4
-ifloat: 3
+ifloat: 4
+
+Function: "gamma_downward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
Function: "gamma_towardzero":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
Function: "gamma_upward":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
Function: "hypot":
double: 1
@@ -1308,28 +1312,28 @@ idouble: 5
ifloat: 5
Function: "lgamma":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "lgamma_downward":
double: 4
-float: 3
+float: 4
idouble: 4
-ifloat: 3
+ifloat: 4
+
+Function: "lgamma_downward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
Function: "lgamma_towardzero":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
Function: "lgamma_upward":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
Function: "log":
float: 1
@@ -1416,12 +1420,14 @@ float: 2
ifloat: 2
Function: "log_upward":
+double: 1
float: 2
+idouble: 1
ifloat: 2
Function: "pow":
-float: 3
-ifloat: 3
+float: 1
+ifloat: 1
Function: "pow10":
double: 2
@@ -1447,21 +1453,21 @@ ifloat: 1
Function: "pow_downward":
double: 1
-float: 3
+float: 1
idouble: 1
-ifloat: 3
+ifloat: 1
Function: "pow_towardzero":
double: 1
-float: 4
+float: 1
idouble: 1
-ifloat: 4
+ifloat: 1
Function: "pow_upward":
double: 1
-float: 4
+float: 1
idouble: 1
-ifloat: 4
+ifloat: 1
Function: "sin":
float: 1
@@ -1503,9 +1509,9 @@ ifloat: 1
Function: "sincos_upward":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
+ifloat: 2
Function: "sinh":
double: 2
@@ -1578,28 +1584,28 @@ idouble: 3
ifloat: 3
Function: "tgamma":
-double: 3
-float: 5
-idouble: 3
-ifloat: 5
-
-Function: "tgamma_downward":
-double: 3
+double: 5
float: 4
-idouble: 3
+idouble: 5
ifloat: 4
-Function: "tgamma_towardzero":
-double: 3
+Function: "tgamma_downward":
+double: 5
float: 5
-idouble: 3
+idouble: 5
ifloat: 5
+Function: "tgamma_towardzero":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
Function: "tgamma_upward":
-double: 3
-float: 5
-idouble: 3
-ifloat: 5
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
Function: "y0":
double: 2
diff --git a/sysdeps/mips/mips64/Implies b/sysdeps/mips/mips64/Implies
index 826ff1541f..b476b8b298 100644
--- a/sysdeps/mips/mips64/Implies
+++ b/sysdeps/mips/mips64/Implies
@@ -1,4 +1,5 @@
# MIPS uses IEEE 754 floating point.
mips/ieee754
ieee754/flt-32
+ieee754/dbl-64/wordsize-64
ieee754/dbl-64
diff --git a/sysdeps/mips/mips64/__longjmp.c b/sysdeps/mips/mips64/__longjmp.c
index 15d761b599..147e979232 100644
--- a/sysdeps/mips/mips64/__longjmp.c
+++ b/sysdeps/mips/mips64/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -25,9 +25,7 @@
#endif
void
-__longjmp (env_arg, val_arg)
- __jmp_buf env_arg;
- int val_arg;
+__longjmp (__jmp_buf env_arg, int val_arg)
{
/* gcc 1.39.19 miscompiled the longjmp routine (as it did setjmp before
the hack around it); force it to use $a1 for the longjmp value.
diff --git a/sysdeps/mips/mips64/add_n.S b/sysdeps/mips/mips64/add_n.S
index 68f2fcc512..056aee7e76 100644
--- a/sysdeps/mips/mips64/add_n.S
+++ b/sysdeps/mips/mips64/add_n.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_add_n -- Add two limb vectors of the same length > 0 and
* store sum in a third limb vector.
*
- * Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2016 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/addmul_1.S b/sysdeps/mips/mips64/addmul_1.S
index 167489aff1..d7fe56bcde 100644
--- a/sysdeps/mips/mips64/addmul_1.S
+++ b/sysdeps/mips/mips64/addmul_1.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_addmul_1 -- Multiply a limb vector with a single limb and
* add the product to a second limb vector.
*
- * Copyright (C) 1992-2015 Free Software Foundation, Inc.
+ * Copyright (C) 1992-2016 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/bsd-_setjmp.S b/sysdeps/mips/mips64/bsd-_setjmp.S
index 363dc40147..cd2ae472eb 100644
--- a/sysdeps/mips/mips64/bsd-_setjmp.S
+++ b/sysdeps/mips/mips64/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS64 version.
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/bsd-setjmp.S b/sysdeps/mips/mips64/bsd-setjmp.S
index 1545334e89..8b094a30ea 100644
--- a/sysdeps/mips/mips64/bsd-setjmp.S
+++ b/sysdeps/mips/mips64/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. MIPS64 version.
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/e_sqrtl.c b/sysdeps/mips/mips64/e_sqrtl.c
index 55b564cd75..4453ac8ee0 100644
--- a/sysdeps/mips/mips64/e_sqrtl.c
+++ b/sysdeps/mips/mips64/e_sqrtl.c
@@ -1,5 +1,5 @@
/* long double square root in software floating-point emulation.
- Copyright (C) 1997-2015 Free Software Foundation, Inc.
+ Copyright (C) 1997-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/sysdeps/mips/mips64/gmp-mparam.h b/sysdeps/mips/mips64/gmp-mparam.h
index 58a0d514aa..1e76391a60 100644
--- a/sysdeps/mips/mips64/gmp-mparam.h
+++ b/sysdeps/mips/mips64/gmp-mparam.h
@@ -1,6 +1,6 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright (C) 1991-2015 Free Software Foundation, Inc.
+Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/mips64/libm-test-ulps b/sysdeps/mips/mips64/libm-test-ulps
index 1334eaad69..5bf6f3e65b 100644
--- a/sysdeps/mips/mips64/libm-test-ulps
+++ b/sysdeps/mips/mips64/libm-test-ulps
@@ -4,6 +4,8 @@
Function: "acos":
float: 1
ifloat: 1
+ildouble: 1
+ldouble: 1
Function: "acos_downward":
double: 1
@@ -30,34 +32,34 @@ ildouble: 1
ldouble: 1
Function: "acosh":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "acosh_downward":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
ildouble: 2
ldouble: 2
+Function: "acosh_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+ildouble: 3
+ldouble: 3
+
Function: "acosh_towardzero":
double: 2
-float: 1
+float: 2
idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: "acosh_upward":
double: 2
-float: 1
+float: 2
idouble: 2
-ifloat: 1
+ifloat: 2
ildouble: 2
ldouble: 2
@@ -72,8 +74,8 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "asin_towardzero":
double: 1
@@ -88,24 +90,24 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "asinh":
double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 3
+ldouble: 3
Function: "asinh_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
Function: "asinh_towardzero":
double: 2
@@ -120,8 +122,8 @@ double: 3
float: 3
idouble: 3
ifloat: 3
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
Function: "atan":
float: 1
@@ -140,16 +142,16 @@ double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "atan2_towardzero":
double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "atan2_upward":
double: 1
@@ -180,24 +182,24 @@ double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "atanh":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "atanh_downward":
double: 3
-float: 2
+float: 3
idouble: 3
-ifloat: 2
-ildouble: 3
-ldouble: 3
+ifloat: 3
+ildouble: 4
+ldouble: 4
Function: "atanh_towardzero":
double: 2
@@ -208,28 +210,36 @@ ildouble: 2
ldouble: 2
Function: "atanh_upward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
Function: "cabs":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Function: "cabs_downward":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Function: "cabs_towardzero":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Function: "cabs_upward":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Function: Real part of "cacos":
double: 1
@@ -362,32 +372,32 @@ ldouble: 3
Function: "carg":
float: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "carg_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "carg_towardzero":
double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "carg_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: Real part of "casin":
double: 1
@@ -662,9 +672,9 @@ ildouble: 1
ldouble: 1
Function: "cbrt_upward":
-double: 4
+double: 5
float: 1
-idouble: 4
+idouble: 5
ifloat: 1
ildouble: 1
ldouble: 1
@@ -863,11 +873,11 @@ ldouble: 3
Function: Real part of "clog":
double: 3
-float: 2
+float: 3
idouble: 3
-ifloat: 2
-ildouble: 4
-ldouble: 4
+ifloat: 3
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "clog":
float: 1
@@ -877,11 +887,11 @@ ldouble: 1
Function: Real part of "clog10":
double: 3
-float: 3
+float: 4
idouble: 3
-ifloat: 3
-ildouble: 4
-ldouble: 4
+ifloat: 4
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "clog10":
double: 2
@@ -892,12 +902,12 @@ ildouble: 2
ldouble: 2
Function: Real part of "clog10_downward":
-double: 6
-float: 6
-idouble: 6
-ifloat: 6
-ildouble: 5
-ldouble: 5
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+ildouble: 3
+ldouble: 3
Function: Imaginary part of "clog10_downward":
double: 2
@@ -909,11 +919,11 @@ ldouble: 3
Function: Real part of "clog10_towardzero":
double: 5
-float: 4
+float: 5
idouble: 5
-ifloat: 4
-ildouble: 6
-ldouble: 6
+ifloat: 5
+ildouble: 4
+ldouble: 4
Function: Imaginary part of "clog10_towardzero":
double: 2
@@ -924,28 +934,28 @@ ildouble: 3
ldouble: 3
Function: Real part of "clog10_upward":
-double: 8
+double: 6
float: 5
-idouble: 8
+idouble: 6
ifloat: 5
-ildouble: 5
-ldouble: 5
+ildouble: 4
+ldouble: 4
Function: Imaginary part of "clog10_upward":
double: 2
-float: 3
+float: 4
idouble: 2
-ifloat: 3
+ifloat: 4
ildouble: 3
ldouble: 3
Function: Real part of "clog_downward":
-double: 7
-float: 5
-idouble: 7
-ifloat: 5
-ildouble: 6
-ldouble: 6
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+ildouble: 3
+ldouble: 3
Function: Imaginary part of "clog_downward":
double: 1
@@ -956,28 +966,28 @@ ildouble: 2
ldouble: 2
Function: Real part of "clog_towardzero":
-double: 7
-float: 5
-idouble: 7
-ifloat: 5
-ildouble: 6
-ldouble: 6
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+ildouble: 3
+ldouble: 3
Function: Imaginary part of "clog_towardzero":
double: 1
-float: 2
+float: 3
idouble: 1
-ifloat: 2
+ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "clog_upward":
-double: 8
-float: 5
-idouble: 8
-ifloat: 5
-ildouble: 6
-ldouble: 6
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+ildouble: 4
+ldouble: 4
Function: Imaginary part of "clog_upward":
double: 1
@@ -1238,64 +1248,64 @@ double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "csqrt":
double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: Real part of "csqrt_downward":
-double: 4
+double: 5
float: 4
-idouble: 4
+idouble: 5
ifloat: 4
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
Function: Imaginary part of "csqrt_downward":
double: 4
float: 3
idouble: 4
ifloat: 3
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: Real part of "csqrt_towardzero":
-double: 3
+double: 4
float: 3
-idouble: 3
+idouble: 4
ifloat: 3
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: Imaginary part of "csqrt_towardzero":
double: 4
float: 3
idouble: 4
ifloat: 3
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: Real part of "csqrt_upward":
double: 5
float: 4
idouble: 5
ifloat: 4
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
Function: Imaginary part of "csqrt_upward":
double: 3
float: 3
idouble: 3
ifloat: 3
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: Real part of "ctan":
double: 1
@@ -1458,42 +1468,48 @@ ildouble: 2
ldouble: 2
Function: "erfc":
-double: 2
+double: 3
float: 2
-idouble: 2
+idouble: 3
ifloat: 2
ildouble: 2
ldouble: 2
Function: "erfc_downward":
-double: 4
+double: 5
float: 6
-idouble: 4
+idouble: 5
ifloat: 6
-ildouble: 3
-ldouble: 3
+ildouble: 5
+ldouble: 5
Function: "erfc_towardzero":
double: 3
float: 4
idouble: 3
ifloat: 4
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
Function: "erfc_upward":
-double: 4
+double: 5
float: 6
-idouble: 4
+idouble: 5
ifloat: 6
-ildouble: 3
-ldouble: 3
+ildouble: 5
+ldouble: 5
+
+Function: "exp":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Function: "exp10":
double: 2
idouble: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "exp10_downward":
double: 2
@@ -1516,8 +1532,8 @@ double: 2
float: 1
idouble: 2
ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "exp2":
double: 1
@@ -1548,8 +1564,8 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "exp_downward":
double: 1
@@ -1581,11 +1597,11 @@ ldouble: 2
Function: "expm1_towardzero":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
+ifloat: 2
+ildouble: 4
+ldouble: 4
Function: "expm1_upward":
double: 1
@@ -1596,36 +1612,36 @@ ildouble: 3
ldouble: 3
Function: "gamma":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "gamma_downward":
double: 4
-float: 3
+float: 4
idouble: 4
-ifloat: 3
-ildouble: 2
-ldouble: 2
+ifloat: 4
+ildouble: 5
+ldouble: 5
+
+Function: "gamma_downward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+ildouble: 8
+ldouble: 8
Function: "gamma_towardzero":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-ildouble: 2
-ldouble: 2
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+ildouble: 5
+ldouble: 5
Function: "gamma_upward":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-ildouble: 3
-ldouble: 3
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+ildouble: 8
+ldouble: 8
Function: "hypot":
double: 1
@@ -1748,36 +1764,36 @@ ildouble: 7
ldouble: 7
Function: "lgamma":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "lgamma_downward":
double: 4
-float: 3
+float: 4
idouble: 4
-ifloat: 3
-ildouble: 2
-ldouble: 2
+ifloat: 4
+ildouble: 5
+ldouble: 5
+
+Function: "lgamma_downward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+ildouble: 8
+ldouble: 8
Function: "lgamma_towardzero":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-ildouble: 2
-ldouble: 2
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+ildouble: 5
+ldouble: 5
Function: "lgamma_upward":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-ildouble: 3
-ldouble: 3
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+ildouble: 8
+ldouble: 8
Function: "log":
float: 1
@@ -1822,48 +1838,48 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "log1p_downward":
double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 3
+ldouble: 3
Function: "log1p_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 3
+ldouble: 3
Function: "log1p_upward":
double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "log2":
double: 2
float: 1
idouble: 2
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "log2_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
-ildouble: 1
-ldouble: 1
+ildouble: 3
+ldouble: 3
Function: "log2_towardzero":
double: 2
@@ -1890,26 +1906,28 @@ ldouble: 1
Function: "log_towardzero":
float: 2
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "log_upward":
+double: 1
float: 2
+idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
Function: "pow":
-float: 3
-ifloat: 3
-ildouble: 1
-ldouble: 1
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
Function: "pow10":
double: 2
idouble: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "pow10_downward":
double: 2
@@ -1932,30 +1950,30 @@ double: 2
float: 1
idouble: 2
ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "pow_downward":
double: 1
-float: 3
+float: 1
idouble: 1
-ifloat: 3
-ildouble: 1
-ldouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
Function: "pow_towardzero":
double: 1
-float: 4
+float: 1
idouble: 1
-ifloat: 4
-ildouble: 1
-ldouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
Function: "pow_upward":
double: 1
-float: 4
+float: 1
idouble: 1
-ifloat: 4
+ifloat: 1
ildouble: 2
ldouble: 2
@@ -1986,8 +2004,8 @@ double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "sincos":
float: 1
@@ -2013,47 +2031,49 @@ ldouble: 2
Function: "sincos_upward":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
+ifloat: 2
+ildouble: 3
+ldouble: 3
Function: "sinh":
double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "sinh_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "sinh_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "sinh_upward":
double: 3
float: 3
idouble: 3
ifloat: 3
-ildouble: 2
-ldouble: 2
+ildouble: 4
+ldouble: 4
Function: "tan":
float: 1
ifloat: 1
+ildouble: 1
+ldouble: 1
Function: "tan_downward":
double: 1
@@ -2084,24 +2104,24 @@ double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "tanh_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
-ildouble: 2
-ldouble: 2
+ildouble: 4
+ldouble: 4
Function: "tanh_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "tanh_upward":
double: 3
@@ -2112,34 +2132,34 @@ ildouble: 3
ldouble: 3
Function: "tgamma":
-double: 3
-float: 5
-idouble: 3
-ifloat: 5
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
ildouble: 4
ldouble: 4
Function: "tgamma_downward":
-double: 3
-float: 4
-idouble: 3
-ifloat: 4
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
ildouble: 5
ldouble: 5
Function: "tgamma_towardzero":
-double: 3
-float: 5
-idouble: 3
-ifloat: 5
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
ildouble: 5
ldouble: 5
Function: "tgamma_upward":
-double: 3
-float: 5
-idouble: 3
-ifloat: 5
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
ildouble: 4
ldouble: 4
diff --git a/sysdeps/mips/mips64/lshift.S b/sysdeps/mips/mips64/lshift.S
index b5085041a3..fdd5b31fe7 100644
--- a/sysdeps/mips/mips64/lshift.S
+++ b/sysdeps/mips/mips64/lshift.S
@@ -1,6 +1,6 @@
/* MIPS3 __mpn_lshift --
*
- * Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2016 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/mul_1.S b/sysdeps/mips/mips64/mul_1.S
index 6fa41e9d00..eccd146033 100644
--- a/sysdeps/mips/mips64/mul_1.S
+++ b/sysdeps/mips/mips64/mul_1.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_mul_1 -- Multiply a limb vector with a single limb and
* store the product in a second limb vector.
*
- * Copyright (C) 1992-2015 Free Software Foundation, Inc.
+ * Copyright (C) 1992-2016 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/n32/crti.S b/sysdeps/mips/mips64/n32/crti.S
index 548c5227f1..00b89f3894 100644
--- a/sysdeps/mips/mips64/n32/crti.S
+++ b/sysdeps/mips/mips64/n32/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n32).
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/n32/crtn.S b/sysdeps/mips/mips64/n32/crtn.S
index e19c9776e3..d4e6b685dd 100644
--- a/sysdeps/mips/mips64/n32/crtn.S
+++ b/sysdeps/mips/mips64/n32/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n32).
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/n64/crti.S b/sysdeps/mips/mips64/n64/crti.S
index 55ab3fdfb3..f59b20c631 100644
--- a/sysdeps/mips/mips64/n64/crti.S
+++ b/sysdeps/mips/mips64/n64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n64).
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/n64/crtn.S b/sysdeps/mips/mips64/n64/crtn.S
index a18f9cdbd6..98649008a3 100644
--- a/sysdeps/mips/mips64/n64/crtn.S
+++ b/sysdeps/mips/mips64/n64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n64).
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/rshift.S b/sysdeps/mips/mips64/rshift.S
index 5f8e7f9376..ade44fec65 100644
--- a/sysdeps/mips/mips64/rshift.S
+++ b/sysdeps/mips/mips64/rshift.S
@@ -1,6 +1,6 @@
/* MIPS3 __mpn_rshift --
*
- * Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2016 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/setjmp.S b/sysdeps/mips/mips64/setjmp.S
index e78ce25214..e72eaa71fd 100644
--- a/sysdeps/mips/mips64/setjmp.S
+++ b/sysdeps/mips/mips64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/mips64/setjmp_aux.c b/sysdeps/mips/mips64/setjmp_aux.c
index 6eeab2b744..d924c97ce3 100644
--- a/sysdeps/mips/mips64/setjmp_aux.c
+++ b/sysdeps/mips/mips64/setjmp_aux.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
diff --git a/sysdeps/mips/mips64/sub_n.S b/sysdeps/mips/mips64/sub_n.S
index 69fcac76a0..4b3cce4037 100644
--- a/sysdeps/mips/mips64/sub_n.S
+++ b/sysdeps/mips/mips64/sub_n.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
* store difference in a third limb vector.
*
- * Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2016 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mips64/submul_1.S b/sysdeps/mips/mips64/submul_1.S
index 0522ca600e..40cf6fb482 100644
--- a/sysdeps/mips/mips64/submul_1.S
+++ b/sysdeps/mips/mips64/submul_1.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_submul_1 -- Multiply a limb vector with a single limb and
* subtract the product from a second limb vector.
*
- * Copyright (C) 1992-2015 Free Software Foundation, Inc.
+ * Copyright (C) 1992-2016 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
diff --git a/sysdeps/mips/mul_1.S b/sysdeps/mips/mul_1.S
index 2defcabbf4..770f7786d1 100644
--- a/sysdeps/mips/mul_1.S
+++ b/sysdeps/mips/mul_1.S
@@ -1,7 +1,7 @@
/* MIPS __mpn_mul_1 -- Multiply a limb vector with a single limb and
store the product in a second limb vector.
-Copyright (C) 1995-2015 Free Software Foundation, Inc.
+Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/nptl/Makefile b/sysdeps/mips/nptl/Makefile
index 46baad538e..117744ffe2 100644
--- a/sysdeps/mips/nptl/Makefile
+++ b/sysdeps/mips/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2015 Free Software Foundation, Inc.
+# Copyright (C) 2005-2016 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/nptl/bits/pthreadtypes.h b/sysdeps/mips/nptl/bits/pthreadtypes.h
index 8cf45478b4..68ed94b145 100644
--- a/sysdeps/mips/nptl/bits/pthreadtypes.h
+++ b/sysdeps/mips/nptl/bits/pthreadtypes.h
@@ -1,5 +1,5 @@
/* Machine-specific pthread type layouts. MIPS version.
- Copyright (C) 2005-2015 Free Software Foundation, Inc.
+ Copyright (C) 2005-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/nptl/bits/semaphore.h b/sysdeps/mips/nptl/bits/semaphore.h
index 03b2e509bc..93c61cccdc 100644
--- a/sysdeps/mips/nptl/bits/semaphore.h
+++ b/sysdeps/mips/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/nptl/pthread_spin_lock.c b/sysdeps/mips/nptl/pthread_spin_lock.c
index b211909131..e681f5b193 100644
--- a/sysdeps/mips/nptl/pthread_spin_lock.c
+++ b/sysdeps/mips/nptl/pthread_spin_lock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/nptl/pthreaddef.h b/sysdeps/mips/nptl/pthreaddef.h
index 1933dfefcb..271155f810 100644
--- a/sysdeps/mips/nptl/pthreaddef.h
+++ b/sysdeps/mips/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/nptl/tls.h b/sysdeps/mips/nptl/tls.h
index ef1145779d..10ca878292 100644
--- a/sysdeps/mips/nptl/tls.h
+++ b/sysdeps/mips/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/MIPS version.
- Copyright (C) 2005-2015 Free Software Foundation, Inc.
+ Copyright (C) 2005-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,6 +25,8 @@
# include <stdbool.h>
# include <stddef.h>
# include <stdint.h>
+/* Get system call information. */
+# include <sysdep.h>
/* Type for the dtv. */
typedef union dtv
@@ -42,29 +44,37 @@ typedef union dtv
# define READ_THREAD_POINTER() (__builtin_thread_pointer ())
#else
/* Note: rd must be $v1 to be ABI-conformant. */
-# define READ_THREAD_POINTER() \
- ({ void *__result; \
- asm volatile (".set\tpush\n\t.set\tmips32r2\n\t" \
- "rdhwr\t%0, $29\n\t.set\tpop" : "=v" (__result)); \
- __result; })
+# if __mips_isa_rev >= 2
+# define READ_THREAD_POINTER() \
+ ({ void *__result; \
+ asm volatile ("rdhwr\t%0, $29" : "=v" (__result)); \
+ __result; })
+# else
+# define READ_THREAD_POINTER() \
+ ({ void *__result; \
+ asm volatile (".set\tpush\n\t.set\tmips32r2\n\t" \
+ "rdhwr\t%0, $29\n\t.set\tpop" : "=v" (__result)); \
+ __result; })
+# endif
#endif
#else /* __ASSEMBLER__ */
# include <tcb-offsets.h>
-# define READ_THREAD_POINTER(rd) \
- .set push; \
- .set mips32r2; \
- rdhwr rd, $29; \
- .set pop
+# if __mips_isa_rev >= 2
+# define READ_THREAD_POINTER(rd) rdhwr rd, $29
+# else
+# define READ_THREAD_POINTER(rd) \
+ .set push; \
+ .set mips32r2; \
+ rdhwr rd, $29; \
+ .set pop
+# endif
#endif /* __ASSEMBLER__ */
#ifndef __ASSEMBLER__
-/* Get system call information. */
-# include <sysdep.h>
-
/* The TP points to the start of the thread blocks. */
# define TLS_DTV_AT_TP 1
# define TLS_TCB_AT_TP 0
diff --git a/sysdeps/mips/regdef.h b/sysdeps/mips/regdef.h
index d4f284f2f9..64cffbf5b2 100644
--- a/sysdeps/mips/regdef.h
+++ b/sysdeps/mips/regdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ralf Baechle <ralf@gnu.org>.
diff --git a/sysdeps/mips/rshift.S b/sysdeps/mips/rshift.S
index df53e449cc..450c2f51d6 100644
--- a/sysdeps/mips/rshift.S
+++ b/sysdeps/mips/rshift.S
@@ -1,6 +1,6 @@
/* MIPS2 __mpn_rshift --
-Copyright (C) 1995-2015 Free Software Foundation, Inc.
+Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/setjmp.S b/sysdeps/mips/setjmp.S
index 26306b1ef5..8ddbf19085 100644
--- a/sysdeps/mips/setjmp.S
+++ b/sysdeps/mips/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/setjmp_aux.c b/sysdeps/mips/setjmp_aux.c
index b18d7e3e89..2539ee00af 100644
--- a/sysdeps/mips/setjmp_aux.c
+++ b/sysdeps/mips/setjmp_aux.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
diff --git a/sysdeps/mips/sgidefs.h b/sysdeps/mips/sgidefs.h
index 9fb3b37d48..ea9e497e32 100644
--- a/sysdeps/mips/sgidefs.h
+++ b/sysdeps/mips/sgidefs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ralf Baechle <ralf@gnu.org>.
diff --git a/sysdeps/mips/sotruss-lib.c b/sysdeps/mips/sotruss-lib.c
index 469d138665..ea28ec7b5b 100644
--- a/sysdeps/mips/sotruss-lib.c
+++ b/sysdeps/mips/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for MIPS.
- Copyright (C) 2012-2015 Free Software Foundation, Inc.
+ Copyright (C) 2012-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/stackinfo.h b/sysdeps/mips/stackinfo.h
index b27229d3b4..882d3ad3d4 100644
--- a/sysdeps/mips/stackinfo.h
+++ b/sysdeps/mips/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/start.S b/sysdeps/mips/start.S
index 5c9c83780b..cfbc297957 100644
--- a/sysdeps/mips/start.S
+++ b/sysdeps/mips/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF Mips ABI.
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/strcmp.S b/sysdeps/mips/strcmp.S
index 7ba79e7a02..f1278d267f 100644
--- a/sysdeps/mips/strcmp.S
+++ b/sysdeps/mips/strcmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/sub_n.S b/sysdeps/mips/sub_n.S
index ffc142c8f9..2d6bad1f90 100644
--- a/sysdeps/mips/sub_n.S
+++ b/sysdeps/mips/sub_n.S
@@ -1,7 +1,7 @@
/* MIPS2 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
store difference in a third limb vector.
-Copyright (C) 1995-2015 Free Software Foundation, Inc.
+Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/submul_1.S b/sysdeps/mips/submul_1.S
index abed351733..6acbb475fb 100644
--- a/sysdeps/mips/submul_1.S
+++ b/sysdeps/mips/submul_1.S
@@ -1,7 +1,7 @@
/* MIPS __mpn_submul_1 -- Multiply a limb vector with a single limb and
subtract the product from a second limb vector.
-Copyright (C) 1995-2015 Free Software Foundation, Inc.
+Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
diff --git a/sysdeps/mips/sys/asm.h b/sysdeps/mips/sys/asm.h
index 0ff88027db..3373b850a1 100644
--- a/sysdeps/mips/sys/asm.h
+++ b/sysdeps/mips/sys/asm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ralf Baechle <ralf@gnu.org>.
diff --git a/sysdeps/mips/sys/fpregdef.h b/sysdeps/mips/sys/fpregdef.h
index 6c4fc885d4..aa32f733ff 100644
--- a/sysdeps/mips/sys/fpregdef.h
+++ b/sysdeps/mips/sys/fpregdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/sys/regdef.h b/sysdeps/mips/sys/regdef.h
index 950fbe68a4..8416d97115 100644
--- a/sysdeps/mips/sys/regdef.h
+++ b/sysdeps/mips/sys/regdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ralf Baechle <ralf@gnu.org>.
diff --git a/sysdeps/mips/sys/tas.h b/sysdeps/mips/sys/tas.h
index e14b5f04c1..22907ab86f 100644
--- a/sysdeps/mips/sys/tas.h
+++ b/sysdeps/mips/sys/tas.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maciej W. Rozycki <macro@ds2.pg.gda.pl>, 2000.
@@ -41,7 +41,7 @@ __NTH (_test_and_set (int *__p, int __v))
__asm__ __volatile__
("/* Inline test and set */\n"
".set push\n\t"
-#if _MIPS_SIM == _ABIO32
+#if _MIPS_SIM == _ABIO32 && __mips < 2
".set mips2\n\t"
#endif
"sync\n\t"
diff --git a/sysdeps/mips/sys/ucontext.h b/sysdeps/mips/sys/ucontext.h
index bf324794d3..b3d752bc46 100644
--- a/sysdeps/mips/sys/ucontext.h
+++ b/sysdeps/mips/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tls-macros.h b/sysdeps/mips/tls-macros.h
index 3e87e42ea1..a6fdfbc0ad 100644
--- a/sysdeps/mips/tls-macros.h
+++ b/sysdeps/mips/tls-macros.h
@@ -2,6 +2,7 @@
#include <sys/cdefs.h>
#include <sys/asm.h>
+#include <sysdep.h>
#define __STRING2(X) __STRING(X)
#define ADDU __STRING2(PTR_ADDU)
@@ -38,6 +39,14 @@
# define UNLOAD_GP
#endif
+# if __mips_isa_rev >= 2
+# define TLS_RDHWR "rdhwr\t%0,$29"
+# else
+# define TLS_RDHWR \
+ ".set push\n\t.set mips32r2\n\t" \
+ "rdhwr\t%0,$29\n\t.set pop"
+#endif
+
#ifndef __mips16
# define TLS_GD(x) \
({ void *__result, *__tmp; \
@@ -60,8 +69,7 @@
__result; })
# define TLS_IE(x) \
({ void *__result, *__tmp; \
- asm (".set push\n\t.set mips32r2\n\t" \
- "rdhwr\t%0,$29\n\t.set pop" \
+ asm (TLS_RDHWR \
: "=v" (__result)); \
asm (LOAD_GP LW " $3,%%gottprel(" #x ")($28)\n\t" \
ADDU " %0,%0,$3" \
@@ -71,8 +79,7 @@
__result; })
# define TLS_LE(x) \
({ void *__result; \
- asm (".set push\n\t.set mips32r2\n\t" \
- "rdhwr\t%0,$29\n\t.set pop" \
+ asm (TLS_RDHWR \
: "=v" (__result)); \
asm ("lui $3,%%tprel_hi(" #x ")\n\t" \
"addiu $3,$3,%%tprel_lo(" #x ")\n\t" \
diff --git a/sysdeps/mips/tst-abi-fp32mod.c b/sysdeps/mips/tst-abi-fp32mod.c
index a43aca3b0a..860f7979b1 100644
--- a/sysdeps/mips/tst-abi-fp32mod.c
+++ b/sysdeps/mips/tst-abi-fp32mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-abi-fp64amod.c b/sysdeps/mips/tst-abi-fp64amod.c
index a062568633..8b336cec5a 100644
--- a/sysdeps/mips/tst-abi-fp64amod.c
+++ b/sysdeps/mips/tst-abi-fp64amod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-abi-fp64mod.c b/sysdeps/mips/tst-abi-fp64mod.c
index 03c33460b6..9ef89f2446 100644
--- a/sysdeps/mips/tst-abi-fp64mod.c
+++ b/sysdeps/mips/tst-abi-fp64mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-abi-fpxxmod.c b/sysdeps/mips/tst-abi-fpxxmod.c
index ed61201de2..1ecaa22da6 100644
--- a/sysdeps/mips/tst-abi-fpxxmod.c
+++ b/sysdeps/mips/tst-abi-fpxxmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-abi-fpxxomod.c b/sysdeps/mips/tst-abi-fpxxomod.c
index 47946b75f6..1fe40fa3b1 100644
--- a/sysdeps/mips/tst-abi-fpxxomod.c
+++ b/sysdeps/mips/tst-abi-fpxxomod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-abi-interlink.c b/sysdeps/mips/tst-abi-interlink.c
index a42a811b62..125f98ffeb 100644
--- a/sysdeps/mips/tst-abi-interlink.c
+++ b/sysdeps/mips/tst-abi-interlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-audit.h b/sysdeps/mips/tst-audit.h
index 32ad4d1204..a24bf75f02 100644
--- a/sysdeps/mips/tst-audit.h
+++ b/sysdeps/mips/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. ARM version.
- Copyright (C) 2005-2015 Free Software Foundation, Inc.
+ Copyright (C) 2005-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/mips/tst-mode-switch-1.c b/sysdeps/mips/tst-mode-switch-1.c
index 71ea2d1b00..1a26e4c7b5 100644
--- a/sysdeps/mips/tst-mode-switch-1.c
+++ b/sysdeps/mips/tst-mode-switch-1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-mode-switch-2.c b/sysdeps/mips/tst-mode-switch-2.c
index 3f731e13a1..b41acf45d3 100644
--- a/sysdeps/mips/tst-mode-switch-2.c
+++ b/sysdeps/mips/tst-mode-switch-2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/mips/tst-mode-switch-3.c b/sysdeps/mips/tst-mode-switch-3.c
index 9bc08f7327..65e2b5eebd 100644
--- a/sysdeps/mips/tst-mode-switch-3.c
+++ b/sysdeps/mips/tst-mode-switch-3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or