diff options
Diffstat (limited to 'sysdeps/alpha')
187 files changed, 704 insertions, 1188 deletions
diff --git a/sysdeps/alpha/Implies b/sysdeps/alpha/Implies index d03783b127..18fc4f339d 100644 --- a/sysdeps/alpha/Implies +++ b/sysdeps/alpha/Implies @@ -4,4 +4,3 @@ ieee754/ldbl-128 ieee754/dbl-64/wordsize-64 ieee754/dbl-64 ieee754/flt-32 -alpha/soft-fp diff --git a/sysdeps/alpha/Makefile b/sysdeps/alpha/Makefile index 9c6ca6db74..0651414b03 100644 --- a/sysdeps/alpha/Makefile +++ b/sysdeps/alpha/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1993-2016 Free Software Foundation, Inc. +# Copyright (C) 1993-2018 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Brendan Kehoe (brendan@zen.org). @@ -60,3 +60,15 @@ sysdep-CFLAGS += -mieee -mfp-rounding-mode=d # libc.so requires about 16k for the small data area, which is well # below the 64k maximum. pic-ccflag = -fpic + +# Software floating-point emulation. + +ifeq ($(subdir),soft-fp) +sysdep_routines += ots_add ots_sub ots_mul ots_div ots_cmp ots_cmpe \ + ots_cvtxq ots_cvtqx ots_cvtqux ots_cvttx ots_cvtxt ots_nintxq \ + fraiseexcpt +endif + +ifeq ($(subdir),math) +CPPFLAGS += -I../soft-fp +endif diff --git a/sysdeps/alpha/Versions b/sysdeps/alpha/Versions index ae8fde7b23..f9946abf14 100644 --- a/sysdeps/alpha/Versions +++ b/sysdeps/alpha/Versions @@ -4,6 +4,12 @@ libc { __divqu; __remqu; __divqs; __remqs; __divlu; __remlu; __divls; __remls; __divl; __reml; __divq; __remq; __divqu; __remqu; } + GLIBC_2.3.4 { + _OtsAddX; _OtsSubX; _OtsMulX; _OtsDivX; + _OtsEqlX; _OtsNeqX; _OtsLssX; _OtsLeqX; _OtsGtrX; _OtsGeqX; + _OtsCvtQX; _OtsCvtQUX; _OtsCvtXQ; _OtsNintXQ; + _OtsConvertFloatTX; _OtsConvertFloatXT; + } } libm { GLIBC_2.0 { diff --git a/sysdeps/alpha/__longjmp.S b/sysdeps/alpha/__longjmp.S index 7fe20adc0f..b082d46768 100644 --- a/sysdeps/alpha/__longjmp.S +++ b/sysdeps/alpha/__longjmp.S @@ -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. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/alpha/_mcount.S b/sysdeps/alpha/_mcount.S index 46e7b55965..34c8cb4faf 100644 --- a/sysdeps/alpha/_mcount.S +++ b/sysdeps/alpha/_mcount.S @@ -1,5 +1,5 @@ /* Machine-specific calling sequence for `mcount' profiling function. alpha - Copyright (C) 1995-2016 Free Software Foundation, Inc. + Copyright (C) 1995-2018 Free Software Foundation, Inc. Contributed by David Mosberger (davidm@cs.arizona.edu). This file is part of the GNU C Library. diff --git a/sysdeps/alpha/add_n.S b/sysdeps/alpha/add_n.S index 23ae40278a..5e79946beb 100644 --- a/sysdeps/alpha/add_n.S +++ b/sysdeps/alpha/add_n.S @@ -1,7 +1,7 @@ # Alpha __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/alpha/addmul_1.S b/sysdeps/alpha/addmul_1.S index 7afef97d7b..857826cf4b 100644 --- a/sysdeps/alpha/addmul_1.S +++ b/sysdeps/alpha/addmul_1.S @@ -1,7 +1,7 @@ # Alpha 21064 __mpn_addmul_1 -- Multiply a limb vector with a limb and add # the result 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/alpha/alphaev5/add_n.S b/sysdeps/alpha/alphaev5/add_n.S index 7ff77d3574..fe2830ebf2 100644 --- a/sysdeps/alpha/alphaev5/add_n.S +++ b/sysdeps/alpha/alphaev5/add_n.S @@ -1,7 +1,7 @@ # Alpha __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/alpha/alphaev5/lshift.S b/sysdeps/alpha/alphaev5/lshift.S index bb4f6c2424..62d2806bbd 100644 --- a/sysdeps/alpha/alphaev5/lshift.S +++ b/sysdeps/alpha/alphaev5/lshift.S @@ -1,6 +1,6 @@ # Alpha EV5 __mpn_lshift -- - # Copyright (C) 1994-2016 Free Software Foundation, Inc. + # Copyright (C) 1994-2018 Free Software Foundation, Inc. # This file is part of the GNU MP Library. diff --git a/sysdeps/alpha/alphaev5/rshift.S b/sysdeps/alpha/alphaev5/rshift.S index f3a6b139cf..bcda73c42b 100644 --- a/sysdeps/alpha/alphaev5/rshift.S +++ b/sysdeps/alpha/alphaev5/rshift.S @@ -1,6 +1,6 @@ # Alpha EV5 __mpn_rshift -- - # Copyright (C) 1994-2016 Free Software Foundation, Inc. + # Copyright (C) 1994-2018 Free Software Foundation, Inc. # This file is part of the GNU MP Library. diff --git a/sysdeps/alpha/alphaev5/sub_n.S b/sysdeps/alpha/alphaev5/sub_n.S index 50c4134501..fa2e3e4b73 100644 --- a/sysdeps/alpha/alphaev5/sub_n.S +++ b/sysdeps/alpha/alphaev5/sub_n.S @@ -1,7 +1,7 @@ # Alpha __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/alpha/alphaev6/addmul_1.S b/sysdeps/alpha/alphaev6/addmul_1.S index f8e3c47f5b..0912f1bc49 100644 --- a/sysdeps/alpha/alphaev6/addmul_1.S +++ b/sysdeps/alpha/alphaev6/addmul_1.S @@ -1,7 +1,7 @@ # Alpha ev6 mpn_addmul_1 -- Multiply a limb vector with a limb and add # the result to a second limb vector. # - # Copyright (C) 2000-2016 Free Software Foundation, Inc. + # Copyright (C) 2000-2018 Free Software Foundation, Inc. # # This file is part of the GNU MP Library. # diff --git a/sysdeps/alpha/alphaev6/fpu/e_sqrt.S b/sysdeps/alpha/alphaev6/fpu/e_sqrt.S index dd983a66b2..b5923e67b3 100644 --- a/sysdeps/alpha/alphaev6/fpu/e_sqrt.S +++ b/sysdeps/alpha/alphaev6/fpu/e_sqrt.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-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/alpha/alphaev6/fpu/e_sqrtf.S b/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S index 9dd5363dbd..a7f25e1abe 100644 --- a/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S +++ b/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-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/alpha/alphaev6/memcpy.S b/sysdeps/alpha/alphaev6/memcpy.S index da889e5bdb..7cf94d8bb7 100644 --- a/sysdeps/alpha/alphaev6/memcpy.S +++ b/sysdeps/alpha/alphaev6/memcpy.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. EV6 optimized by Rick Gorton <rick.gorton@alpha-processor.com>. diff --git a/sysdeps/alpha/alphaev6/memset.S b/sysdeps/alpha/alphaev6/memset.S index c116a8e6d9..e1a2525e82 100644 --- a/sysdeps/alpha/alphaev6/memset.S +++ b/sysdeps/alpha/alphaev6/memset.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu) EV6 optimized by Rick Gorton <rick.gorton@alpha-processor.com>. This file is part of the GNU C Library. diff --git a/sysdeps/alpha/alphaev6/stxcpy.S b/sysdeps/alpha/alphaev6/stxcpy.S index 7493dcde8e..33e8e8de9c 100644 --- a/sysdeps/alpha/alphaev6/stxcpy.S +++ b/sysdeps/alpha/alphaev6/stxcpy.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu) EV6 optimized by Rick Gorton <rick.gorton@alpha-processor.com>. This file is part of the GNU C Library. diff --git a/sysdeps/alpha/alphaev6/stxncpy.S b/sysdeps/alpha/alphaev6/stxncpy.S index ab31270509..ed582a4e7c 100644 --- a/sysdeps/alpha/alphaev6/stxncpy.S +++ b/sysdeps/alpha/alphaev6/stxncpy.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu) EV6 optimized by Rick Gorton <rick.gorton@alpha-processor.com>. This file is part of the GNU C Library. diff --git a/sysdeps/alpha/alphaev67/ffs.S b/sysdeps/alpha/alphaev67/ffs.S index 8e9ec78209..d715c321eb 100644 --- a/sysdeps/alpha/alphaev67/ffs.S +++ b/sysdeps/alpha/alphaev67/ffs.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-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/alpha/alphaev67/ffsll.S b/sysdeps/alpha/alphaev67/ffsll.S index b674e84d27..f555eb5137 100644 --- a/sysdeps/alpha/alphaev67/ffsll.S +++ b/sysdeps/alpha/alphaev67/ffsll.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-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/alpha/alphaev67/rawmemchr.S b/sysdeps/alpha/alphaev67/rawmemchr.S index 13b7b3c29c..09df8f7a4c 100644 --- a/sysdeps/alpha/alphaev67/rawmemchr.S +++ b/sysdeps/alpha/alphaev67/rawmemchr.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-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/alpha/alphaev67/stpcpy.S b/sysdeps/alpha/alphaev67/stpcpy.S index 6137b5e0d2..47da958810 100644 --- a/sysdeps/alpha/alphaev67/stpcpy.S +++ b/sysdeps/alpha/alphaev67/stpcpy.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <rth@redhat.com>. diff --git a/sysdeps/alpha/alphaev67/stpncpy.S b/sysdeps/alpha/alphaev67/stpncpy.S index a839cc0cc4..f0de95992a 100644 --- a/sysdeps/alpha/alphaev67/stpncpy.S +++ b/sysdeps/alpha/alphaev67/stpncpy.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@redhat.com) This file is part of the GNU C Library. diff --git a/sysdeps/alpha/alphaev67/strcat.S b/sysdeps/alpha/alphaev67/strcat.S index c12eba2173..03f2ad0bdd 100644 --- a/sysdeps/alpha/alphaev67/strcat.S +++ b/sysdeps/alpha/alphaev67/strcat.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Richard Henderson <rth@tamu.edu>, 1996. EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>. This file is part of the GNU C Library. diff --git a/sysdeps/alpha/alphaev67/strchr.S b/sysdeps/alpha/alphaev67/strchr.S index 0b23709832..536799e0e2 100644 --- a/sysdeps/alpha/alphaev67/strchr.S +++ b/sysdeps/alpha/alphaev67/strchr.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Richard Henderson <rth@tamu.edu>, 1996. EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>. This file is part of the GNU C Library. diff --git a/sysdeps/alpha/alphaev67/strlen.S b/sysdeps/alpha/alphaev67/strlen.S index e589373ccc..26bdd53d51 100644 --- a/sysdeps/alpha/alphaev67/strlen.S +++ b/sysdeps/alpha/alphaev67/strlen.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by David Mosberger (davidm@cs.arizona.edu). EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>. This file is part of the GNU C Library. diff --git a/sysdeps/alpha/alphaev67/strncat.S b/sysdeps/alpha/alphaev67/strncat.S index 4705b842a9..667d447e98 100644 --- a/sysdeps/alpha/alphaev67/strncat.S +++ b/sysdeps/alpha/alphaev67/strncat.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. Contributed by Richard Henderson <rth@tamu.edu>, 1996. EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>. This file is part of the GNU C Library. diff --git a/sysdeps/alpha/alphaev67/strrchr.S b/sysdeps/alpha/alphaev67/strrchr.S index 54b816d1f0..b6629a37d7 100644 --- a/sysdeps/alpha/alphaev67/strrchr.S +++ b/sysdeps/alpha/alphaev67/strrchr.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>. This file is part of the GNU C Library. diff --git a/sysdeps/alpha/atomic-machine.h b/sysdeps/alpha/atomic-machine.h index d96cb7aa93..c33c6ddec3 100644 --- a/sysdeps/alpha/atomic-machine.h +++ b/sysdeps/alpha/atomic-machine.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. +/* Copyright (C) 2003-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 @@ -45,6 +45,9 @@ typedef uintmax_t uatomic_max_t; #define __HAVE_64B_ATOMICS 1 #define USE_ATOMIC_COMPILER_BUILTINS 0 +/* XXX Is this actually correct? */ +#define ATOMIC_EXCHANGE_USES_CAS 1 + #ifdef UP # define __MB /* nothing */ @@ -210,10 +213,6 @@ typedef uintmax_t uatomic_max_t; /* Compare and exchange with "release" semantics, ie barrier before. */ -#define atomic_compare_and_exchange_bool_rel(mem, new, old) \ - __atomic_bool_bysize (__arch_compare_and_exchange_bool, int, \ - mem, new, old, __MB, "") - #define atomic_compare_and_exchange_val_rel(mem, new, old) \ __atomic_val_bysize (__arch_compare_and_exchange_val, int, \ mem, new, old, __MB, "") diff --git a/sysdeps/alpha/backtrace.c b/sysdeps/alpha/backtrace.c deleted file mode 100644 index 27ce597b39..0000000000 --- a/sysdeps/alpha/backtrace.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/x86_64/backtrace.c> diff --git a/sysdeps/alpha/bb_init_func.S b/sysdeps/alpha/bb_init_func.S deleted file mode 100644 index 997a28952f..0000000000 --- a/sysdeps/alpha/bb_init_func.S +++ /dev/null @@ -1,86 +0,0 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. - Contributed by David Mosberger (davidm@cs.arizona.edu). - 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/>. */ - -/* __bb_init_func is invoked at the beginning of each function, before - any registers have been saved. It is therefore safe to use any - caller-saved (call-used) registers (except for argument registers - a1-a5). */ - -#include <sysdep.h> - -/* - * These offsets should match with "struct bb" declared in gcc/libgcc2.c. - */ -#define ZERO_WORD 0x00 -#define NEXT 0x20 - - .set noat - .set noreorder - -ENTRY(__bb_init_func) - .prologue 0 - - ldq t0, ZERO_WORD(a0) /* t0 <- blocks->zero_word */ - beq t0, init /* not initialized yet -> */ - ret - -END(__bb_init_func) - - .ent init -init: - .frame sp, 0x38, ra, 0 - subq sp, 0x38, sp - .prologue 0 - - stq pv, 0x30(sp) - br pv, 1f -1: ldgp gp, 0(pv) - - ldiq t1, __bb_head - lda t3, _gmonparam - ldq t2, 0(t1) - ldl t3, 0(t3) /* t3 = _gmonparam.state */ - lda t0, 1 - stq t0, ZERO_WORD(a0) /* blocks->zero_word = 1 */ - stq t2, NEXT(a0) /* blocks->next = __bb_head */ - stq a0, 0(t1) - bne t2, $leave - beq t3, $leave /* t3 == GMON_PROF_ON? yes -> */ - - /* also need to initialize destructor: */ - stq ra, 0x00(sp) - lda a0, __bb_exit_func - stq a1, 0x08(sp) - lda pv, atexit - stq a2, 0x10(sp) - stq a3, 0x18(sp) - stq a4, 0x20(sp) - stq a5, 0x28(sp) - jsr ra, (pv), atexit - ldq ra, 0x00(sp) - ldq a1, 0x08(sp) - ldq a2, 0x10(sp) - ldq a3, 0x18(sp) - ldq a4, 0x20(sp) - ldq a5, 0x28(sp) - -$leave: ldq pv, 0x30(sp) - addq sp, 0x38, sp - ret - - .end init diff --git a/sysdeps/alpha/bits/link.h b/sysdeps/alpha/bits/link.h index 7fe5fb4690..0043e21553 100644 --- a/sysdeps/alpha/bits/link.h +++ b/sysdeps/alpha/bits/link.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2016 Free Software Foundation, Inc. +/* Copyright (C) 2005-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/alpha/bits/mathdef.h b/sysdeps/alpha/bits/mathdef.h index ed70ad8dbd..91880c6d70 100644 --- a/sysdeps/alpha/bits/mathdef.h +++ b/sysdeps/alpha/bits/mathdef.h @@ -1,4 +1,4 @@ -/* 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. The GNU C Library is free software; you can redistribute it and/or @@ -15,26 +15,10 @@ License along with the GNU C Library. If not, see <http://www.gnu.org/licenses/>. */ -#if !defined _MATH_H && !defined _COMPLEX_H -# error "Never use <bits/mathdef.h> directly; include <math.h> instead" +#ifndef _COMPLEX_H +# error "Never use <bits/mathdef.h> directly; include <complex.h> instead" #endif -/* FIXME! This file describes properties of the compiler, not the machine; - it should not be part of libc! */ - -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* Alpha has "float" and "double" operations. */ -typedef float float_t; /* float expressions are evaluated as float. */ -typedef double double_t; /* double expressions are evaluated as double. */ - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647) -# define FP_ILOGBNAN (2147483647) - -#endif /* ISO C99 && MATH_H */ - #if defined _COMPLEX_H && !defined _COMPLEX_H_MATHDEF # define _COMPLEX_H_MATHDEF 1 # if defined(__GNUC__) && !__GNUC_PREREQ(3,4) diff --git a/sysdeps/alpha/bits/setjmp.h b/sysdeps/alpha/bits/setjmp.h index 75567aead3..f8c832ac3e 100644 --- a/sysdeps/alpha/bits/setjmp.h +++ b/sysdeps/alpha/bits/setjmp.h @@ -1,5 +1,5 @@ /* Define the machine-dependent type `jmp_buf'. Alpha version. - 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. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/alpha/bzero.S b/sysdeps/alpha/bzero.S index e603e42d90..f322dd6900 100644 --- a/sysdeps/alpha/bzero.S +++ b/sysdeps/alpha/bzero.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu) This file is part of the GNU C Library. diff --git a/sysdeps/alpha/crti.S b/sysdeps/alpha/crti.S index 068ed64c5e..bcce1e9055 100644 --- a/sysdeps/alpha/crti.S +++ b/sysdeps/alpha/crti.S @@ -1,5 +1,5 @@ /* Special .init and .fini section support for Alpha. - Copyright (C) 2001-2016 Free Software Foundation, Inc. + Copyright (C) 2001-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 @@ -67,6 +67,7 @@ .section .init, "ax", @progbits .globl _init + .hidden _init .type _init, @function .usepv _init, std _init: @@ -89,6 +90,7 @@ _init: .section .fini, "ax", @progbits .globl _fini + .hidden _fini .type _fini,@function .usepv _fini,std _fini: diff --git a/sysdeps/alpha/crtn.S b/sysdeps/alpha/crtn.S index 24363f3f6b..a34564088c 100644 --- a/sysdeps/alpha/crtn.S +++ b/sysdeps/alpha/crtn.S @@ -1,5 +1,5 @@ /* Special .init and .fini section support for Alpha. - Copyright (C) 2001-2016 Free Software Foundation, Inc. + Copyright (C) 2001-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/alpha/div.S b/sysdeps/alpha/div.S index aa19ad738e..519c72148a 100644 --- a/sysdeps/alpha/div.S +++ b/sysdeps/alpha/div.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. Contributed by Richard Henderson <rth@tamu.edu>. diff --git a/sysdeps/alpha/div_libc.h b/sysdeps/alpha/div_libc.h index 930f096560..4b5cfb30c0 100644 --- a/sysdeps/alpha/div_libc.h +++ b/sysdeps/alpha/div_libc.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2016 Free Software Foundation, Inc. +/* Copyright (C) 2004-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/alpha/divl.S b/sysdeps/alpha/divl.S index 0bad711269..0e6b299707 100644 --- a/sysdeps/alpha/divl.S +++ b/sysdeps/alpha/divl.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2016 Free Software Foundation, Inc. +/* Copyright (C) 2004-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/alpha/divq.S b/sysdeps/alpha/divq.S index 3a74d0be25..a232554ca7 100644 --- a/sysdeps/alpha/divq.S +++ b/sysdeps/alpha/divq.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2016 Free Software Foundation, Inc. +/* Copyright (C) 2004-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/alpha/divqu.S b/sysdeps/alpha/divqu.S index c934862658..ae12c4e846 100644 --- a/sysdeps/alpha/divqu.S +++ b/sysdeps/alpha/divqu.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2016 Free Software Foundation, Inc. +/* Copyright (C) 2004-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/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h index 25a63c798c..810ca30fa4 100644 --- a/sysdeps/alpha/dl-machine.h +++ b/sysdeps/alpha/dl-machine.h @@ -1,5 +1,5 @@ /* Machine-dependent ELF dynamic relocation inline functions. Alpha 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. Contributed by Richard Henderson <rth@tamu.edu>. @@ -260,6 +260,7 @@ dl_platform_init (void) rather than the dynamic linker. */ static inline Elf64_Addr elf_machine_fixup_plt (struct link_map *map, lookup_t t, + const ElfW(Sym) *refsym, const ElfW(Sym) *sym, const Elf64_Rela *reloc, Elf64_Addr *got_addr, Elf64_Addr value) { @@ -418,7 +419,7 @@ elf_machine_rela (struct link_map *map, if (sym_map) { sym_raw_value += sym->st_value; - sym_value = sym_raw_value + sym_map->l_addr; + sym_value += SYMBOL_ADDRESS (sym_map, sym, true); } if (r_type == R_ALPHA_GLOB_DAT) @@ -434,11 +435,11 @@ elf_machine_rela (struct link_map *map, RESOLVE_CONFLICT_FIND_MAP (map, reloc_addr); reloc = ((const Elf64_Rela *) D_PTR (map, l_info[DT_JMPREL])) + (r_type >> 8); - elf_machine_fixup_plt (map, 0, reloc, reloc_addr, sym_value); + elf_machine_fixup_plt (map, 0, 0, 0, reloc, reloc_addr, sym_value); } #else else if (r_type == R_ALPHA_JMP_SLOT) - elf_machine_fixup_plt (map, 0, reloc, reloc_addr, sym_value); + elf_machine_fixup_plt (map, 0, 0, 0, reloc, reloc_addr, sym_value); #endif #ifndef RTLD_BOOTSTRAP else if (r_type == R_ALPHA_REFQUAD) diff --git a/sysdeps/alpha/dl-procinfo.c b/sysdeps/alpha/dl-procinfo.c index 910d86f019..aba378093f 100644 --- a/sysdeps/alpha/dl-procinfo.c +++ b/sysdeps/alpha/dl-procinfo.c @@ -1,5 +1,5 @@ /* Data for Alpha version of processor capability information. - Copyright (C) 2008-2016 Free Software Foundation, Inc. + Copyright (C) 2008-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Aurelien Jarno <aurelien@aurel32.net>, 2008. diff --git a/sysdeps/alpha/dl-procinfo.h b/sysdeps/alpha/dl-procinfo.h index 97d9d62df0..c33af2ce2f 100644 --- a/sysdeps/alpha/dl-procinfo.h +++ b/sysdeps/alpha/dl-procinfo.h @@ -1,5 +1,5 @@ /* Alpha version of processor capability information handling macros. - Copyright (C) 2008-2016 Free Software Foundation, Inc. + Copyright (C) 2008-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Aurelien Jarno <aurelien@aurel32.net>, 2008. @@ -28,13 +28,6 @@ #define _DL_PLATFORMS_COUNT 5 -static inline const char * -__attribute__ ((unused)) -_dl_platform_string (int idx) -{ - return GLRO(dl_alpha_platforms)[idx]; -}; - static inline int __attribute__ ((unused, always_inline)) _dl_string_platform (const char *str) @@ -44,7 +37,7 @@ _dl_string_platform (const char *str) if (str != NULL) for (i = 0; i < _DL_PLATFORMS_COUNT; ++i) { - if (strcmp (str, _dl_platform_string (i)) == 0) + if (strcmp (str, GLRO(dl_alpha_platforms)[i]) == 0) return i; } return -1; diff --git a/sysdeps/alpha/dl-sysdep.h b/sysdeps/alpha/dl-sysdep.h index c1fed08bbf..257517be2a 100644 --- a/sysdeps/alpha/dl-sysdep.h +++ b/sysdeps/alpha/dl-sysdep.h @@ -1,5 +1,5 @@ /* System-specific settings for dynamic linker code. Alpha version. - Copyright (C) 2002-2016 Free Software Foundation, Inc. + Copyright (C) 2002-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/alpha/dl-tls.h b/sysdeps/alpha/dl-tls.h index 5f4e4cf4a6..cfd6e4454a 100644 --- a/sysdeps/alpha/dl-tls.h +++ b/sysdeps/alpha/dl-tls.h @@ -1,5 +1,5 @@ /* Thread-local storage handling in the ELF dynamic linker. Alpha version. - Copyright (C) 2002-2016 Free Software Foundation, Inc. + Copyright (C) 2002-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 @@ -25,6 +25,3 @@ typedef struct } tls_index; extern void *__tls_get_addr (tls_index *ti); - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/alpha/dl-trampoline.S b/sysdeps/alpha/dl-trampoline.S index 89ffa5d8ea..b326b37ace 100644 --- a/sysdeps/alpha/dl-trampoline.S +++ b/sysdeps/alpha/dl-trampoline.S @@ -1,5 +1,5 @@ /* PLT trampolines. Alpha version. - Copyright (C) 2005-2016 Free Software Foundation, Inc. + Copyright (C) 2005-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/alpha/soft-fp/e_sqrtl.c b/sysdeps/alpha/e_sqrtl.c index 1971591453..689681adfc 100644 --- a/sysdeps/alpha/soft-fp/e_sqrtl.c +++ b/sysdeps/alpha/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/alpha/ffs.S b/sysdeps/alpha/ffs.S index a4482f0568..158a78135f 100644 --- a/sysdeps/alpha/ffs.S +++ b/sysdeps/alpha/ffs.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 Free Software Foundation, Inc. Contributed by David Mosberger (davidm@cs.arizona.edu). This file is part of the GNU C Library. diff --git a/sysdeps/alpha/fpu/bits/fenv.h b/sysdeps/alpha/fpu/bits/fenv.h index b7da4a0eae..d4e0f73bc6 100644 --- a/sysdeps/alpha/fpu/bits/fenv.h +++ b/sysdeps/alpha/fpu/bits/fenv.h @@ -1,4 +1,4 @@ -/* 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. The GNU C Library is free software; you can redistribute it and/or @@ -131,3 +131,11 @@ typedef unsigned long int fenv_t; /* The system calls to talk to the kernel's FP code. */ extern unsigned long int __ieee_get_fp_control (void) __THROW; extern void __ieee_set_fp_control (unsigned long int __value) __THROW; + +#if __GLIBC_USE (IEC_60559_BFP_EXT) +/* Type representing floating-point control modes. */ +typedef unsigned long int femode_t; + +/* Default floating-point control modes. */ +# define FE_DFL_MODE ((const femode_t *) 0x8800000000000000UL) +#endif diff --git a/sysdeps/alpha/fpu/bits/mathinline.h b/sysdeps/alpha/fpu/bits/mathinline.h deleted file mode 100644 index d8ae1f4526..0000000000 --- a/sysdeps/alpha/fpu/bits/mathinline.h +++ /dev/null @@ -1,125 +0,0 @@ -/* Inline math functions for Alpha. - Copyright (C) 1996-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David Mosberger-Tang. - - 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 _MATH_H -# error "Never use <bits/mathinline.h> directly; include <math.h> instead." -#endif - -#ifndef __extern_inline -# define __MATH_INLINE __inline -#else -# define __MATH_INLINE __extern_inline -#endif - -#if defined __USE_ISOC99 && defined __GNUC__ && !__GNUC_PREREQ(3,0) -# undef isgreater -# undef isgreaterequal -# undef isless -# undef islessequal -# undef islessgreater -# undef isunordered -# define isunordered(u, v) \ - (__extension__ \ - ({ double __r, __u = (u), __v = (v); \ - __asm ("cmptun/su %1,%2,%0\n\ttrapb" \ - : "=&f" (__r) : "f" (__u), "f"(__v)); \ - __r != 0; })) -#endif /* ISO C99 */ - -#if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \ - && defined __OPTIMIZE__ - -#if !__GNUC_PREREQ (4, 0) -# define __inline_copysign(NAME, TYPE) \ -__MATH_INLINE TYPE \ -__NTH (NAME (TYPE __x, TYPE __y)) \ -{ \ - TYPE __z; \ - __asm ("cpys %1, %2, %0" : "=f" (__z) : "f" (__y), "f" (__x)); \ - return __z; \ -} - -__inline_copysign (__copysignf, float) -__inline_copysign (copysignf, float) -__inline_copysign (__copysign, double) -__inline_copysign (copysign, double) - -# undef __inline_copysign -#endif - - -#if !__GNUC_PREREQ (2, 8) -# define __inline_fabs(NAME, TYPE) \ -__MATH_INLINE TYPE \ -__NTH (NAME (TYPE __x)) \ -{ \ - TYPE __z; \ - __asm ("cpys $f31, %1, %0" : "=f" (__z) : "f" (__x)); \ - return __z; \ -} - -__inline_fabs (__fabsf, float) -__inline_fabs (fabsf, float) -__inline_fabs (__fabs, double) -__inline_fabs (fabs, double) - -# undef __inline_fabs -#endif - -#ifdef __USE_ISOC99 - -/* Test for negative number. Used in the signbit() macro. */ -__MATH_INLINE int -__NTH (__signbitf (float __x)) -{ -#if !__GNUC_PREREQ (4, 0) - __extension__ union { float __f; int __i; } __u = { __f: __x }; - return __u.__i < 0; -#else - return __builtin_signbitf (__x); -#endif -} - -__MATH_INLINE int -__NTH (__signbit (double __x)) -{ -#if !__GNUC_PREREQ (4, 0) - __extension__ union { double __d; long __i; } __u = { __d: __x }; - return __u.__i < 0; -#else - return __builtin_signbit (__x); -#endif -} - -__MATH_INLINE int -__NTH (__signbitl (long double __x)) -{ -#if !__GNUC_PREREQ (4, 0) - __extension__ union { - long double __d; - long __i[sizeof(long double)/sizeof(long)]; - } __u = { __d: __x }; - return __u.__i[sizeof(long double)/sizeof(long) - 1] < 0; -#else - return __builtin_signbitl (__x); -#endif -} -#endif /* C99 */ - -#endif /* __NO_MATH_INLINES */ diff --git a/sysdeps/alpha/fpu/cabsf.c b/sysdeps/alpha/fpu/cabsf.c index ae336bc9e5..3297bdd4d6 100644 --- a/sysdeps/alpha/fpu/cabsf.c +++ b/sysdeps/alpha/fpu/cabsf.c @@ -1,5 +1,5 @@ /* Return the complex absolute value of float complex value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -38,4 +38,4 @@ __c2_cabsf (c2_cfloat_decl (z)) return __hypotf (c2_cfloat_real (z), c2_cfloat_imag (z)); } -cfloat_versions (cabsf); +cfloat_versions (cabs); diff --git a/sysdeps/alpha/fpu/cargf.c b/sysdeps/alpha/fpu/cargf.c index d798a5b56b..be303fcd54 100644 --- a/sysdeps/alpha/fpu/cargf.c +++ b/sysdeps/alpha/fpu/cargf.c @@ -1,5 +1,5 @@ /* Compute argument of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -38,4 +38,4 @@ __c2_cargf (c2_cfloat_decl (x)) return __atan2f (c2_cfloat_imag (x), c2_cfloat_real (x)); } -cfloat_versions (cargf); +cfloat_versions (carg); diff --git a/sysdeps/alpha/fpu/cfloat-compat.h b/sysdeps/alpha/fpu/cfloat-compat.h index e837df0998..6833447335 100644 --- a/sysdeps/alpha/fpu/cfloat-compat.h +++ b/sysdeps/alpha/fpu/cfloat-compat.h @@ -1,5 +1,5 @@ /* Compatibility macros for old and new Alpha complex float ABI. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -43,6 +43,7 @@ typedef union { double d; _Complex float cf; } c1_compat; /* Get the proper symbol versions defined for each function. */ #include <shlib-compat.h> +#include <libm-alias-float.h> #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_3_4) #define cfloat_versions_compat(func) \ @@ -52,7 +53,8 @@ typedef union { double d; _Complex float cf; } c1_compat; #endif #define cfloat_versions(func) \ - cfloat_versions_compat(func); \ - versioned_symbol (libm, __c2_##func, func, GLIBC_2_3_4); \ - extern typeof(__c2_##func) __##func attribute_hidden; \ - strong_alias (__c2_##func, __##func) + cfloat_versions_compat(func##f); \ + versioned_symbol (libm, __c2_##func##f, func##f, GLIBC_2_3_4); \ + extern typeof(__c2_##func##f) __##func##f attribute_hidden; \ + strong_alias (__c2_##func##f, __##func##f); \ + libm_alias_float_other (__##func, func) diff --git a/sysdeps/alpha/fpu/cimagf.c b/sysdeps/alpha/fpu/cimagf.c index 66174281b9..4851032802 100644 --- a/sysdeps/alpha/fpu/cimagf.c +++ b/sysdeps/alpha/fpu/cimagf.c @@ -1,5 +1,5 @@ /* Return imaginary part of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -37,4 +37,4 @@ __c2_cimagf (c2_cfloat_decl (z)) return c2_cfloat_imag (z); } -cfloat_versions (cimagf); +cfloat_versions (cimag); diff --git a/sysdeps/alpha/fpu/conjf.c b/sysdeps/alpha/fpu/conjf.c index 0591487052..b6f5731315 100644 --- a/sysdeps/alpha/fpu/conjf.c +++ b/sysdeps/alpha/fpu/conjf.c @@ -1,5 +1,5 @@ /* Return complex conjugate of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -39,4 +39,4 @@ __c2_conjf (c2_cfloat_decl (z)) return c2_cfloat_return (r); } -cfloat_versions (conjf); +cfloat_versions (conj); diff --git a/sysdeps/alpha/fpu/crealf.c b/sysdeps/alpha/fpu/crealf.c index 811e78f38a..3ea623418f 100644 --- a/sysdeps/alpha/fpu/crealf.c +++ b/sysdeps/alpha/fpu/crealf.c @@ -1,5 +1,5 @@ /* Return real part of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -37,4 +37,4 @@ __c2_crealf (c2_cfloat_decl (z)) return c2_cfloat_real (z); } -cfloat_versions (crealf); +cfloat_versions (creal); diff --git a/sysdeps/alpha/fpu/e_sqrt.c b/sysdeps/alpha/fpu/e_sqrt.c index a03f105fc8..f57fc679d8 100644 --- a/sysdeps/alpha/fpu/e_sqrt.c +++ b/sysdeps/alpha/fpu/e_sqrt.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 Free Software Foundation, Inc. Contributed by David Mosberger (davidm@cs.arizona.edu). This file is part of the GNU C Library. diff --git a/sysdeps/alpha/fpu/fclrexcpt.c b/sysdeps/alpha/fpu/fclrexcpt.c index 4903b046e1..943d829710 100644 --- a/sysdeps/alpha/fpu/fclrexcpt.c +++ b/sysdeps/alpha/fpu/fclrexcpt.c @@ -1,5 +1,5 @@ /* Clear given exceptions in current floating-point environment. - 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@tamu.edu>, 1997. diff --git a/sysdeps/alpha/fpu/fedisblxcpt.c b/sysdeps/alpha/fpu/fedisblxcpt.c index 14d8429073..3b8fe0b2e1 100644 --- a/sysdeps/alpha/fpu/fedisblxcpt.c +++ b/sysdeps/alpha/fpu/fedisblxcpt.c @@ -1,5 +1,5 @@ /* Disable floating-point exceptions. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2000. diff --git a/sysdeps/alpha/fpu/feenablxcpt.c b/sysdeps/alpha/fpu/feenablxcpt.c index df72c00cdb..65a0516fde 100644 --- a/sysdeps/alpha/fpu/feenablxcpt.c +++ b/sysdeps/alpha/fpu/feenablxcpt.c @@ -1,5 +1,5 @@ /* Enable floating-point exceptions. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2000. diff --git a/sysdeps/alpha/fpu/fegetenv.c b/sysdeps/alpha/fpu/fegetenv.c index 70db2f9f37..df2e940585 100644 --- a/sysdeps/alpha/fpu/fegetenv.c +++ b/sysdeps/alpha/fpu/fegetenv.c @@ -1,5 +1,5 @@ /* Store current floating-point environment. - 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@tamu.edu>, 1997 diff --git a/sysdeps/alpha/fpu/fegetexcept.c b/sysdeps/alpha/fpu/fegetexcept.c index 71c3ba92c9..9eef8ec1a5 100644 --- a/sysdeps/alpha/fpu/fegetexcept.c +++ b/sysdeps/alpha/fpu/fegetexcept.c @@ -1,5 +1,5 @@ /* Get enabled floating-point exceptions. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2000. diff --git a/sysdeps/alpha/fpu/fegetmode.c b/sysdeps/alpha/fpu/fegetmode.c new file mode 100644 index 0000000000..7008154701 --- /dev/null +++ b/sysdeps/alpha/fpu/fegetmode.c @@ -0,0 +1,33 @@ +/* Store current floating-point control modes. Alpha version. + Copyright (C) 2016-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 + 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/>. */ + +#include <fenv_libc.h> + +int +fegetmode (femode_t *modep) +{ + unsigned long int fpcr; + unsigned long int swcr; + + /* As in fegetenv. */ + swcr = __ieee_get_fp_control (); + __asm__ __volatile__ ("mf_fpcr %0" : "=f" (fpcr)); + *modep = ((fpcr & FPCR_ROUND_MASK) | (swcr & SWCR_ALL_MASK)); + + return 0; +} diff --git a/sysdeps/alpha/fpu/fegetround.c b/sysdeps/alpha/fpu/fegetround.c index 6a1d93dd52..8202a896ec 100644 --- a/sysdeps/alpha/fpu/fegetround.c +++ b/sysdeps/alpha/fpu/fegetround.c @@ -1,5 +1,5 @@ /* Return current rounding direction. - 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@tamu.edu>, 1997 diff --git a/sysdeps/alpha/fpu/feholdexcpt.c b/sysdeps/alpha/fpu/feholdexcpt.c index 019d30b5a2..5095d78045 100644 --- a/sysdeps/alpha/fpu/feholdexcpt.c +++ b/sysdeps/alpha/fpu/feholdexcpt.c @@ -1,5 +1,5 @@ /* Store current floating-point environment and clear exceptions. - 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@tamu.edu>, 1997 @@ -23,7 +23,7 @@ int __feholdexcept (fenv_t *envp) { /* Save the current state. */ - fegetenv(envp); + __fegetenv(envp); /* Clear all exception status bits and exception enable bits. */ __ieee_set_fp_control(*envp & SWCR_MAP_MASK); diff --git a/sysdeps/alpha/fpu/fenv_libc.h b/sysdeps/alpha/fpu/fenv_libc.h index e9908cb7b9..68f3d70309 100644 --- a/sysdeps/alpha/fpu/fenv_libc.h +++ b/sysdeps/alpha/fpu/fenv_libc.h @@ -1,5 +1,5 @@ /* Internal libc stuff for floating point environment routines. - Copyright (C) 2000-2016 Free Software Foundation, Inc. + Copyright (C) 2000-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/alpha/fpu/fesetenv.c b/sysdeps/alpha/fpu/fesetenv.c index 0a3aeb61ca..1494d504d3 100644 --- a/sysdeps/alpha/fpu/fesetenv.c +++ b/sysdeps/alpha/fpu/fesetenv.c @@ -1,5 +1,5 @@ /* Install given floating-point environment. - 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@tamu.edu>, 1997 diff --git a/sysdeps/alpha/fpu/s_nearbyint.c b/sysdeps/alpha/fpu/fesetexcept.c index 899e14341f..ee9c393557 100644 --- a/sysdeps/alpha/fpu/s_nearbyint.c +++ b/sysdeps/alpha/fpu/fesetexcept.c @@ -1,6 +1,6 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Set given exception flags. Alpha version. + Copyright (C) 2016-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. - Contributed by Richard Henderson. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -13,13 +13,19 @@ 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 + License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <math_ldbl_opt.h> +#include <fenv_libc.h> -#include <sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c> +int +fesetexcept (int excepts) +{ + unsigned long int tmp; -#if LONG_DOUBLE_COMPAT (libm, GLIBC_2_1) -compat_symbol (libm, __nearbyint, nearbyintl, GLIBC_2_1); -#endif + tmp = __ieee_get_fp_control (); + tmp |= excepts & SWCR_STATUS_MASK; + __ieee_set_fp_control (tmp); + + return 0; +} diff --git a/sysdeps/alpha/fpu/fesetmode.c b/sysdeps/alpha/fpu/fesetmode.c new file mode 100644 index 0000000000..a892d33473 --- /dev/null +++ b/sysdeps/alpha/fpu/fesetmode.c @@ -0,0 +1,44 @@ +/* Install given floating-point control modes. Alpha version. + Copyright (C) 2016-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 + 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/>. */ + +#include <fenv_libc.h> + +int +fesetmode (const femode_t *modep) +{ + unsigned long int fpcr; + unsigned long int swcr; + femode_t mode; + + /* As in fesetenv. */ + if ((long int) modep >= 0) + mode = *modep; + else + mode = (unsigned long int) modep; + + __asm__ __volatile__ ("excb; mf_fpcr %0" : "=f" (fpcr)); + fpcr = (fpcr & ~FPCR_ROUND_MASK) | (mode & FPCR_ROUND_MASK); + __asm__ __volatile__ ("mt_fpcr %0" : : "f" (fpcr)); + + swcr = __ieee_get_fp_control (); + swcr = ((mode & SWCR_ALL_MASK & ~SWCR_STATUS_MASK) + | (swcr & SWCR_STATUS_MASK)); + __ieee_set_fp_control (swcr); + + return 0; +} diff --git a/sysdeps/alpha/fpu/fesetround.c b/sysdeps/alpha/fpu/fesetround.c index fb6b8da16d..1da6459e3b 100644 --- a/sysdeps/alpha/fpu/fesetround.c +++ b/sysdeps/alpha/fpu/fesetround.c @@ -1,5 +1,5 @@ /* Set current rounding direction. - 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@tamu.edu>, 1997 diff --git a/sysdeps/alpha/fpu/feupdateenv.c b/sysdeps/alpha/fpu/feupdateenv.c index 89050f58f3..3f2e8f41a5 100644 --- a/sysdeps/alpha/fpu/feupdateenv.c +++ b/sysdeps/alpha/fpu/feupdateenv.c @@ -1,5 +1,5 @@ /* Install given floating-point environment and raise exceptions. - 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@tamu.edu>, 1997. diff --git a/sysdeps/alpha/fpu/fgetexcptflg.c b/sysdeps/alpha/fpu/fgetexcptflg.c index 18a52ff6a5..d4e6844ffe 100644 --- a/sysdeps/alpha/fpu/fgetexcptflg.c +++ b/sysdeps/alpha/fpu/fgetexcptflg.c @@ -1,5 +1,5 @@ /* Store current representation for exceptions. - 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@tamu.edu>, 1997. diff --git a/sysdeps/alpha/fpu/fpu_control.h b/sysdeps/alpha/fpu/fpu_control.h index 29f17b198c..3a16ba5a1c 100644 --- a/sysdeps/alpha/fpu/fpu_control.h +++ b/sysdeps/alpha/fpu/fpu_control.h @@ -1,5 +1,5 @@ /* FPU control word bits. Alpha-mapped-to-Intel 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. Contributed by Olaf Flebbe. diff --git a/sysdeps/alpha/fpu/fsetexcptflg.c b/sysdeps/alpha/fpu/fsetexcptflg.c index 84041c5578..409d1f7aeb 100644 --- a/sysdeps/alpha/fpu/fsetexcptflg.c +++ b/sysdeps/alpha/fpu/fsetexcptflg.c @@ -1,5 +1,5 @@ /* Set floating-point environment exception handling. - 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@tamu.edu>, 1997. diff --git a/sysdeps/alpha/fpu/ftestexcept.c b/sysdeps/alpha/fpu/ftestexcept.c index 958b216b5b..f2eb7ded9a 100644 --- a/sysdeps/alpha/fpu/ftestexcept.c +++ b/sysdeps/alpha/fpu/ftestexcept.c @@ -1,5 +1,5 @@ /* Test exception in current environment. - 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@tamu.edu>, 1997. diff --git a/sysdeps/alpha/fpu/get-rounding-mode.h b/sysdeps/alpha/fpu/get-rounding-mode.h index 9d891de19e..7cd7d55a04 100644 --- a/sysdeps/alpha/fpu/get-rounding-mode.h +++ b/sysdeps/alpha/fpu/get-rounding-mode.h @@ -1,5 +1,5 @@ /* Determine floating-point rounding mode within libc. Alpha version. - Copyright (C) 2012-2016 Free Software Foundation, Inc. + Copyright (C) 2012-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/alpha/fpu/libm-test-ulps b/sysdeps/alpha/fpu/libm-test-ulps index 6ec37f72ac..12a6127ddf 100644 --- a/sysdeps/alpha/fpu/libm-test-ulps +++ b/sysdeps/alpha/fpu/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 @@ -559,25 +561,27 @@ ldouble: 3 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 +ifloat: 2 ildouble: 3 ldouble: 3 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 @@ -619,9 +625,9 @@ ldouble: 2 Function: Real part of "catanh_towardzero": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 +ifloat: 2 ildouble: 3 ldouble: 3 @@ -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 @@ -1061,9 +1069,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 +1325,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 +1341,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 +1365,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 +1381,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 +1397,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 +1577,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 +1691,9 @@ ldouble: 2 Function: "j0_downward": double: 2 -float: 3 +float: 4 idouble: 2 -ifloat: 3 +ifloat: 4 ildouble: 4 ldouble: 4 @@ -1709,9 +1723,9 @@ ldouble: 4 Function: "j1_downward": double: 3 -float: 2 +float: 3 idouble: 3 -ifloat: 2 +ifloat: 3 ildouble: 4 ldouble: 4 @@ -1923,36 +1937,6 @@ 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 @@ -2173,9 +2157,9 @@ ldouble: 3 Function: "y0_downward": double: 3 -float: 2 +float: 4 idouble: 3 -ifloat: 2 +ifloat: 4 ildouble: 4 ldouble: 4 @@ -2189,9 +2173,9 @@ ldouble: 3 Function: "y0_upward": double: 3 -float: 4 +float: 5 idouble: 3 -ifloat: 4 +ifloat: 5 ildouble: 3 ldouble: 3 @@ -2229,17 +2213,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 +2237,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/alpha/fpu/libm-test-ulps-name b/sysdeps/alpha/fpu/libm-test-ulps-name new file mode 100644 index 0000000000..5219734094 --- /dev/null +++ b/sysdeps/alpha/fpu/libm-test-ulps-name @@ -0,0 +1 @@ +Alpha diff --git a/sysdeps/alpha/fpu/s_truncf.c b/sysdeps/alpha/fpu/math-barriers.h index 2290f28295..27a64d789d 100644 --- a/sysdeps/alpha/fpu/s_truncf.c +++ b/sysdeps/alpha/fpu/math-barriers.h @@ -1,6 +1,6 @@ -/* Copyright (C) 2007-2016 Free Software Foundation, Inc. +/* Control when floating-point expressions are evaluated. Alpha version. + Copyright (C) 2014-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. - Contributed by Richard Henderson. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -13,32 +13,16 @@ 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 + License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <math.h> +#ifndef ALPHA_MATH_BARRIERS_H +#define ALPHA_MATH_BARRIERS_H 1 +/* Generic code forces values to memory; we don't need to do that. */ +#define math_opt_barrier(x) \ + ({ __typeof (x) __x = (x); __asm ("" : "+frm" (__x)); __x; }) +#define math_force_eval(x) \ + ({ __typeof (x) __x = (x); __asm __volatile__ ("" : : "frm" (__x)); }) -/* Use the chopped rounding mode conversion instructions to implement trunc. */ - -float -__truncf (float x) -{ - float two23 = copysignf (0x1.0p23, x); - float r, tmp; - - __asm ( -#ifdef _IEEE_FP_INEXACT - "adds/suic %2, %3, %1\n\tsubs/suic %1, %3, %0" -#else - "adds/suc %2, %3, %1\n\tsubs/suc %1, %3, %0" #endif - : "=&f"(r), "=&f"(tmp) - : "f"(x), "f"(two23)); - - /* trunc(-0) == -0, and in general we'll always have the same - sign as our input. */ - return copysignf (r, x); -} - -weak_alias (__truncf, truncf) diff --git a/sysdeps/alpha/fpu/math_private.h b/sysdeps/alpha/fpu/math_private.h index 9e06e25dc6..c71447abf0 100644 --- a/sysdeps/alpha/fpu/math_private.h +++ b/sysdeps/alpha/fpu/math_private.h @@ -13,38 +13,6 @@ # define __isnanf __isnanf #endif -/* Generic code forces values to memory; we don't need to do that. */ -#define math_opt_barrier(x) \ - ({ __typeof (x) __x = (x); __asm ("" : "+frm" (__x)); __x; }) -#define math_force_eval(x) \ - ({ __typeof (x) __x = (x); __asm __volatile__ ("" : : "frm" (__x)); }) - #include_next <math_private.h> -#ifdef __alpha_fix__ -extern __always_inline double -__ieee754_sqrt (double d) -{ - double ret; -# ifdef _IEEE_FP_INEXACT - asm ("sqrtt/suid %1,%0" : "=f"(ret) : "f"(d)); -# else - asm ("sqrtt/sud %1,%0" : "=f"(ret) : "f"(d)); -# endif - return ret; -} - -extern __always_inline float -__ieee754_sqrtf (float d) -{ - float ret; -# ifdef _IEEE_FP_INEXACT - asm ("sqrts/suid %1,%0" : "=f"(ret) : "f"(d)); -# else - asm ("sqrts/sud %1,%0" : "=f"(ret) : "f"(d)); -# endif - return ret; -} -#endif /* FIX */ - #endif /* ALPHA_MATH_PRIVATE_H */ diff --git a/sysdeps/alpha/fpu/s_cacosf.c b/sysdeps/alpha/fpu/s_cacosf.c index 25e21bb43f..91c4fb28fc 100644 --- a/sysdeps/alpha/fpu/s_cacosf.c +++ b/sysdeps/alpha/fpu/s_cacosf.c @@ -1,5 +1,5 @@ /* Return arc cosine of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,11 +24,18 @@ #undef __cacosf #undef cacosf -#define __cacosf internal_cacosf static _Complex float internal_cacosf (_Complex float x); -#include <math/s_cacosf.c> +#define M_DECL_FUNC(f) internal_cacosf +#include <math-type-macros-float.h> + +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_cacos_template.c> + #include "cfloat-compat.h" #undef __cacosf @@ -47,4 +54,4 @@ __c2_cacosf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (cacosf); +cfloat_versions (cacos); diff --git a/sysdeps/alpha/fpu/s_cacoshf.c b/sysdeps/alpha/fpu/s_cacoshf.c index 43b6542ce6..a66ab27a2e 100644 --- a/sysdeps/alpha/fpu/s_cacoshf.c +++ b/sysdeps/alpha/fpu/s_cacoshf.c @@ -1,5 +1,5 @@ /* Return arc hyperbole cosine of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,11 +24,17 @@ #undef __cacoshf #undef cacoshf -#define __cacoshf internal_cacoshf static _Complex float internal_cacoshf (_Complex float x); -#include <math/s_cacoshf.c> +#define M_DECL_FUNC(f) internal_cacoshf +#include <math-type-macros-float.h> + +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_cacosh_template.c> #include "cfloat-compat.h" #undef __cacoshf @@ -47,4 +53,4 @@ __c2_cacoshf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (cacoshf); +cfloat_versions (cacosh); diff --git a/sysdeps/alpha/fpu/s_casinf.c b/sysdeps/alpha/fpu/s_casinf.c index f85f524c48..1ce6a68ba3 100644 --- a/sysdeps/alpha/fpu/s_casinf.c +++ b/sysdeps/alpha/fpu/s_casinf.c @@ -1,5 +1,5 @@ /* Return arc sine of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __casinf #undef casinf -#define __casinf internal_casinf static _Complex float internal_casinf (_Complex float x); -#include <math/s_casinf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_casinf +#include <math-type-macros-float.h> -#undef __casinf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_casin_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_casinf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_casinf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (casinf); +cfloat_versions (casin); diff --git a/sysdeps/alpha/fpu/s_casinhf.c b/sysdeps/alpha/fpu/s_casinhf.c index 720294ea00..02cafe649b 100644 --- a/sysdeps/alpha/fpu/s_casinhf.c +++ b/sysdeps/alpha/fpu/s_casinhf.c @@ -1,5 +1,5 @@ /* Return arc hyperbole sine of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __casinhf #undef casinhf -#define __casinhf internal_casinhf static _Complex float internal_casinhf (_Complex float x); -#include <math/s_casinhf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_casinhf +#include <math-type-macros-float.h> -#undef __casinhf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_casinh_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_casinhf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_casinhf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (casinhf); +cfloat_versions (casinh); diff --git a/sysdeps/alpha/fpu/s_catanf.c b/sysdeps/alpha/fpu/s_catanf.c index 76c1718dff..2ed7e941d5 100644 --- a/sysdeps/alpha/fpu/s_catanf.c +++ b/sysdeps/alpha/fpu/s_catanf.c @@ -1,5 +1,5 @@ /* Return arc tangent of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __catanf #undef catanf -#define __catanf internal_catanf static _Complex float internal_catanf (_Complex float x); -#include <math/s_catanf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_catanf +#include <math-type-macros-float.h> -#undef __catanf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_catan_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_catanf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_catanf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (catanf); +cfloat_versions (catan); diff --git a/sysdeps/alpha/fpu/s_catanhf.c b/sysdeps/alpha/fpu/s_catanhf.c index 18148ddafb..da783d2454 100644 --- a/sysdeps/alpha/fpu/s_catanhf.c +++ b/sysdeps/alpha/fpu/s_catanhf.c @@ -1,5 +1,5 @@ /* Return arc hyperbole tangent of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __catanhf #undef catanhf -#define __catanhf internal_catanhf static _Complex float internal_catanhf (_Complex float x); -#include <math/s_catanhf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_catanhf +#include <math-type-macros-float.h> -#undef __catanhf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_catanh_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_catanhf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_catanhf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (catanhf); +cfloat_versions (catanh); diff --git a/sysdeps/alpha/fpu/s_ccosf.c b/sysdeps/alpha/fpu/s_ccosf.c index 886be62edf..2ec5aaaef7 100644 --- a/sysdeps/alpha/fpu/s_ccosf.c +++ b/sysdeps/alpha/fpu/s_ccosf.c @@ -1,5 +1,5 @@ /* Return cosine of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __ccosf #undef ccosf -#define __ccosf internal_ccosf static _Complex float internal_ccosf (_Complex float x); -#include <math/s_ccosf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_ccosf +#include <math-type-macros-float.h> -#undef __ccosf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_ccos_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_ccosf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_ccosf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (ccosf); +cfloat_versions (ccos); diff --git a/sysdeps/alpha/fpu/s_ccoshf.c b/sysdeps/alpha/fpu/s_ccoshf.c index 16f49de6d4..5259949a4d 100644 --- a/sysdeps/alpha/fpu/s_ccoshf.c +++ b/sysdeps/alpha/fpu/s_ccoshf.c @@ -1,5 +1,5 @@ /* Return hyperbole cosine of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __ccoshf #undef ccoshf -#define __ccoshf internal_ccoshf static _Complex float internal_ccoshf (_Complex float x); -#include <math/s_ccoshf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_ccoshf +#include <math-type-macros-float.h> -#undef __ccoshf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_ccosh_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_ccoshf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_ccoshf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (ccoshf); +cfloat_versions (ccosh); diff --git a/sysdeps/alpha/fpu/s_ceil.c b/sysdeps/alpha/fpu/s_ceil.c deleted file mode 100644 index c1ff864d4b..0000000000 --- a/sysdeps/alpha/fpu/s_ceil.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright (C) 1998-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson. - - 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/>. */ - -#include <math.h> -#include <math_ldbl_opt.h> - -/* Use the -inf rounding mode conversion instructions to implement - ceil, via something akin to -floor(-x). This is much faster than - playing with the fpcr to achieve +inf rounding mode. */ - -double -__ceil (double x) -{ - if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */ - { - double tmp1, new_x; - - new_x = -x; - __asm ( -#ifdef _IEEE_FP_INEXACT - "cvttq/svim %2,%1\n\t" -#else - "cvttq/svm %2,%1\n\t" -#endif - "cvtqt/m %1,%0\n\t" - : "=f"(new_x), "=&f"(tmp1) - : "f"(new_x)); - - /* Fix up the negation we did above, as well as handling -0 properly. */ - x = copysign(new_x, x); - } - return x; -} - -weak_alias (__ceil, ceil) -#ifdef NO_LONG_DOUBLE -strong_alias (__ceil, __ceill) -weak_alias (__ceil, ceill) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __ceil, ceill, GLIBC_2_0); -#endif diff --git a/sysdeps/alpha/fpu/s_ceilf.c b/sysdeps/alpha/fpu/s_ceilf.c deleted file mode 100644 index 7e63a6fe94..0000000000 --- a/sysdeps/alpha/fpu/s_ceilf.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright (C) 1998-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson. - - 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/>. */ - -#include <math.h> - -/* Use the -inf rounding mode conversion instructions to implement - ceil, via something akin to -floor(-x). This is much faster than - playing with the fpcr to achieve +inf rounding mode. */ - -float -__ceilf (float x) -{ - if (isless (fabsf (x), 16777216.0f)) /* 1 << FLT_MANT_DIG */ - { - /* Note that Alpha S_Floating is stored in registers in a - restricted T_Floating format, so we don't even need to - convert back to S_Floating in the end. The initial - conversion to T_Floating is needed to handle denormals. */ - - float tmp1, tmp2, new_x; - - new_x = -x; - __asm ("cvtst/s %3,%2\n\t" -#ifdef _IEEE_FP_INEXACT - "cvttq/svim %2,%1\n\t" -#else - "cvttq/svm %2,%1\n\t" -#endif - "cvtqt/m %1,%0\n\t" - : "=f"(new_x), "=&f"(tmp1), "=&f"(tmp2) - : "f"(new_x)); - - /* Fix up the negation we did above, as well as handling -0 properly. */ - x = copysignf(new_x, x); - } - return x; -} - -weak_alias (__ceilf, ceilf) diff --git a/sysdeps/alpha/fpu/s_cexpf.c b/sysdeps/alpha/fpu/s_cexpf.c index 2ae519c687..dcf9ad1c79 100644 --- a/sysdeps/alpha/fpu/s_cexpf.c +++ b/sysdeps/alpha/fpu/s_cexpf.c @@ -1,5 +1,5 @@ /* Return exponent of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __cexpf #undef cexpf -#define __cexpf internal_cexpf static _Complex float internal_cexpf (_Complex float x); -#include <math/s_cexpf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_cexpf +#include <math-type-macros-float.h> -#undef __cexpf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_cexp_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_cexpf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_cexpf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (cexpf); +cfloat_versions (cexp); diff --git a/sysdeps/alpha/fpu/s_clog10f.c b/sysdeps/alpha/fpu/s_clog10f.c index 1ab0730e0e..9906107b73 100644 --- a/sysdeps/alpha/fpu/s_clog10f.c +++ b/sysdeps/alpha/fpu/s_clog10f.c @@ -1,5 +1,5 @@ /* Return base 10 logarithm of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -21,17 +21,22 @@ #include <complex.h> #include <math.h> +#include <libm-alias-float.h> #undef __clog10f #undef clog10f -#define __clog10f internal_clog10f static _Complex float internal_clog10f (_Complex float x); -#include <math/s_clog10f.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_clog10f +#include <math-type-macros-float.h> -#undef __clog10f +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_clog10_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_clog10f (c1_cfloat_decl (x)) @@ -58,3 +63,4 @@ compat_symbol (libm, __c1_clog10f_2, __clog10f, GLIBC_2_1); versioned_symbol (libm, __c2_clog10f, clog10f, GLIBC_2_3_4); extern typeof(__c2_clog10f) __clog10f attribute_hidden; strong_alias (__c2_clog10f, __clog10f) +libm_alias_float_other (__c2_clog10, clog10) diff --git a/sysdeps/alpha/fpu/s_clogf.c b/sysdeps/alpha/fpu/s_clogf.c index 185948f650..4afb73c822 100644 --- a/sysdeps/alpha/fpu/s_clogf.c +++ b/sysdeps/alpha/fpu/s_clogf.c @@ -1,5 +1,5 @@ /* Return natural logarithm of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __clogf #undef clogf -#define __clogf internal_clogf static _Complex float internal_clogf (_Complex float x); -#include <math/s_clogf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_clogf +#include <math-type-macros-float.h> -#undef __clogf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_clog_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_clogf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_clogf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (clogf); +cfloat_versions (clog); diff --git a/sysdeps/alpha/fpu/s_copysign.c b/sysdeps/alpha/fpu/s_copysign.c index 1b5a6e8ae2..493615a896 100644 --- a/sysdeps/alpha/fpu/s_copysign.c +++ b/sysdeps/alpha/fpu/s_copysign.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson. @@ -18,6 +18,7 @@ #include <math.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> double __copysign (double x, double y) @@ -25,15 +26,7 @@ __copysign (double x, double y) return __builtin_copysign (x, y); } -weak_alias (__copysign, copysign) -#ifdef NO_LONG_DOUBLE -strong_alias (__copysign, __copysignl) -weak_alias (__copysign, copysignl) -#endif -#if IS_IN (libm) -# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __copysign, copysignl, GLIBC_2_0); -# endif -#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +libm_alias_double (__copysign, copysign) +#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) compat_symbol (libc, __copysign, copysignl, GLIBC_2_0); #endif diff --git a/sysdeps/alpha/fpu/s_copysignf.c b/sysdeps/alpha/fpu/s_copysignf.c index 5b2e8cb554..b92b6d4d77 100644 --- a/sysdeps/alpha/fpu/s_copysignf.c +++ b/sysdeps/alpha/fpu/s_copysignf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson. @@ -17,6 +17,7 @@ <http://www.gnu.org/licenses/>. */ #include <math.h> +#include <libm-alias-float.h> float __copysignf (float x, float y) @@ -24,4 +25,4 @@ __copysignf (float x, float y) return __builtin_copysignf (x, y); } -weak_alias (__copysignf, copysignf) +libm_alias_float (__copysign, copysign) diff --git a/sysdeps/alpha/fpu/s_cpowf.c b/sysdeps/alpha/fpu/s_cpowf.c index 686c3971f9..72f5586840 100644 --- a/sysdeps/alpha/fpu/s_cpowf.c +++ b/sysdeps/alpha/fpu/s_cpowf.c @@ -1,5 +1,5 @@ /* Return power of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __cpowf #undef cpowf -#define __cpowf internal_cpowf static _Complex float internal_cpowf (_Complex float x, _Complex float c); -#include <math/s_cpowf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_cpowf +#include <math-type-macros-float.h> -#undef __cpowf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_cpow_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_cpowf (c1_cfloat_decl (x), c1_cfloat_decl (c)) @@ -47,4 +51,4 @@ __c2_cpowf (c2_cfloat_decl (x), c2_cfloat_decl (c)) return c2_cfloat_return (r); } -cfloat_versions (cpowf); +cfloat_versions (cpow); diff --git a/sysdeps/alpha/fpu/s_cprojf.c b/sysdeps/alpha/fpu/s_cprojf.c index 30a24a8910..7557f25f1a 100644 --- a/sysdeps/alpha/fpu/s_cprojf.c +++ b/sysdeps/alpha/fpu/s_cprojf.c @@ -1,5 +1,5 @@ /* Return projection of complex float value to Riemann sphere. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __cprojf #undef cprojf -#define __cprojf internal_cprojf static _Complex float internal_cprojf (_Complex float x); -#include <math/s_cprojf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_cprojf +#include <math-type-macros-float.h> -#undef __cprojf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_cproj_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_cprojf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_cprojf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (cprojf); +cfloat_versions (cproj); diff --git a/sysdeps/alpha/fpu/s_csinf.c b/sysdeps/alpha/fpu/s_csinf.c index abe2d3ab45..3c2d38a026 100644 --- a/sysdeps/alpha/fpu/s_csinf.c +++ b/sysdeps/alpha/fpu/s_csinf.c @@ -1,5 +1,5 @@ /* Return sine of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __csinf #undef csinf -#define __csinf internal_csinf static _Complex float internal_csinf (_Complex float x); -#include <math/s_csinf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_csinf +#include <math-type-macros-float.h> -#undef __csinf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_csin_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_csinf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_csinf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (csinf); +cfloat_versions (csin); diff --git a/sysdeps/alpha/fpu/s_csinhf.c b/sysdeps/alpha/fpu/s_csinhf.c index a6d470a438..9d4e8cb537 100644 --- a/sysdeps/alpha/fpu/s_csinhf.c +++ b/sysdeps/alpha/fpu/s_csinhf.c @@ -1,5 +1,5 @@ /* Return hyperbole sine of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __csinhf #undef csinhf -#define __csinhf internal_csinhf static _Complex float internal_csinhf (_Complex float x); -#include <math/s_csinhf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_csinhf +#include <math-type-macros-float.h> -#undef __csinhf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_csinh_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_csinhf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_csinhf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (csinhf); +cfloat_versions (csinh); diff --git a/sysdeps/alpha/fpu/s_csqrtf.c b/sysdeps/alpha/fpu/s_csqrtf.c index c7a18d75d7..dc6057fbda 100644 --- a/sysdeps/alpha/fpu/s_csqrtf.c +++ b/sysdeps/alpha/fpu/s_csqrtf.c @@ -1,5 +1,5 @@ /* Return square root of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __csqrtf #undef csqrtf -#define __csqrtf internal_csqrtf static _Complex float internal_csqrtf (_Complex float x); -#include <math/s_csqrtf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_csqrtf +#include <math-type-macros-float.h> -#undef __csqrtf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_csqrt_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_csqrtf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_csqrtf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (csqrtf); +cfloat_versions (csqrt); diff --git a/sysdeps/alpha/fpu/s_ctanf.c b/sysdeps/alpha/fpu/s_ctanf.c index ee02f31c28..a00f0bfb57 100644 --- a/sysdeps/alpha/fpu/s_ctanf.c +++ b/sysdeps/alpha/fpu/s_ctanf.c @@ -1,5 +1,5 @@ /* Return tangent of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __ctanf #undef ctanf -#define __ctanf internal_ctanf static _Complex float internal_ctanf (_Complex float x); -#include <math/s_ctanf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_ctanf +#include <math-type-macros-float.h> -#undef __ctanf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_ctan_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_ctanf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_ctanf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (ctanf); +cfloat_versions (ctan); diff --git a/sysdeps/alpha/fpu/s_ctanhf.c b/sysdeps/alpha/fpu/s_ctanhf.c index cb99279de6..34f30d65ff 100644 --- a/sysdeps/alpha/fpu/s_ctanhf.c +++ b/sysdeps/alpha/fpu/s_ctanhf.c @@ -1,5 +1,5 @@ /* Return hyperbole tangent of complex float value. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-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 @@ -24,14 +24,18 @@ #undef __ctanhf #undef ctanhf -#define __ctanhf internal_ctanhf static _Complex float internal_ctanhf (_Complex float x); -#include <math/s_ctanhf.c> -#include "cfloat-compat.h" +#define M_DECL_FUNC(f) internal_ctanhf +#include <math-type-macros-float.h> -#undef __ctanhf +/* Disable any aliasing from base template. */ +#undef declare_mgen_alias +#define declare_mgen_alias(__to, __from) + +#include <math/s_ctanh_template.c> +#include "cfloat-compat.h" c1_cfloat_rettype __c1_ctanhf (c1_cfloat_decl (x)) @@ -47,4 +51,4 @@ __c2_ctanhf (c2_cfloat_decl (x)) return c2_cfloat_return (r); } -cfloat_versions (ctanhf); +cfloat_versions (ctanh); diff --git a/sysdeps/alpha/fpu/s_fabs.c b/sysdeps/alpha/fpu/s_fabs.c index 97ea250ab3..08b3134c91 100644 --- a/sysdeps/alpha/fpu/s_fabs.c +++ b/sysdeps/alpha/fpu/s_fabs.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson. @@ -18,6 +18,7 @@ #include <math.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> double __fabs (double x) @@ -25,11 +26,4 @@ __fabs (double x) return __builtin_fabs (x); } -weak_alias (__fabs, fabs) -#ifdef NO_LONG_DOUBLE -strong_alias (__fabs, __fabsl) -weak_alias (__fabs, fabsl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __fabs, fabsl, GLIBC_2_0); -#endif +libm_alias_double (__fabs, fabs) diff --git a/sysdeps/alpha/fpu/s_fabsf.c b/sysdeps/alpha/fpu/s_fabsf.c index e13e3650bf..5d90e0d661 100644 --- a/sysdeps/alpha/fpu/s_fabsf.c +++ b/sysdeps/alpha/fpu/s_fabsf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson. @@ -17,6 +17,7 @@ <http://www.gnu.org/licenses/>. */ #include <math.h> +#include <libm-alias-float.h> float __fabsf (float x) @@ -24,4 +25,4 @@ __fabsf (float x) return __builtin_fabsf (x); } -weak_alias (__fabsf, fabsf) +libm_alias_float (__fabs, fabs) diff --git a/sysdeps/alpha/fpu/s_floor.c b/sysdeps/alpha/fpu/s_floor.c deleted file mode 100644 index 1a6f8c4617..0000000000 --- a/sysdeps/alpha/fpu/s_floor.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright (C) 1998-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson. - - 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/>. */ - -#include <math.h> -#include <math_ldbl_opt.h> - - -/* Use the -inf rounding mode conversion instructions to implement - floor. We note when the exponent is large enough that the value - must be integral, as this avoids unpleasant integer overflows. */ - -double -__floor (double x) -{ - if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */ - { - double tmp1, new_x; - - __asm ( -#ifdef _IEEE_FP_INEXACT - "cvttq/svim %2,%1\n\t" -#else - "cvttq/svm %2,%1\n\t" -#endif - "cvtqt/m %1,%0\n\t" - : "=f"(new_x), "=&f"(tmp1) - : "f"(x)); - - /* floor(-0) == -0, and in general we'll always have the same - sign as our input. */ - x = copysign(new_x, x); - } - return x; -} - -weak_alias (__floor, floor) -#ifdef NO_LONG_DOUBLE -strong_alias (__floor, __floorl) -weak_alias (__floor, floorl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __floor, floorl, GLIBC_2_0); -#endif diff --git a/sysdeps/alpha/fpu/s_floorf.c b/sysdeps/alpha/fpu/s_floorf.c deleted file mode 100644 index 8cd80e2b42..0000000000 --- a/sysdeps/alpha/fpu/s_floorf.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (C) 1998-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson. - - 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/>. */ - -#include <math.h> - - -/* Use the -inf rounding mode conversion instructions to implement - floor. We note when the exponent is large enough that the value - must be integral, as this avoids unpleasant integer overflows. */ - -float -__floorf (float x) -{ - if (isless (fabsf (x), 16777216.0f)) /* 1 << FLT_MANT_DIG */ - { - /* Note that Alpha S_Floating is stored in registers in a - restricted T_Floating format, so we don't even need to - convert back to S_Floating in the end. The initial - conversion to T_Floating is needed to handle denormals. */ - - float tmp1, tmp2, new_x; - - __asm ("cvtst/s %3,%2\n\t" -#ifdef _IEEE_FP_INEXACT - "cvttq/svim %2,%1\n\t" -#else - "cvttq/svm %2,%1\n\t" -#endif - "cvtqt/m %1,%0\n\t" - : "=f"(new_x), "=&f"(tmp1), "=&f"(tmp2) - : "f"(x)); - - /* floor(-0) == -0, and in general we'll always have the same - sign as our input. */ - x = copysignf(new_x, x); - } - return x; -} - -weak_alias (__floorf, floorf) diff --git a/sysdeps/alpha/fpu/s_fma.c b/sysdeps/alpha/fpu/s_fma.c new file mode 100644 index 0000000000..8f62605870 --- /dev/null +++ b/sysdeps/alpha/fpu/s_fma.c @@ -0,0 +1,2 @@ +/* Always use dbl-64 version because long double is emulated in software. */ +#include <sysdeps/ieee754/dbl-64/s_fma.c> diff --git a/sysdeps/alpha/fpu/s_fmax.S b/sysdeps/alpha/fpu/s_fmax.S deleted file mode 100644 index dbe979e37c..0000000000 --- a/sysdeps/alpha/fpu/s_fmax.S +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright (C) 2007-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson. - - 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/>. */ - -#include <sysdep.h> -#include <math_ldbl_opt.h> - - .set noat - .set noreorder - - .text -ENTRY (__fmax) - .prologue 0 - - cmptun/su $f16, $f16, $f10 - cmptun/su $f17, $f17, $f11 - fmov $f17, $f0 - unop - - trapb - fbne $f10, $ret - fmov $f16, $f0 - fbne $f11, $ret - - cmptlt/su $f16, $f17, $f11 - trapb - fcmovne $f11, $f17, $f0 -$ret: ret - -END (__fmax) - -/* Given the in-register format of single-precision, this works there too. */ -strong_alias (__fmax, __fmaxf) -weak_alias (__fmaxf, fmaxf) - -weak_alias (__fmax, fmax) -#ifdef NO_LONG_DOUBLE -strong_alias (__fmax, __fmaxl) -weak_alias (__fmaxl, fmaxl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __fmax, fmaxl, GLIBC_2_1); -#endif diff --git a/sysdeps/alpha/fpu/s_fmaxf.S b/sysdeps/alpha/fpu/s_fmaxf.S deleted file mode 100644 index 3c2d62bb81..0000000000 --- a/sysdeps/alpha/fpu/s_fmaxf.S +++ /dev/null @@ -1 +0,0 @@ -/* __fmaxf is in s_fmax.c */ diff --git a/sysdeps/alpha/fpu/s_fmin.S b/sysdeps/alpha/fpu/s_fmin.S deleted file mode 100644 index f43228387a..0000000000 --- a/sysdeps/alpha/fpu/s_fmin.S +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright (C) 2007-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson. - - 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/>. */ - -#include <sysdep.h> -#include <math_ldbl_opt.h> - - .set noat - .set noreorder - - .text -ENTRY (__fmin) - .prologue 0 - - cmptun/su $f16, $f16, $f10 - cmptun/su $f17, $f17, $f11 - fmov $f17, $f0 - unop - - trapb - fbne $f10, $ret - fmov $f16, $f0 - fbne $f11, $ret - - cmptlt/su $f17, $f16, $f11 - trapb - fcmovne $f11, $f17, $f0 -$ret: ret - -END (__fmin) - -/* Given the in-register format of single-precision, this works there too. */ -strong_alias (__fmin, __fminf) -weak_alias (__fminf, fminf) - -weak_alias (__fmin, fmin) -#ifdef NO_LONG_DOUBLE -strong_alias (__fmin, __fminl) -weak_alias (__fminl, fminl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __fmin, fminl, GLIBC_2_1); -#endif diff --git a/sysdeps/alpha/fpu/s_fminf.S b/sysdeps/alpha/fpu/s_fminf.S deleted file mode 100644 index 10ab7fe53c..0000000000 --- a/sysdeps/alpha/fpu/s_fminf.S +++ /dev/null @@ -1 +0,0 @@ -/* __fminf is in s_fmin.c */ diff --git a/sysdeps/alpha/fpu/s_isnan.c b/sysdeps/alpha/fpu/s_isnan.c index e048a8fa1e..a8b20db204 100644 --- a/sysdeps/alpha/fpu/s_isnan.c +++ b/sysdeps/alpha/fpu/s_isnan.c @@ -1,5 +1,5 @@ /* Return 1 if argument is a NaN, else 0. - Copyright (C) 2007-2016 Free Software Foundation, Inc. + Copyright (C) 2007-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 @@ -22,6 +22,7 @@ #define __GI___isnanf not__GI___isnanf #include <math.h> +#include <math_private.h> #include <math_ldbl_opt.h> #undef __isnanf diff --git a/sysdeps/alpha/fpu/s_lrint.c b/sysdeps/alpha/fpu/s_lrint.c index daa2363fe9..02470eeda7 100644 --- a/sysdeps/alpha/fpu/s_lrint.c +++ b/sysdeps/alpha/fpu/s_lrint.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2016 Free Software Foundation, Inc. +/* Copyright (C) 2007-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 @@ -19,6 +19,7 @@ #define llrint not_llrint #include <math.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> #undef __llrint #undef llrint @@ -33,15 +34,5 @@ __lrint (double x) } strong_alias (__lrint, __llrint) -weak_alias (__lrint, lrint) -weak_alias (__llrint, llrint) -#ifdef NO_LONG_DOUBLE -strong_alias (__lrint, __lrintl) -strong_alias (__lrint, __llrintl) -weak_alias (__lrintl, lrintl) -weak_alias (__llrintl, llrintl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __lrint, lrintl, GLIBC_2_1); -compat_symbol (libm, __llrint, llrintl, GLIBC_2_1); -#endif +libm_alias_double (__lrint, lrint) +libm_alias_double (__llrint, llrint) diff --git a/sysdeps/alpha/fpu/s_lrintf.c b/sysdeps/alpha/fpu/s_lrintf.c index f866325c19..125c0b1cf0 100644 --- a/sysdeps/alpha/fpu/s_lrintf.c +++ b/sysdeps/alpha/fpu/s_lrintf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2016 Free Software Foundation, Inc. +/* Copyright (C) 2007-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 @@ -18,6 +18,7 @@ #define __llrintf not___llrintf #define llrintf not_llrintf #include <math.h> +#include <libm-alias-float.h> #undef __llrintf #undef llrintf @@ -34,5 +35,5 @@ __lrintf (float x) } strong_alias (__lrintf, __llrintf) -weak_alias (__lrintf, lrintf) -weak_alias (__llrintf, llrintf) +libm_alias_float (__lrint, lrint) +libm_alias_float (__llrint, llrint) diff --git a/sysdeps/alpha/fpu/s_lround.c b/sysdeps/alpha/fpu/s_lround.c index 8a1b68c3fe..e2aeb707af 100644 --- a/sysdeps/alpha/fpu/s_lround.c +++ b/sysdeps/alpha/fpu/s_lround.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2016 Free Software Foundation, Inc. +/* Copyright (C) 2007-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 @@ -19,6 +19,7 @@ #define llround not_llround #include <math.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> #undef __llround #undef llround @@ -33,15 +34,5 @@ __lround (double x) } strong_alias (__lround, __llround) -weak_alias (__lround, lround) -weak_alias (__llround, llround) -#ifdef NO_LONG_DOUBLE -strong_alias (__lround, __lroundl) -strong_alias (__lround, __llroundl) -weak_alias (__lroundl, lroundl) -weak_alias (__llroundl, llroundl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __lround, lroundl, GLIBC_2_1); -compat_symbol (libm, __llround, llroundl, GLIBC_2_1); -#endif +libm_alias_double (__lround, lround) +libm_alias_double (__llround, llround) diff --git a/sysdeps/alpha/fpu/s_lroundf.c b/sysdeps/alpha/fpu/s_lroundf.c index c9da0d3728..34f56e4700 100644 --- a/sysdeps/alpha/fpu/s_lroundf.c +++ b/sysdeps/alpha/fpu/s_lroundf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2016 Free Software Foundation, Inc. +/* Copyright (C) 2007-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 @@ -18,6 +18,7 @@ #define __llroundf not___llroundf #define llroundf not_llroundf #include <math.h> +#include <libm-alias-float.h> #undef __llroundf #undef llroundf @@ -33,5 +34,5 @@ __lroundf (float x) } strong_alias (__lroundf, __llroundf) -weak_alias (__lroundf, lroundf) -weak_alias (__llroundf, llroundf) +libm_alias_float (__lround, lround) +libm_alias_float (__llround, llround) diff --git a/sysdeps/alpha/fpu/s_rint.c b/sysdeps/alpha/fpu/s_rint.c index f33fe72c11..d3bcf1829a 100644 --- a/sysdeps/alpha/fpu/s_rint.c +++ b/sysdeps/alpha/fpu/s_rint.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson. @@ -18,11 +18,15 @@ #include <math.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> double __rint (double x) { + if (isnan (x)) + return x + x; + if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */ { double tmp1, new_x; @@ -38,11 +42,4 @@ __rint (double x) return x; } -weak_alias (__rint, rint) -#ifdef NO_LONG_DOUBLE -strong_alias (__rint, __rintl) -weak_alias (__rint, rintl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __rint, rintl, GLIBC_2_0); -#endif +libm_alias_double (__rint, rint) diff --git a/sysdeps/alpha/fpu/s_rintf.c b/sysdeps/alpha/fpu/s_rintf.c index 1400dfe8d7..0cc912d843 100644 --- a/sysdeps/alpha/fpu/s_rintf.c +++ b/sysdeps/alpha/fpu/s_rintf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson. @@ -17,11 +17,15 @@ <http://www.gnu.org/licenses/>. */ #include <math.h> +#include <libm-alias-float.h> float __rintf (float x) { + if (isnanf (x)) + return x + x; + if (isless (fabsf (x), 16777216.0f)) /* 1 << FLT_MANT_DIG */ { /* Note that Alpha S_Floating is stored in registers in a @@ -44,4 +48,4 @@ __rintf (float x) return x; } -weak_alias (__rintf, rintf) +libm_alias_float (__rint, rint) diff --git a/sysdeps/alpha/fpu/s_trunc.c b/sysdeps/alpha/fpu/s_trunc.c deleted file mode 100644 index 16cb114a72..0000000000 --- a/sysdeps/alpha/fpu/s_trunc.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (C) 2007-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson. - - 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/>. */ - -#include <math.h> -#include <math_ldbl_opt.h> - - -/* Use the chopped rounding mode conversion instructions to implement trunc. */ - -double -__trunc (double x) -{ - double two52 = copysign (0x1.0p52, x); - double r, tmp; - - __asm ( -#ifdef _IEEE_FP_INEXACT - "addt/suic %2, %3, %1\n\tsubt/suic %1, %3, %0" -#else - "addt/suc %2, %3, %1\n\tsubt/suc %1, %3, %0" -#endif - : "=&f"(r), "=&f"(tmp) - : "f"(x), "f"(two52)); - - /* trunc(-0) == -0, and in general we'll always have the same - sign as our input. */ - return copysign (r, x); -} - -weak_alias (__trunc, trunc) -#ifdef NO_LONG_DOUBLE -strong_alias (__trunc, __truncl) -weak_alias (__trunc, truncl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __trunc, truncl, GLIBC_2_1); -#endif diff --git a/sysdeps/alpha/gccframe.h b/sysdeps/alpha/gccframe.h index f76bbe7006..bb24310b72 100644 --- a/sysdeps/alpha/gccframe.h +++ b/sysdeps/alpha/gccframe.h @@ -1,5 +1,5 @@ /* Definition of object in frame unwind info. alpha version. - Copyright (C) 2001-2016 Free Software Foundation, Inc. + Copyright (C) 2001-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/alpha/hp-timing.h b/sysdeps/alpha/hp-timing.h index 6d1e9fd9b3..62284e003a 100644 --- a/sysdeps/alpha/hp-timing.h +++ b/sysdeps/alpha/hp-timing.h @@ -1,5 +1,5 @@ /* High precision, low overhead timing functions. Alpha version. - Copyright (C) 2001-2016 Free Software Foundation, Inc. + Copyright (C) 2001-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <rth@redhat.com>, 2001. diff --git a/sysdeps/alpha/htonl.S b/sysdeps/alpha/htonl.S index d790325cf5..5344c33405 100644 --- a/sysdeps/alpha/htonl.S +++ b/sysdeps/alpha/htonl.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 diff --git a/sysdeps/alpha/htons.S b/sysdeps/alpha/htons.S index 8c9470c5c5..6d082b9ba7 100644 --- a/sysdeps/alpha/htons.S +++ b/sysdeps/alpha/htons.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 diff --git a/sysdeps/alpha/jmpbuf-offsets.h b/sysdeps/alpha/jmpbuf-offsets.h index 86e8da2a17..83a5d59c12 100644 --- a/sysdeps/alpha/jmpbuf-offsets.h +++ b/sysdeps/alpha/jmpbuf-offsets.h @@ -1,5 +1,5 @@ /* Private macros for accessing __jmp_buf contents. Alpha version. - Copyright (C) 2006-2016 Free Software Foundation, Inc. + Copyright (C) 2006-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/alpha/jmpbuf-unwind.h b/sysdeps/alpha/jmpbuf-unwind.h index 37d679d1b5..431ad47bb8 100644 --- a/sysdeps/alpha/jmpbuf-unwind.h +++ b/sysdeps/alpha/jmpbuf-unwind.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. +/* Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. diff --git a/sysdeps/alpha/ldiv.S b/sysdeps/alpha/ldiv.S index c90873c1d5..1ed25fa96e 100644 --- a/sysdeps/alpha/ldiv.S +++ b/sysdeps/alpha/ldiv.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. Contributed by Richard Henderson <rth@tamu.edu>. diff --git a/sysdeps/alpha/ldsodefs.h b/sysdeps/alpha/ldsodefs.h index 0ca6530946..2d41649b26 100644 --- a/sysdeps/alpha/ldsodefs.h +++ b/sysdeps/alpha/ldsodefs.h @@ -1,5 +1,5 @@ /* Run-time dynamic linker data structures for loaded ELF shared objects. - Copyright (C) 2012-2016 Free Software Foundation, Inc. + Copyright (C) 2012-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/alpha/libc-tls.c b/sysdeps/alpha/libc-tls.c index f244e456cf..8d384d3e9e 100644 --- a/sysdeps/alpha/libc-tls.c +++ b/sysdeps/alpha/libc-tls.c @@ -1,5 +1,5 @@ /* Thread-local storage handling in the ELF dynamic linker. Alpha version. - Copyright (C) 2003-2016 Free Software Foundation, Inc. + Copyright (C) 2003-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/alpha/soft-fp/local-soft-fp.h b/sysdeps/alpha/local-soft-fp.h index d562e0829e..d562e0829e 100644 --- a/sysdeps/alpha/soft-fp/local-soft-fp.h +++ b/sysdeps/alpha/local-soft-fp.h diff --git a/sysdeps/alpha/lshift.S b/sysdeps/alpha/lshift.S index 91bd3405d3..adbe0b8fa6 100644 --- a/sysdeps/alpha/lshift.S +++ b/sysdeps/alpha/lshift.S @@ -1,6 +1,6 @@ # Alpha 21064 __mpn_lshift -- - # Copyright (C) 1994-2016 Free Software Foundation, Inc. + # Copyright (C) 1994-2018 Free Software Foundation, Inc. # This file is part of the GNU MP Library. diff --git a/sysdeps/alpha/machine-gmon.h b/sysdeps/alpha/machine-gmon.h index 99e9dd8f42..5f537530f6 100644 --- a/sysdeps/alpha/machine-gmon.h +++ b/sysdeps/alpha/machine-gmon.h @@ -1,5 +1,5 @@ /* Machine-specific calling sequence for `mcount' profiling function. alpha - 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/alpha/memchr.c b/sysdeps/alpha/memchr.c index cfa036c62b..11b0c736ca 100644 --- a/sysdeps/alpha/memchr.c +++ b/sysdeps/alpha/memchr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2016 Free Software Foundation, Inc. +/* Copyright (C) 2010-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 @@ -53,7 +53,10 @@ __memchr (const void *s, int xc, size_t n) /* Align the source, and decrement the count by the number of bytes searched in the first word. */ s_align = (const word *)((word)s & -8); - n += ((word)s & 7); + { + size_t inc = n + ((word)s & 7); + n = inc | -(inc < n); + } /* Deal with misalignment in the first word for the comparison. */ mask = (1ul << ((word)s & 7)) - 1; diff --git a/sysdeps/alpha/memset.S b/sysdeps/alpha/memset.S index 447044a252..9bf5283981 100644 --- a/sysdeps/alpha/memset.S +++ b/sysdeps/alpha/memset.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu) This file is part of the GNU C Library. diff --git a/sysdeps/alpha/memusage.h b/sysdeps/alpha/memusage.h index 4b3bb0cb5b..858826cca9 100644 --- a/sysdeps/alpha/memusage.h +++ b/sysdeps/alpha/memusage.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-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/alpha/mul_1.S b/sysdeps/alpha/mul_1.S index fd06303235..a547b94e1f 100644 --- a/sysdeps/alpha/mul_1.S +++ b/sysdeps/alpha/mul_1.S @@ -1,7 +1,7 @@ # Alpha 21064 __mpn_mul_1 -- Multiply a limb vector with a limb and store # the result 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/alpha/nptl/Makefile b/sysdeps/alpha/nptl/Makefile index 137b2e565e..8e63e8ad55 100644 --- a/sysdeps/alpha/nptl/Makefile +++ b/sysdeps/alpha/nptl/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2016 Free Software Foundation, Inc. +# Copyright (C) 2003-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/alpha/nptl/bits/pthreadtypes-arch.h b/sysdeps/alpha/nptl/bits/pthreadtypes-arch.h new file mode 100644 index 0000000000..1ea7f4e4cf --- /dev/null +++ b/sysdeps/alpha/nptl/bits/pthreadtypes-arch.h @@ -0,0 +1,61 @@ +/* Machine-specific pthread type layouts. Alpha version. + Copyright (C) 2003-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 + 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 _BITS_PTHREADTYPES_ARCH_H +#define _BITS_PTHREADTYPES_ARCH_H 1 + +#define __SIZEOF_PTHREAD_ATTR_T 56 +#define __SIZEOF_PTHREAD_MUTEX_T 40 +#define __SIZEOF_PTHREAD_MUTEXATTR_T 4 +#define __SIZEOF_PTHREAD_COND_T 48 +#define __SIZEOF_PTHREAD_CONDATTR_T 4 +#define __SIZEOF_PTHREAD_RWLOCK_T 56 +#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 +#define __SIZEOF_PTHREAD_BARRIER_T 32 +#define __SIZEOF_PTHREAD_BARRIERATTR_T 4 + +/* Definitions for internal mutex struct. */ +#define __PTHREAD_COMPAT_PADDING_MID +#define __PTHREAD_COMPAT_PADDING_END +#define __PTHREAD_MUTEX_LOCK_ELISION 0 +#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0 +#define __PTHREAD_MUTEX_USE_UNION 0 + +#define __LOCK_ALIGNMENT +#define __ONCE_ALIGNMENT + +struct __pthread_rwlock_arch_t +{ + unsigned int __readers; + unsigned int __writers; + unsigned int __wrphase_futex; + unsigned int __writers_futex; + unsigned int __pad3; + unsigned int __pad4; + int __cur_writer; + int __shared; + unsigned long int __pad1; + unsigned long int __pad2; + /* FLAGS must stay at this position in the structure to maintain + binary compatibility. */ + unsigned int __flags; +}; + +#define __PTHREAD_RWLOCK_ELISION_EXTRA 0 + +#endif /* bits/pthreadtypes.h */ diff --git a/sysdeps/alpha/nptl/pthread-offsets.h b/sysdeps/alpha/nptl/pthread-offsets.h new file mode 100644 index 0000000000..16c6b0d9fd --- /dev/null +++ b/sysdeps/alpha/nptl/pthread-offsets.h @@ -0,0 +1,5 @@ +#define __PTHREAD_MUTEX_NUSERS_OFFSET 12 +#define __PTHREAD_MUTEX_KIND_OFFSET 16 +#define __PTHREAD_MUTEX_SPINS_OFFSET 20 +#define __PTHREAD_MUTEX_ELISION_OFFSET 22 +#define __PTHREAD_MUTEX_LIST_OFFSET 24 diff --git a/sysdeps/alpha/nptl/pthread_spin_lock.S b/sysdeps/alpha/nptl/pthread_spin_lock.S index 6d132777a3..3ca52184d1 100644 --- a/sysdeps/alpha/nptl/pthread_spin_lock.S +++ b/sysdeps/alpha/nptl/pthread_spin_lock.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. +/* Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <rth@twiddle.net>, 2003. diff --git a/sysdeps/alpha/nptl/pthread_spin_trylock.S b/sysdeps/alpha/nptl/pthread_spin_trylock.S index 55d179c506..bac54339a2 100644 --- a/sysdeps/alpha/nptl/pthread_spin_trylock.S +++ b/sysdeps/alpha/nptl/pthread_spin_trylock.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. +/* Copyright (C) 2003-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <rth@twiddle.net>, 2003. diff --git a/sysdeps/alpha/nptl/pthreaddef.h b/sysdeps/alpha/nptl/pthreaddef.h index c3d760ba1e..f505583600 100644 --- a/sysdeps/alpha/nptl/pthreaddef.h +++ b/sysdeps/alpha/nptl/pthreaddef.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2016 Free Software Foundation, Inc. +/* Copyright (C) 2003-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/alpha/nptl/tcb-offsets.sym b/sysdeps/alpha/nptl/tcb-offsets.sym index c21a791040..1005621b37 100644 --- a/sysdeps/alpha/nptl/tcb-offsets.sym +++ b/sysdeps/alpha/nptl/tcb-offsets.sym @@ -10,5 +10,4 @@ #define thread_offsetof(mem) (long)(offsetof(struct pthread, mem) - sizeof(struct pthread)) MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads) -PID_OFFSET thread_offsetof (pid) TID_OFFSET thread_offsetof (tid) diff --git a/sysdeps/alpha/nptl/tls.h b/sysdeps/alpha/nptl/tls.h index 90d98e124d..482c8f855c 100644 --- a/sysdeps/alpha/nptl/tls.h +++ b/sysdeps/alpha/nptl/tls.h @@ -1,5 +1,5 @@ /* Definition for thread-local data handling. NPTL/Alpha version. - Copyright (C) 2003-2016 Free Software Foundation, Inc. + Copyright (C) 2003-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 @@ -25,17 +25,7 @@ # include <stdbool.h> # include <stddef.h> # include <stdint.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> /* Get system call information. */ # include <sysdep.h> @@ -113,6 +103,7 @@ typedef struct descr->member[idx] = (value) /* Get and set the global scope generation counter in struct pthread. */ +#define THREAD_GSCOPE_IN_TCB 1 #define THREAD_GSCOPE_FLAG_UNUSED 0 #define THREAD_GSCOPE_FLAG_USED 1 #define THREAD_GSCOPE_FLAG_WAIT 2 diff --git a/sysdeps/alpha/nscd-types.h b/sysdeps/alpha/nscd-types.h index 36c35c634e..1caa10bc3c 100644 --- a/sysdeps/alpha/nscd-types.h +++ b/sysdeps/alpha/nscd-types.h @@ -1,5 +1,5 @@ /* Types for the NSCD implementation. Alpha version. - Copyright (c) 2000-2016 Free Software Foundation, Inc. + Copyright (c) 2000-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/alpha/soft-fp/ots_add.c b/sysdeps/alpha/ots_add.c index a855d7087e..5c6fd68204 100644 --- a/sysdeps/alpha/soft-fp/ots_add.c +++ b/sysdeps/alpha/ots_add.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: addition. - 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/alpha/soft-fp/ots_cmp.c b/sysdeps/alpha/ots_cmp.c index 4626cdc032..77e8161385 100644 --- a/sysdeps/alpha/soft-fp/ots_cmp.c +++ b/sysdeps/alpha/ots_cmp.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: comparison. - 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/alpha/soft-fp/ots_cmpe.c b/sysdeps/alpha/ots_cmpe.c index 69c8f32d8f..a1ddcc32b1 100644 --- a/sysdeps/alpha/soft-fp/ots_cmpe.c +++ b/sysdeps/alpha/ots_cmpe.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: comparison. - 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/alpha/soft-fp/ots_cvtqux.c b/sysdeps/alpha/ots_cvtqux.c index 5771dcc166..d723c46512 100644 --- a/sysdeps/alpha/soft-fp/ots_cvtqux.c +++ b/sysdeps/alpha/ots_cvtqux.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: unsigned integer to float conversion. - 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/alpha/soft-fp/ots_cvtqx.c b/sysdeps/alpha/ots_cvtqx.c index a177ca55aa..84151775a1 100644 --- a/sysdeps/alpha/soft-fp/ots_cvtqx.c +++ b/sysdeps/alpha/ots_cvtqx.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: signed integer to float conversion. - 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/alpha/soft-fp/ots_cvttx.c b/sysdeps/alpha/ots_cvttx.c index 1038ec0fae..582e22e79e 100644 --- a/sysdeps/alpha/soft-fp/ots_cvttx.c +++ b/sysdeps/alpha/ots_cvttx.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: floating point extension. - 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/alpha/soft-fp/ots_cvtxq.c b/sysdeps/alpha/ots_cvtxq.c index bbf7d1e543..567008cbeb 100644 --- a/sysdeps/alpha/soft-fp/ots_cvtxq.c +++ b/sysdeps/alpha/ots_cvtxq.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: float to integer conversion. - 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/alpha/soft-fp/ots_cvtxt.c b/sysdeps/alpha/ots_cvtxt.c index 2e7ca5e057..c70cb4b51c 100644 --- a/sysdeps/alpha/soft-fp/ots_cvtxt.c +++ b/sysdeps/alpha/ots_cvtxt.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: floating point truncation. - 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/alpha/soft-fp/ots_div.c b/sysdeps/alpha/ots_div.c index b3d5ccf6de..345ae3a73a 100644 --- a/sysdeps/alpha/soft-fp/ots_div.c +++ b/sysdeps/alpha/ots_div.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: division. - 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/alpha/soft-fp/ots_mul.c b/sysdeps/alpha/ots_mul.c index df4503ba08..f88764d325 100644 --- a/sysdeps/alpha/soft-fp/ots_mul.c +++ b/sysdeps/alpha/ots_mul.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: multiplication. - 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/alpha/soft-fp/ots_nintxq.c b/sysdeps/alpha/ots_nintxq.c index 0491ddf04c..0e206dda61 100644 --- a/sysdeps/alpha/soft-fp/ots_nintxq.c +++ b/sysdeps/alpha/ots_nintxq.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: convert to fortran nearest. - 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/alpha/soft-fp/ots_sub.c b/sysdeps/alpha/ots_sub.c index 442442e4a2..526626872b 100644 --- a/sysdeps/alpha/soft-fp/ots_sub.c +++ b/sysdeps/alpha/ots_sub.c @@ -1,5 +1,5 @@ /* Software floating-point emulation: subtraction. - 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/alpha/rawmemchr.S b/sysdeps/alpha/rawmemchr.S index 498efde5bd..0f94ce7e8a 100644 --- a/sysdeps/alpha/rawmemchr.S +++ b/sysdeps/alpha/rawmemchr.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2016 Free Software Foundation, Inc. +/* Copyright (C) 2000-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/alpha/reml.S b/sysdeps/alpha/reml.S index 1857da98a8..485e215765 100644 --- a/sysdeps/alpha/reml.S +++ b/sysdeps/alpha/reml.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2016 Free Software Foundation, Inc. +/* Copyright (C) 2004-2018 Free Software Foundation, Inc. Contributed by Richard Henderson <rth@twiddle.net> This file is part of the GNU C Library. diff --git a/sysdeps/alpha/remq.S b/sysdeps/alpha/remq.S index ace555ccee..505883953d 100644 --- a/sysdeps/alpha/remq.S +++ b/sysdeps/alpha/remq.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2016 Free Software Foundation, Inc. +/* Copyright (C) 2004-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/alpha/remqu.S b/sysdeps/alpha/remqu.S index 6dc082c25e..46414a16e6 100644 --- a/sysdeps/alpha/remqu.S +++ b/sysdeps/alpha/remqu.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2016 Free Software Foundation, Inc. +/* Copyright (C) 2004-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/alpha/rshift.S b/sysdeps/alpha/rshift.S index 52664ba948..b76803c604 100644 --- a/sysdeps/alpha/rshift.S +++ b/sysdeps/alpha/rshift.S @@ -1,6 +1,6 @@ # Alpha 21064 __mpn_rshift -- - # Copyright (C) 1994-2016 Free Software Foundation, Inc. + # Copyright (C) 1994-2018 Free Software Foundation, Inc. # This file is part of the GNU MP Library. diff --git a/sysdeps/alpha/setjmp.S b/sysdeps/alpha/setjmp.S index e85bd52301..cfa53c9114 100644 --- a/sysdeps/alpha/setjmp.S +++ b/sysdeps/alpha/setjmp.S @@ -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. The GNU C Library is free software; you can redistribute it and/or @@ -96,6 +96,7 @@ $sigsetjmp_local: #endif END(__sigsetjmp) +hidden_def (__sigsetjmp) /* Put these traditional entry points in the same file so that we can elide much of the nonsense in trying to jmp to the real function. */ diff --git a/sysdeps/alpha/soft-fp/sfp-machine.h b/sysdeps/alpha/sfp-machine.h index 09e9683b78..848881ba33 100644 --- a/sysdeps/alpha/soft-fp/sfp-machine.h +++ b/sysdeps/alpha/sfp-machine.h @@ -1,6 +1,6 @@ /* Machine-dependent software floating-point definitions. Alpha userland IEEE 128-bit version. - Copyright (C) 2004-2016 Free Software Foundation, Inc. + Copyright (C) 2004-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (rth@cygnus.com), Jakub Jelinek (jj@ultra.linux.cz) and diff --git a/sysdeps/alpha/soft-fp/Makefile b/sysdeps/alpha/soft-fp/Makefile deleted file mode 100644 index 83baa7c49d..0000000000 --- a/sysdeps/alpha/soft-fp/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Software floating-point emulation. - -ifeq ($(subdir),soft-fp) -sysdep_routines += ots_add ots_sub ots_mul ots_div ots_cmp ots_cmpe \ - ots_cvtxq ots_cvtqx ots_cvtqux ots_cvttx ots_cvtxt ots_nintxq \ - fraiseexcpt -endif - -ifeq ($(subdir),math) -CPPFLAGS += -I../soft-fp -endif diff --git a/sysdeps/alpha/soft-fp/Versions b/sysdeps/alpha/soft-fp/Versions deleted file mode 100644 index 3901287115..0000000000 --- a/sysdeps/alpha/soft-fp/Versions +++ /dev/null @@ -1,8 +0,0 @@ -libc { - GLIBC_2.3.4 { - _OtsAddX; _OtsSubX; _OtsMulX; _OtsDivX; - _OtsEqlX; _OtsNeqX; _OtsLssX; _OtsLeqX; _OtsGtrX; _OtsGeqX; - _OtsCvtQX; _OtsCvtQUX; _OtsCvtXQ; _OtsNintXQ; - _OtsConvertFloatTX; _OtsConvertFloatXT; - } -} diff --git a/sysdeps/alpha/sotruss-lib.c b/sysdeps/alpha/sotruss-lib.c index 3d82a9dd89..084d0e52e4 100644 --- a/sysdeps/alpha/sotruss-lib.c +++ b/sysdeps/alpha/sotruss-lib.c @@ -1,5 +1,5 @@ /* Override generic sotruss-lib.c to define actual functions for Alpha. - Copyright (C) 2012-2016 Free Software Foundation, Inc. + Copyright (C) 2012-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/sysdeps/alpha/stackinfo.h b/sysdeps/alpha/stackinfo.h index 9dff9f2bad..d846da10d4 100644 --- a/sysdeps/alpha/stackinfo.h +++ b/sysdeps/alpha/stackinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2016 Free Software Foundation, Inc. +/* Copyright (C) 2001-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/alpha/start.S b/sysdeps/alpha/start.S index f1a27c3324..5de8ceeca7 100644 --- a/sysdeps/alpha/start.S +++ b/sysdeps/alpha/start.S @@ -1,5 +1,5 @@ /* Startup code for Alpha/ELF. - Copyright (C) 1993-2016 Free Software Foundation, Inc. + Copyright (C) 1993-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <rth@tamu.edu> diff --git a/sysdeps/alpha/stpcpy.S b/sysdeps/alpha/stpcpy.S index 0470c314da..0122e494a1 100644 --- a/sysdeps/alpha/stpcpy.S +++ b/sysdeps/alpha/stpcpy.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. Contributed by Richard Henderson <rth@tamu.edu>, 1996. diff --git a/sysdeps/alpha/stpncpy.S b/sysdeps/alpha/stpncpy.S index de1e90b03e..0c2ffc441d 100644 --- a/sysdeps/alpha/stpncpy.S +++ b/sysdeps/alpha/stpncpy.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. Contributed by Richard Henderson (rth@tamu.edu) diff --git a/sysdeps/alpha/strcat.S b/sysdeps/alpha/strcat.S index 1de80e1c4e..046c7b8ee3 100644 --- a/sysdeps/alpha/strcat.S +++ b/sysdeps/alpha/strcat.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. Contributed by Richard Henderson <rth@tamu.edu>, 1996. diff --git a/sysdeps/alpha/strchr.S b/sysdeps/alpha/strchr.S index 6e4ef61866..772e2b5fb1 100644 --- a/sysdeps/alpha/strchr.S +++ b/sysdeps/alpha/strchr.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. Contributed by Richard Henderson (rth@tamu.edu) diff --git a/sysdeps/alpha/strcmp.S b/sysdeps/alpha/strcmp.S index 719950a496..00ff115b99 100644 --- a/sysdeps/alpha/strcmp.S +++ b/sysdeps/alpha/strcmp.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu) This file is part of the GNU C Library. diff --git a/sysdeps/alpha/strcpy.S b/sysdeps/alpha/strcpy.S index 30b6dec19e..cad0d51041 100644 --- a/sysdeps/alpha/strcpy.S +++ b/sysdeps/alpha/strcpy.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. Contributed by Richard Henderson <rth@tamu.edu>, 1996. diff --git a/sysdeps/alpha/strlen.S b/sysdeps/alpha/strlen.S index 72c83a46ff..76efb9b050 100644 --- a/sysdeps/alpha/strlen.S +++ b/sysdeps/alpha/strlen.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 Free Software Foundation, Inc. Contributed by David Mosberger (davidm@cs.arizona.edu). This file is part of the GNU C Library. diff --git a/sysdeps/alpha/strncat.S b/sysdeps/alpha/strncat.S index 67d4690560..a4faf4c914 100644 --- a/sysdeps/alpha/strncat.S +++ b/sysdeps/alpha/strncat.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. Contributed by Richard Henderson <rth@tamu.edu>, 1996. diff --git a/sysdeps/alpha/strncmp.S b/sysdeps/alpha/strncmp.S index 48309301a6..ebe9268c6f 100644 --- a/sysdeps/alpha/strncmp.S +++ b/sysdeps/alpha/strncmp.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu) This file is part of the GNU C Library. diff --git a/sysdeps/alpha/strncpy.S b/sysdeps/alpha/strncpy.S index ecd610cc8b..fdb8e4b34d 100644 --- a/sysdeps/alpha/strncpy.S +++ b/sysdeps/alpha/strncpy.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu) This file is part of the GNU C Library. diff --git a/sysdeps/alpha/strrchr.S b/sysdeps/alpha/strrchr.S index e7a18d36fb..235b8b39a1 100644 --- a/sysdeps/alpha/strrchr.S +++ b/sysdeps/alpha/strrchr.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 diff --git a/sysdeps/alpha/stxcpy.S b/sysdeps/alpha/stxcpy.S index ba6c9f74dd..2f32dfda9d 100644 --- a/sysdeps/alpha/stxcpy.S +++ b/sysdeps/alpha/stxcpy.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu) This file is part of the GNU C Library. diff --git a/sysdeps/alpha/stxncpy.S b/sysdeps/alpha/stxncpy.S index c5d997ab22..690459cd60 100644 --- a/sysdeps/alpha/stxncpy.S +++ b/sysdeps/alpha/stxncpy.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2016 Free Software Foundation, Inc. +/* Copyright (C) 1996-2018 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu) This file is part of the GNU C Library. diff --git a/sysdeps/alpha/sub_n.S b/sysdeps/alpha/sub_n.S index a916ef1d72..5a4a9b9dad 100644 --- a/sysdeps/alpha/sub_n.S +++ b/sysdeps/alpha/sub_n.S @@ -1,7 +1,7 @@ # Alpha __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/alpha/submul_1.S b/sysdeps/alpha/submul_1.S index 63f60c14ae..cea29eda44 100644 --- a/sysdeps/alpha/submul_1.S +++ b/sysdeps/alpha/submul_1.S @@ -1,7 +1,7 @@ # Alpha 21064 __mpn_submul_1 -- Multiply a limb vector with a limb and # subtract the result 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. diff --git a/sysdeps/alpha/tst-audit.h b/sysdeps/alpha/tst-audit.h index 3fe369a547..f12a720782 100644 --- a/sysdeps/alpha/tst-audit.h +++ b/sysdeps/alpha/tst-audit.h @@ -1,5 +1,5 @@ /* Definitions for testing PLT entry/exit auditing. Alpha version. - Copyright (C) 2012-2016 Free Software Foundation, Inc. + Copyright (C) 2012-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/sysdeps/alpha/udiv_qrnnd.S b/sysdeps/alpha/udiv_qrnnd.S index 3bb52d7ecd..b0453ff87c 100644 --- a/sysdeps/alpha/udiv_qrnnd.S +++ b/sysdeps/alpha/udiv_qrnnd.S @@ -1,6 +1,6 @@ # Alpha 21064 __udiv_qrnnd - # 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. |