diff options
Diffstat (limited to 'sysdeps/mips/mips64')
25 files changed, 202 insertions, 169 deletions
diff --git a/sysdeps/mips/mips64/__longjmp.c b/sysdeps/mips/mips64/__longjmp.c index 147e979232..e5d413280c 100644 --- a/sysdeps/mips/mips64/__longjmp.c +++ b/sysdeps/mips/mips64/__longjmp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2016 Free Software Foundation, Inc. +/* Copyright (C) 1992-2018 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/add_n.S b/sysdeps/mips/mips64/add_n.S index 056aee7e76..46d6f77162 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-2016 Free Software Foundation, Inc. + * Copyright (C) 1995-2018 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 d7fe56bcde..dae3a74438 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-2016 Free Software Foundation, Inc. + * Copyright (C) 1992-2018 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 cd2ae472eb..f58ee38d1f 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-2016 Free Software Foundation, Inc. + Copyright (C) 1996-2018 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 8b094a30ea..1f084daf3c 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-2016 Free Software Foundation, Inc. + Copyright (C) 1996-2018 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 4453ac8ee0..6e3352962f 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-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2018 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 1e76391a60..9874aaefe3 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-2016 Free Software Foundation, Inc. +Copyright (C) 1991-2018 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 5bf6f3e65b..82b15be5af 100644 --- a/sysdeps/mips/mips64/libm-test-ulps +++ b/sysdeps/mips/mips64/libm-test-ulps @@ -250,36 +250,36 @@ ildouble: 2 ldouble: 2 Function: Imaginary part of "cacos": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 ildouble: 2 ldouble: 2 Function: Real part of "cacos_downward": -double: 2 +double: 3 float: 2 -idouble: 2 +idouble: 3 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 3 +ldouble: 3 Function: Imaginary part of "cacos_downward": double: 5 float: 3 idouble: 5 ifloat: 3 -ildouble: 5 -ldouble: 5 +ildouble: 6 +ldouble: 6 Function: Real part of "cacos_towardzero": -double: 2 +double: 3 float: 2 -idouble: 2 +idouble: 3 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 3 +ldouble: 3 Function: Imaginary part of "cacos_towardzero": double: 5 @@ -298,17 +298,17 @@ ildouble: 3 ldouble: 3 Function: Imaginary part of "cacos_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 +double: 5 +float: 7 +idouble: 5 +ifloat: 7 +ildouble: 7 +ldouble: 7 Function: Real part of "cacosh": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 ildouble: 2 ldouble: 2 @@ -330,12 +330,12 @@ ildouble: 5 ldouble: 5 Function: Imaginary part of "cacosh_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 +double: 3 +float: 3 +idouble: 3 +ifloat: 3 +ildouble: 4 +ldouble: 4 Function: Real part of "cacosh_towardzero": double: 5 @@ -346,28 +346,28 @@ ildouble: 5 ldouble: 5 Function: Imaginary part of "cacosh_towardzero": -double: 2 +double: 3 float: 2 -idouble: 2 +idouble: 3 ifloat: 2 -ildouble: 2 -ldouble: 2 +ildouble: 3 +ldouble: 3 Function: Real part of "cacosh_upward": double: 4 float: 4 idouble: 4 ifloat: 4 -ildouble: 5 -ldouble: 5 +ildouble: 6 +ldouble: 6 Function: Imaginary part of "cacosh_upward": -double: 2 +double: 3 float: 2 -idouble: 2 +idouble: 3 ifloat: 2 -ildouble: 3 -ldouble: 3 +ildouble: 4 +ldouble: 4 Function: "carg": float: 1 @@ -408,18 +408,18 @@ ildouble: 2 ldouble: 2 Function: Imaginary part of "casin": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 ildouble: 2 ldouble: 2 Function: Real part of "casin_downward": double: 3 -float: 1 +float: 2 idouble: 3 -ifloat: 1 +ifloat: 2 ildouble: 3 ldouble: 3 @@ -428,8 +428,8 @@ double: 5 float: 3 idouble: 5 ifloat: 3 -ildouble: 5 -ldouble: 5 +ildouble: 6 +ldouble: 6 Function: Real part of "casin_towardzero": double: 3 @@ -448,25 +448,25 @@ ildouble: 5 ldouble: 5 Function: Real part of "casin_upward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 +double: 3 +float: 2 +idouble: 3 +ifloat: 2 ildouble: 3 ldouble: 3 Function: Imaginary part of "casin_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 +double: 5 +float: 7 +idouble: 5 +ifloat: 7 +ildouble: 7 +ldouble: 7 Function: Real part of "casinh": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 ildouble: 2 ldouble: 2 @@ -484,14 +484,14 @@ double: 5 float: 3 idouble: 5 ifloat: 3 -ildouble: 5 -ldouble: 5 +ildouble: 6 +ldouble: 6 Function: Imaginary part of "casinh_downward": double: 3 -float: 1 +float: 2 idouble: 3 -ifloat: 1 +ifloat: 2 ildouble: 3 ldouble: 3 @@ -512,23 +512,25 @@ ildouble: 3 ldouble: 3 Function: Real part of "casinh_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 +double: 5 +float: 7 +idouble: 5 +ifloat: 7 +ildouble: 7 +ldouble: 7 Function: Imaginary part of "casinh_upward": -double: 2 +double: 3 float: 2 -idouble: 2 +idouble: 3 ifloat: 2 ildouble: 3 ldouble: 3 Function: Real part of "catan": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 @@ -543,9 +545,9 @@ ldouble: 1 Function: Real part of "catan_downward": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 +ifloat: 2 ildouble: 2 ldouble: 2 @@ -554,30 +556,32 @@ double: 2 float: 2 idouble: 2 ifloat: 2 -ildouble: 3 -ldouble: 3 +ildouble: 2 +ldouble: 2 Function: Real part of "catan_towardzero": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 +ifloat: 2 ildouble: 2 ldouble: 2 Function: Imaginary part of "catan_towardzero": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 +ifloat: 2 +ildouble: 2 +ldouble: 2 Function: Real part of "catan_upward": +double: 1 float: 1 +idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: Imaginary part of "catan_upward": double: 3 @@ -596,7 +600,9 @@ ildouble: 1 ldouble: 1 Function: Imaginary part of "catanh": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 @@ -606,8 +612,8 @@ double: 2 float: 2 idouble: 2 ifloat: 2 -ildouble: 3 -ldouble: 3 +ildouble: 2 +ldouble: 2 Function: Imaginary part of "catanh_downward": double: 1 @@ -619,11 +625,11 @@ ldouble: 2 Function: Real part of "catanh_towardzero": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 +ifloat: 2 +ildouble: 2 +ldouble: 2 Function: Imaginary part of "catanh_towardzero": double: 1 @@ -635,17 +641,19 @@ ldouble: 2 Function: Real part of "catanh_upward": double: 4 -float: 3 +float: 4 idouble: 4 -ifloat: 3 +ifloat: 4 ildouble: 4 ldouble: 4 Function: Imaginary part of "catanh_upward": +double: 1 float: 1 +idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: "cbrt": double: 3 @@ -903,9 +911,9 @@ ldouble: 2 Function: Real part of "clog10_downward": double: 5 -float: 4 +float: 5 idouble: 5 -ifloat: 4 +ifloat: 5 ildouble: 3 ldouble: 3 @@ -998,7 +1006,9 @@ ildouble: 2 ldouble: 2 Function: "cos": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 @@ -1061,9 +1071,9 @@ ldouble: 3 Function: Real part of "cpow": double: 2 -float: 4 +float: 5 idouble: 2 -ifloat: 4 +ifloat: 5 ildouble: 4 ldouble: 4 @@ -1317,9 +1327,9 @@ ldouble: 3 Function: Imaginary part of "ctan": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 +ifloat: 2 ildouble: 3 ldouble: 3 @@ -1333,9 +1343,9 @@ ldouble: 4 Function: Imaginary part of "ctan_downward": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 +ifloat: 2 ildouble: 5 ldouble: 5 @@ -1357,9 +1367,9 @@ ldouble: 5 Function: Real part of "ctan_upward": double: 2 -float: 3 +float: 4 idouble: 2 -ifloat: 3 +ifloat: 4 ildouble: 5 ldouble: 5 @@ -1373,9 +1383,9 @@ ldouble: 5 Function: Real part of "ctanh": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 +ifloat: 2 ildouble: 3 ldouble: 3 @@ -1389,9 +1399,9 @@ ldouble: 3 Function: Real part of "ctanh_downward": double: 4 -float: 1 +float: 2 idouble: 4 -ifloat: 1 +ifloat: 2 ildouble: 5 ldouble: 5 @@ -1569,15 +1579,21 @@ ldouble: 2 Function: "exp_downward": double: 1 +float: 1 idouble: 1 +ifloat: 1 Function: "exp_towardzero": double: 1 +float: 1 idouble: 1 +ifloat: 1 Function: "exp_upward": double: 1 +float: 1 idouble: 1 +ifloat: 1 Function: "expm1": double: 1 @@ -1677,9 +1693,9 @@ ldouble: 2 Function: "j0_downward": double: 2 -float: 3 +float: 4 idouble: 2 -ifloat: 3 +ifloat: 4 ildouble: 4 ldouble: 4 @@ -1709,9 +1725,9 @@ ldouble: 4 Function: "j1_downward": double: 3 -float: 2 +float: 3 idouble: 3 -ifloat: 2 +ifloat: 3 ildouble: 4 ldouble: 4 @@ -1918,41 +1934,13 @@ ildouble: 1 ldouble: 1 Function: "pow": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 2 ldouble: 2 -Function: "pow10": -double: 2 -idouble: 2 -ildouble: 2 -ldouble: 2 - -Function: "pow10_downward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "pow10_towardzero": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "pow10_upward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - Function: "pow_downward": double: 1 float: 1 @@ -1978,7 +1966,9 @@ ildouble: 2 ldouble: 2 Function: "sin": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 @@ -2008,7 +1998,9 @@ ildouble: 3 ldouble: 3 Function: "sincos": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 @@ -2173,9 +2165,9 @@ ldouble: 3 Function: "y0_downward": double: 3 -float: 2 +float: 4 idouble: 3 -ifloat: 2 +ifloat: 4 ildouble: 4 ldouble: 4 @@ -2189,9 +2181,9 @@ ldouble: 3 Function: "y0_upward": double: 3 -float: 4 +float: 5 idouble: 3 -ifloat: 4 +ifloat: 5 ildouble: 3 ldouble: 3 @@ -2229,17 +2221,17 @@ ldouble: 5 Function: "yn": double: 3 -float: 2 +float: 3 idouble: 3 -ifloat: 2 +ifloat: 3 ildouble: 5 ldouble: 5 Function: "yn_downward": double: 3 -float: 2 +float: 4 idouble: 3 -ifloat: 2 +ifloat: 4 ildouble: 5 ldouble: 5 @@ -2253,9 +2245,9 @@ ldouble: 5 Function: "yn_upward": double: 4 -float: 4 +float: 5 idouble: 4 -ifloat: 4 +ifloat: 5 ildouble: 5 ldouble: 5 diff --git a/sysdeps/mips/mips64/libm-test-ulps-name b/sysdeps/mips/mips64/libm-test-ulps-name new file mode 100644 index 0000000000..916e314f86 --- /dev/null +++ b/sysdeps/mips/mips64/libm-test-ulps-name @@ -0,0 +1 @@ +MIPS 64-bit diff --git a/sysdeps/mips/mips64/lshift.S b/sysdeps/mips/mips64/lshift.S index fdd5b31fe7..73b1cfb8e7 100644 --- a/sysdeps/mips/mips64/lshift.S +++ b/sysdeps/mips/mips64/lshift.S @@ -1,6 +1,6 @@ /* MIPS3 __mpn_lshift -- * - * Copyright (C) 1995-2016 Free Software Foundation, Inc. + * Copyright (C) 1995-2018 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 eccd146033..8707257a68 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-2016 Free Software Foundation, Inc. + * Copyright (C) 1992-2018 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 00b89f3894..59a09d5763 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-2016 Free Software Foundation, Inc. + Copyright (C) 1995-2018 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 @@ -40,6 +40,12 @@ #include <libc-symbols.h> +#ifdef __mips_micromips +# define JALR_RELOC R_MICROMIPS_JALR +#else +# define JALR_RELOC R_MIPS_JALR +#endif + #ifndef PREINIT_FUNCTION # define PREINIT_FUNCTION __gmon_start__ #endif @@ -59,6 +65,7 @@ .section .init,"ax",@progbits .p2align 2 .globl _init + .hidden _init .type _init, @function _init: addiu $sp,$sp,-16 @@ -71,18 +78,20 @@ _init: lw $2,%got_disp(PREINIT_FUNCTION)($28) beq $2,$0,.Lno_weak_fn lw $25,%call16(PREINIT_FUNCTION)($28) - .reloc 1f,R_MIPS_JALR,PREINIT_FUNCTION + .reloc 1f,JALR_RELOC,PREINIT_FUNCTION 1: jalr $25 .Lno_weak_fn: + .insn #else lw $25,%got_disp(PREINIT_FUNCTION)($28) - .reloc 1f,R_MIPS_JALR,PREINIT_FUNCTION + .reloc 1f,JALR_RELOC,PREINIT_FUNCTION 1: jalr $25 #endif .section .fini,"ax",@progbits .p2align 2 .globl _fini + .hidden _fini .type _fini, @function _fini: addiu $sp,$sp,-16 diff --git a/sysdeps/mips/mips64/n32/crtn.S b/sysdeps/mips/mips64/n32/crtn.S index d4e6b685dd..6fa7630d0c 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-2016 Free Software Foundation, Inc. + Copyright (C) 1995-2018 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/fpu/s_fma.c b/sysdeps/mips/mips64/n32/fpu/s_fma.c new file mode 100644 index 0000000000..b61fa643de --- /dev/null +++ b/sysdeps/mips/mips64/n32/fpu/s_fma.c @@ -0,0 +1 @@ +#include <sysdeps/ieee754/dbl-64/s_fma.c> diff --git a/sysdeps/mips/mips64/n32/nofpu/Implies b/sysdeps/mips/mips64/n32/nofpu/Implies new file mode 100644 index 0000000000..abcbadb25f --- /dev/null +++ b/sysdeps/mips/mips64/n32/nofpu/Implies @@ -0,0 +1 @@ +ieee754/soft-fp diff --git a/sysdeps/mips/mips64/n64/crti.S b/sysdeps/mips/mips64/n64/crti.S index f59b20c631..fd468f0467 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-2016 Free Software Foundation, Inc. + Copyright (C) 1995-2018 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 @@ -40,6 +40,12 @@ #include <libc-symbols.h> +#ifdef __mips_micromips +# define JALR_RELOC R_MICROMIPS_JALR +#else +# define JALR_RELOC R_MIPS_JALR +#endif + #ifndef PREINIT_FUNCTION # define PREINIT_FUNCTION __gmon_start__ #endif @@ -59,6 +65,7 @@ .section .init,"ax",@progbits .p2align 2 .globl _init + .hidden _init .type _init, @function _init: daddiu $sp,$sp,-16 @@ -71,18 +78,20 @@ _init: ld $2,%got_disp(PREINIT_FUNCTION)($28) beq $2,$0,.Lno_weak_fn ld $25,%call16(PREINIT_FUNCTION)($28) - .reloc 1f,R_MIPS_JALR,PREINIT_FUNCTION + .reloc 1f,JALR_RELOC,PREINIT_FUNCTION 1: jalr $25 .Lno_weak_fn: + .insn #else ld $25,%got_disp(PREINIT_FUNCTION)($28) - .reloc 1f,R_MIPS_JALR,PREINIT_FUNCTION + .reloc 1f,JALR_RELOC,PREINIT_FUNCTION 1: jalr $25 #endif .section .fini,"ax",@progbits .p2align 2 .globl _fini + .hidden _fini .type _fini, @function _fini: daddiu $sp,$sp,-16 diff --git a/sysdeps/mips/mips64/n64/crtn.S b/sysdeps/mips/mips64/n64/crtn.S index 98649008a3..13f72c754c 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-2016 Free Software Foundation, Inc. + Copyright (C) 1995-2018 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/fpu/s_fma.c b/sysdeps/mips/mips64/n64/fpu/s_fma.c new file mode 100644 index 0000000000..b61fa643de --- /dev/null +++ b/sysdeps/mips/mips64/n64/fpu/s_fma.c @@ -0,0 +1 @@ +#include <sysdeps/ieee754/dbl-64/s_fma.c> diff --git a/sysdeps/mips/mips64/n64/nofpu/Implies b/sysdeps/mips/mips64/n64/nofpu/Implies new file mode 100644 index 0000000000..abcbadb25f --- /dev/null +++ b/sysdeps/mips/mips64/n64/nofpu/Implies @@ -0,0 +1 @@ +ieee754/soft-fp diff --git a/sysdeps/mips/mips64/rshift.S b/sysdeps/mips/mips64/rshift.S index ade44fec65..22eede3b78 100644 --- a/sysdeps/mips/mips64/rshift.S +++ b/sysdeps/mips/mips64/rshift.S @@ -1,6 +1,6 @@ /* MIPS3 __mpn_rshift -- * - * Copyright (C) 1995-2016 Free Software Foundation, Inc. + * Copyright (C) 1995-2018 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 e72eaa71fd..ea30bd8efa 100644 --- a/sysdeps/mips/mips64/setjmp.S +++ b/sysdeps/mips/mips64/setjmp.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 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 @@ -42,3 +42,4 @@ ENTRY (__sigsetjmp) #endif jr t9 END (__sigsetjmp) +hidden_def (__sigsetjmp) diff --git a/sysdeps/mips/mips64/setjmp_aux.c b/sysdeps/mips/mips64/setjmp_aux.c index d924c97ce3..5354d40f38 100644 --- a/sysdeps/mips/mips64/setjmp_aux.c +++ b/sysdeps/mips/mips64/setjmp_aux.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Brendan Kehoe (brendan@zen.org). @@ -24,7 +24,12 @@ pointer. We do things this way because it's difficult to reliably access them in C. */ +/* Stack protection is disabled to avoid changing s0 (or any other + caller-save register) before storing it to environment. + See BZ #22624. */ + int +inhibit_stack_protector __sigsetjmp_aux (jmp_buf env, int savemask, long long sp, long long fp, long long gp) { diff --git a/sysdeps/mips/mips64/sfp-machine.h b/sysdeps/mips/mips64/sfp-machine.h index 708afc783e..35cc4ddeb1 100644 --- a/sysdeps/mips/mips64/sfp-machine.h +++ b/sysdeps/mips/mips64/sfp-machine.h @@ -44,9 +44,20 @@ # define _FP_QNANNEGATEDP 1 #endif +#ifdef __mips_nan2008 +/* NaN payloads should be preserved for NAN2008. */ +# define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ + do \ + { \ + R##_s = X##_s; \ + _FP_FRAC_COPY_##wc (R, X); \ + R##_c = FP_CLS_NAN; \ + } \ + while (0) +#else /* From my experiments it seems X is chosen unless one of the NaNs is sNaN, in which case the result is NANSIGN/NANFRAC. */ -#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ +# define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ do { \ if ((_FP_FRAC_HIGH_RAW_##fs(X) | \ _FP_FRAC_HIGH_RAW_##fs(Y)) & _FP_QNANBIT_##fs) \ @@ -61,6 +72,7 @@ } \ R##_c = FP_CLS_NAN; \ } while (0) +#endif #define _FP_DECL_EX fpu_control_t _fcw diff --git a/sysdeps/mips/mips64/sub_n.S b/sysdeps/mips/mips64/sub_n.S index 4b3cce4037..6cc09a7771 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-2016 Free Software Foundation, Inc. + * Copyright (C) 1995-2018 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 40cf6fb482..fb9a1c2375 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-2016 Free Software Foundation, Inc. + * Copyright (C) 1992-2018 Free Software Foundation, Inc. * * This file is part of the GNU MP Library. * |