diff options
Diffstat (limited to 'sysdeps/mips/mips64')
33 files changed, 0 insertions, 3950 deletions
diff --git a/sysdeps/mips/mips64/Implies b/sysdeps/mips/mips64/Implies deleted file mode 100644 index b476b8b298..0000000000 --- a/sysdeps/mips/mips64/Implies +++ /dev/null @@ -1,5 +0,0 @@ -# MIPS uses IEEE 754 floating point. -mips/ieee754 -ieee754/flt-32 -ieee754/dbl-64/wordsize-64 -ieee754/dbl-64 diff --git a/sysdeps/mips/mips64/Makefile b/sysdeps/mips/mips64/Makefile deleted file mode 100644 index ada13e8b70..0000000000 --- a/sysdeps/mips/mips64/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -ifeq ($(subdir),math) -CPPFLAGS += -I../soft-fp -endif diff --git a/sysdeps/mips/mips64/Versions b/sysdeps/mips/mips64/Versions deleted file mode 100644 index 253a65f04e..0000000000 --- a/sysdeps/mips/mips64/Versions +++ /dev/null @@ -1,7 +0,0 @@ -libm { - GLIBC_2.1 { - # A generic bug got this omitted from other configurations' version - # sets, but we always had it. - exp2l; - } -} diff --git a/sysdeps/mips/mips64/__longjmp.c b/sysdeps/mips/mips64/__longjmp.c deleted file mode 100644 index 3f96e8e2d4..0000000000 --- a/sysdeps/mips/mips64/__longjmp.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Copyright (C) 1992-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Brendan Kehoe (brendan@zen.org). - - 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 <setjmp.h> -#include <sgidefs.h> -#include <stdlib.h> - -#ifndef __GNUC__ - #error This file uses GNU C extensions; you must compile with GCC. -#endif - -void -__longjmp (__jmp_buf env_arg, int val_arg) -{ - /* gcc 1.39.19 miscompiled the longjmp routine (as it did setjmp before - the hack around it); force it to use $a1 for the longjmp value. - Without this it saves $a1 in a register which gets clobbered - along the way. */ - register struct __jmp_buf_internal_tag *env asm ("a0"); - register int val asm ("a1"); -#ifdef CHECK_SP - register long long sp asm ("$29"); - CHECK_SP (env[0].__sp, sp, long long); -#endif - -#ifdef __mips_hard_float - /* Pull back the floating point callee-saved registers. */ -#if _MIPS_SIM == _ABI64 - asm volatile ("l.d $f24, %0" : : "m" (env[0].__fpregs[0])); - asm volatile ("l.d $f25, %0" : : "m" (env[0].__fpregs[1])); - asm volatile ("l.d $f26, %0" : : "m" (env[0].__fpregs[2])); - asm volatile ("l.d $f27, %0" : : "m" (env[0].__fpregs[3])); - asm volatile ("l.d $f28, %0" : : "m" (env[0].__fpregs[4])); - asm volatile ("l.d $f29, %0" : : "m" (env[0].__fpregs[5])); - asm volatile ("l.d $f30, %0" : : "m" (env[0].__fpregs[6])); - asm volatile ("l.d $f31, %0" : : "m" (env[0].__fpregs[7])); -#else - asm volatile ("l.d $f20, %0" : : "m" (env[0].__fpregs[0])); - asm volatile ("l.d $f22, %0" : : "m" (env[0].__fpregs[1])); - asm volatile ("l.d $f24, %0" : : "m" (env[0].__fpregs[2])); - asm volatile ("l.d $f26, %0" : : "m" (env[0].__fpregs[3])); - asm volatile ("l.d $f28, %0" : : "m" (env[0].__fpregs[4])); - asm volatile ("l.d $f30, %0" : : "m" (env[0].__fpregs[5])); -#endif -#endif - - /* Get the GP. */ - asm volatile ("ld $gp, %0" : : "m" (env[0].__gp)); - - /* Get the callee-saved registers. */ - asm volatile ("ld $16, %0" : : "m" (env[0].__regs[0])); - asm volatile ("ld $17, %0" : : "m" (env[0].__regs[1])); - asm volatile ("ld $18, %0" : : "m" (env[0].__regs[2])); - asm volatile ("ld $19, %0" : : "m" (env[0].__regs[3])); - asm volatile ("ld $20, %0" : : "m" (env[0].__regs[4])); - asm volatile ("ld $21, %0" : : "m" (env[0].__regs[5])); - asm volatile ("ld $22, %0" : : "m" (env[0].__regs[6])); - asm volatile ("ld $23, %0" : : "m" (env[0].__regs[7])); - - /* Get the PC. */ - asm volatile ("ld $31, %0" : : "m" (env[0].__pc)); - - - /* Restore the stack pointer and the FP. They have to be restored - last and in a single asm as gcc, depending on options used, may - use either of them to access env. */ - asm volatile ("ld $29, %0\n\t" - "ld $30, %1\n\t" : : "m" (env[0].__sp), "m" (env[0].__fp)); - -/* Give setjmp 1 if given a 0, or what they gave us if non-zero. */ - if (val == 0) - asm volatile ("dli $2, 1"); - else - asm volatile ("move $2, %0" : : "r" (val)); - - asm volatile ("j $31"); - - /* Avoid `volatile function does return' warnings. */ - for (;;); -} diff --git a/sysdeps/mips/mips64/add_n.S b/sysdeps/mips/mips64/add_n.S deleted file mode 100644 index 60033e3e3e..0000000000 --- a/sysdeps/mips/mips64/add_n.S +++ /dev/null @@ -1,125 +0,0 @@ -/* MIPS3 __mpn_add_n -- Add two limb vectors of the same length > 0 and - * store sum in a third limb vector. - * - * Copyright (C) 1995-2017 Free Software Foundation, Inc. - * - * This file is part of the GNU MP Library. - * - * The GNU MP 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 MP 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 MP Library. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#include <sysdep.h> -#include <sys/asm.h> - -/* - * INPUT PARAMETERS - * res_ptr $4 - * s1_ptr $5 - * s2_ptr $6 - * size $7 - */ -#ifdef __PIC__ - .option pic2 -#endif -ENTRY (__mpn_add_n) -#ifdef __PIC__ - SETUP_GP /* ??? unused */ -#endif - .set noreorder - .set nomacro - - ld $10,0($5) - ld $11,0($6) - - daddiu $7,$7,-1 - and $9,$7,4-1 # number of limbs in first loop - beq $9,$0,L(L0) # if multiple of 4 limbs, skip first loop - move $2,$0 - - dsubu $7,$7,$9 - -L(Loop0): daddiu $9,$9,-1 - ld $12,8($5) - daddu $11,$11,$2 - ld $13,8($6) - sltu $8,$11,$2 - daddu $11,$10,$11 - sltu $2,$11,$10 - sd $11,0($4) - or $2,$2,$8 - - daddiu $5,$5,8 - daddiu $6,$6,8 - move $10,$12 - move $11,$13 - bne $9,$0,L(Loop0) - daddiu $4,$4,8 - -L(L0): beq $7,$0,L(Lend) - nop - -L(Loop): daddiu $7,$7,-4 - - ld $12,8($5) - daddu $11,$11,$2 - ld $13,8($6) - sltu $8,$11,$2 - daddu $11,$10,$11 - sltu $2,$11,$10 - sd $11,0($4) - or $2,$2,$8 - - ld $10,16($5) - daddu $13,$13,$2 - ld $11,16($6) - sltu $8,$13,$2 - daddu $13,$12,$13 - sltu $2,$13,$12 - sd $13,8($4) - or $2,$2,$8 - - ld $12,24($5) - daddu $11,$11,$2 - ld $13,24($6) - sltu $8,$11,$2 - daddu $11,$10,$11 - sltu $2,$11,$10 - sd $11,16($4) - or $2,$2,$8 - - ld $10,32($5) - daddu $13,$13,$2 - ld $11,32($6) - sltu $8,$13,$2 - daddu $13,$12,$13 - sltu $2,$13,$12 - sd $13,24($4) - or $2,$2,$8 - - daddiu $5,$5,32 - daddiu $6,$6,32 - - bne $7,$0,L(Loop) - daddiu $4,$4,32 - -L(Lend): daddu $11,$11,$2 - sltu $8,$11,$2 - daddu $11,$10,$11 - sltu $2,$11,$10 - sd $11,0($4) - j $31 - or $2,$2,$8 - -END (__mpn_add_n) diff --git a/sysdeps/mips/mips64/addmul_1.S b/sysdeps/mips/mips64/addmul_1.S deleted file mode 100644 index 9791a08a4d..0000000000 --- a/sysdeps/mips/mips64/addmul_1.S +++ /dev/null @@ -1,131 +0,0 @@ -/* MIPS3 __mpn_addmul_1 -- Multiply a limb vector with a single limb and - * add the product to a second limb vector. - * - * Copyright (C) 1992-2017 Free Software Foundation, Inc. - * - * This file is part of the GNU MP Library. - * - * The GNU MP 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 MP 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 MP Library. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <sysdep.h> -#include <sys/asm.h> - -/* INPUT PARAMETERS - * res_ptr $4 - * s1_ptr $5 - * size $6 - * s2_limb $7 - */ - -#ifdef PIC - .option pic2 -#endif -ENTRY (__mpn_addmul_1) -#ifdef PIC - SETUP_GP /* ??? unused */ -#endif - .set noreorder - .set nomacro - - # warm up phase 0 - ld $8,0($5) - - # warm up phase 1 - daddiu $5,$5,8 -#if __mips_isa_rev < 6 - dmultu $8,$7 -#else - dmulu $11,$8,$7 - dmuhu $12,$8,$7 -#endif - - daddiu $6,$6,-1 - beq $6,$0,L(LC0) - move $2,$0 # zero cy2 - - daddiu $6,$6,-1 - beq $6,$0,L(LC1) - ld $8,0($5) # load new s1 limb as early as possible - -L(Loop): ld $10,0($4) -#if __mips_isa_rev < 6 - mflo $3 - mfhi $9 -#else - move $3,$11 - move $9,$12 -#endif - daddiu $5,$5,8 - daddu $3,$3,$2 # add old carry limb to low product limb -#if __mips_isa_rev < 6 - dmultu $8,$7 -#else - dmulu $11,$8,$7 - dmuhu $12,$8,$7 -#endif - ld $8,0($5) # load new s1 limb as early as possible - daddiu $6,$6,-1 # decrement loop counter - sltu $2,$3,$2 # carry from previous addition -> $2 - daddu $3,$10,$3 - sltu $10,$3,$10 - daddu $2,$2,$10 - sd $3,0($4) - daddiu $4,$4,8 - bne $6,$0,L(Loop) - daddu $2,$9,$2 # add high product limb and carry from addition - - # cool down phase 1 -L(LC1): ld $10,0($4) -#if __mips_isa_rev < 6 - mflo $3 - mfhi $9 -#else - move $3,$11 - move $9,$12 -#endif - daddu $3,$3,$2 - sltu $2,$3,$2 -#if __mips_isa_rev < 6 - dmultu $8,$7 -#else - dmulu $11,$8,$7 - dmuhu $12,$8,$7 -#endif - daddu $3,$10,$3 - sltu $10,$3,$10 - daddu $2,$2,$10 - sd $3,0($4) - daddiu $4,$4,8 - daddu $2,$9,$2 # add high product limb and carry from addition - - # cool down phase 0 -L(LC0): ld $10,0($4) -#if __mips_isa_rev < 6 - mflo $3 - mfhi $9 -#else - move $3,$11 - move $9,$12 -#endif - daddu $3,$3,$2 - sltu $2,$3,$2 - daddu $3,$10,$3 - sltu $10,$3,$10 - daddu $2,$2,$10 - sd $3,0($4) - j $31 - daddu $2,$9,$2 # add high product limb and carry from addition - -END (__mpn_addmul_1) diff --git a/sysdeps/mips/mips64/bsd-_setjmp.S b/sysdeps/mips/mips64/bsd-_setjmp.S deleted file mode 100644 index a8f27d2de0..0000000000 --- a/sysdeps/mips/mips64/bsd-_setjmp.S +++ /dev/null @@ -1,47 +0,0 @@ -/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS64 version. - Copyright (C) 1996-2017 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/>. */ - -/* This just does a tail-call to `__sigsetjmp (ARG, 0)'. - We cannot do it in C because it must be a tail-call, so frame-unwinding - in setjmp doesn't clobber the state restored by longjmp. */ - -#include <sgidefs.h> -#include <sysdep.h> -#include <sys/asm.h> - -#ifdef __PIC__ - .option pic2 -#endif -ENTRY (_setjmp) -#ifdef __PIC__ - SETUP_GP -#endif - SETUP_GP64_REG (v0, C_SYMBOL_NAME (_setjmp)) - PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp) -#if _MIPS_SIM == _ABIO32 - nop -#endif - RESTORE_GP64_REG - move a1, zero /* Pass a second argument of zero. */ -#ifdef __PIC__ - jr t9 -#else - j C_SYMBOL_NAME (__sigsetjmp) -#endif -END (_setjmp) -libc_hidden_def (_setjmp) diff --git a/sysdeps/mips/mips64/bsd-setjmp.S b/sysdeps/mips/mips64/bsd-setjmp.S deleted file mode 100644 index aeac200f70..0000000000 --- a/sysdeps/mips/mips64/bsd-setjmp.S +++ /dev/null @@ -1,46 +0,0 @@ -/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. MIPS64 version. - Copyright (C) 1996-2017 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/>. */ - -/* This just does a tail-call to `__sigsetjmp (ARG, 1)'. - We cannot do it in C because it must be a tail-call, so frame-unwinding - in setjmp doesn't clobber the state restored by longjmp. */ - -#include <sgidefs.h> -#include <sysdep.h> -#include <sys/asm.h> - -#ifdef PIC - .option pic2 -#endif -ENTRY (setjmp) -#ifdef __PIC__ - SETUP_GP -#endif - SETUP_GP64_REG (v0, C_SYMBOL_NAME (setjmp)) - PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp) -#if _MIPS_SIM == _ABIO32 - nop -#endif - RESTORE_GP64_REG - dli a1, 1 /* Pass a second argument of one. */ -#ifdef __PIC__ - jr t9 -#else - j C_SYMBOL_NAME (__sigsetjmp) -#endif -END (setjmp) diff --git a/sysdeps/mips/mips64/e_sqrtl.c b/sysdeps/mips/mips64/e_sqrtl.c deleted file mode 100644 index 3f0829e1b2..0000000000 --- a/sysdeps/mips/mips64/e_sqrtl.c +++ /dev/null @@ -1,39 +0,0 @@ -/* long double square root in software floating-point emulation. - Copyright (C) 1997-2017 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). - - 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 <stdlib.h> -#include <soft-fp.h> -#include <quad.h> - -long double -__ieee754_sqrtl (const long double a) -{ - FP_DECL_EX; - FP_DECL_Q(A); FP_DECL_Q(C); - long double c; - - FP_INIT_ROUNDMODE; - FP_UNPACK_Q(A, a); - FP_SQRT_Q(C, A); - FP_PACK_Q(c, C); - FP_HANDLE_EXCEPTIONS; - return c; -} -strong_alias (__ieee754_sqrtl, __sqrtl_finite) diff --git a/sysdeps/mips/mips64/gmp-mparam.h b/sysdeps/mips/mips64/gmp-mparam.h deleted file mode 100644 index f164ce999e..0000000000 --- a/sysdeps/mips/mips64/gmp-mparam.h +++ /dev/null @@ -1,30 +0,0 @@ -/* gmp-mparam.h -- Compiler/machine parameter header file. - -Copyright (C) 1991-2017 Free Software Foundation, Inc. - -This file is part of the GNU MP Library. - -The GNU MP 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 MP 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 MP Library. If not, see <http://www.gnu.org/licenses/>. */ - -#if defined __GMP_H__ && ! defined _LONG_LONG_LIMB -#error "Included too late for _LONG_LONG_LIMB to take effect" -#endif - -#define _LONG_LONG_LIMB -#define BITS_PER_MP_LIMB 64 -#define BYTES_PER_MP_LIMB 8 -#define BITS_PER_LONGINT __WORDSIZE -#define BITS_PER_INT 32 -#define BITS_PER_SHORTINT 16 -#define BITS_PER_CHAR 8 diff --git a/sysdeps/mips/mips64/libm-test-ulps b/sysdeps/mips/mips64/libm-test-ulps deleted file mode 100644 index b3b0140abc..0000000000 --- a/sysdeps/mips/mips64/libm-test-ulps +++ /dev/null @@ -1,2270 +0,0 @@ -# Begin of automatic generation - -# Maximal error of functions: -Function: "acos": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "acos_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "acos_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "acos_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "acosh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "acosh_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "acosh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "acosh_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "asin": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "asin_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "asin_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "asin_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "asinh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "asinh_downward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "asinh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "asinh_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "atan": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "atan2": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "atan2_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "atan2_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "atan2_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "atan_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "atan_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "atan_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "atanh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "atanh_downward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "atanh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "atanh_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "cabs": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "cabs_downward": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "cabs_towardzero": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "cabs_upward": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "cacos": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "cacos": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cacos_downward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "cacos_downward": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 6 -ldouble: 6 - -Function: Real part of "cacos_towardzero": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "cacos_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Real part of "cacos_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "cacos_upward": -double: 5 -float: 7 -idouble: 5 -ifloat: 7 -ildouble: 7 -ldouble: 7 - -Function: Real part of "cacosh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "cacosh": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cacosh_downward": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "cacosh_downward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: Real part of "cacosh_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "cacosh_towardzero": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Real part of "cacosh_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 6 -ldouble: 6 - -Function: Imaginary part of "cacosh_upward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "carg": -float: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "carg_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "carg_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "carg_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "casin": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "casin": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "casin_downward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "casin_downward": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 6 -ldouble: 6 - -Function: Real part of "casin_towardzero": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "casin_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Real part of "casin_upward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "casin_upward": -double: 5 -float: 7 -idouble: 5 -ifloat: 7 -ildouble: 7 -ldouble: 7 - -Function: Real part of "casinh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "casinh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: Real part of "casinh_downward": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 6 -ldouble: 6 - -Function: Imaginary part of "casinh_downward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Real part of "casinh_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "casinh_towardzero": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Real part of "casinh_upward": -double: 5 -float: 7 -idouble: 5 -ifloat: 7 -ildouble: 7 -ldouble: 7 - -Function: Imaginary part of "casinh_upward": -double: 3 -float: 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 - -Function: Imaginary part of "catan": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "catan_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "catan_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "catan_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "catan_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "catan_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "catan_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "catanh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "catanh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "catanh_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "catanh_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "catanh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "catanh_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "catanh_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "catanh_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "cbrt": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cbrt_downward": -double: 4 -float: 1 -idouble: 4 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cbrt_towardzero": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cbrt_upward": -double: 5 -float: 1 -idouble: 5 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "ccos": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "ccos": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "ccos_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "ccos_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "ccos_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "ccos_towardzero": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "ccos_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "ccos_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "ccosh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "ccosh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "ccosh_downward": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "ccosh_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "ccosh_towardzero": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "ccosh_towardzero": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "ccosh_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "ccosh_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cexp": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "cexp": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: Real part of "cexp_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "cexp_downward": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cexp_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "cexp_towardzero": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cexp_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "cexp_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Real part of "clog": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "clog": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "clog10": -double: 3 -float: 4 -idouble: 3 -ifloat: 4 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "clog10": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "clog10_downward": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "clog10_downward": -double: 2 -float: 4 -idouble: 2 -ifloat: 4 -ildouble: 3 -ldouble: 3 - -Function: Real part of "clog10_towardzero": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "clog10_towardzero": -double: 2 -float: 4 -idouble: 2 -ifloat: 4 -ildouble: 3 -ldouble: 3 - -Function: Real part of "clog10_upward": -double: 6 -float: 5 -idouble: 6 -ifloat: 5 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "clog10_upward": -double: 2 -float: 4 -idouble: 2 -ifloat: 4 -ildouble: 3 -ldouble: 3 - -Function: Real part of "clog_downward": -double: 4 -float: 3 -idouble: 4 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "clog_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "clog_towardzero": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "clog_towardzero": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "clog_upward": -double: 4 -float: 3 -idouble: 4 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "clog_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "cos": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cos_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "cos_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cos_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "cosh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "cosh_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 2 - -Function: "cosh_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 2 - -Function: "cosh_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 1 -ldouble: 3 - -Function: Real part of "cpow": -double: 2 -float: 4 -idouble: 2 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "cpow": -float: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: Real part of "cpow_downward": -double: 4 -float: 8 -idouble: 4 -ifloat: 8 -ildouble: 6 -ldouble: 6 - -Function: Imaginary part of "cpow_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cpow_towardzero": -double: 4 -float: 8 -idouble: 4 -ifloat: 8 -ildouble: 6 -ldouble: 6 - -Function: Imaginary part of "cpow_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "cpow_upward": -double: 4 -float: 1 -idouble: 4 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "cpow_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "csin": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "csin": -ildouble: 1 -ldouble: 1 - -Function: Real part of "csin_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "csin_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: Real part of "csin_towardzero": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "csin_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: Real part of "csin_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "csin_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Real part of "csinh": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Imaginary part of "csinh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: Real part of "csinh_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "csinh_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "csinh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "csinh_towardzero": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 2 -ldouble: 2 - -Function: Real part of "csinh_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "csinh_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "csqrt": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Imaginary part of "csqrt": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: Real part of "csqrt_downward": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "csqrt_downward": -double: 4 -float: 3 -idouble: 4 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "csqrt_towardzero": -double: 4 -float: 3 -idouble: 4 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "csqrt_towardzero": -double: 4 -float: 3 -idouble: 4 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "csqrt_upward": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "csqrt_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "ctan": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "ctan": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Real part of "ctan_downward": -double: 6 -float: 5 -idouble: 6 -ifloat: 5 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "ctan_downward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 5 -ldouble: 5 - -Function: Real part of "ctan_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: Imaginary part of "ctan_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: Real part of "ctan_upward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "ctan_upward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Real part of "ctanh": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: Imaginary part of "ctanh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: Real part of "ctanh_downward": -double: 4 -float: 1 -idouble: 4 -ifloat: 1 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "ctanh_downward": -double: 6 -float: 5 -idouble: 6 -ifloat: 5 -ildouble: 4 -ldouble: 4 - -Function: Real part of "ctanh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "ctanh_towardzero": -double: 5 -float: 3 -idouble: 5 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: Real part of "ctanh_upward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: Imaginary part of "ctanh_upward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: "erf": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "erf_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "erf_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "erf_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "erfc": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "erfc_downward": -double: 5 -float: 6 -idouble: 5 -ifloat: 6 -ildouble: 5 -ldouble: 5 - -Function: "erfc_towardzero": -double: 3 -float: 4 -idouble: 3 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: "erfc_upward": -double: 5 -float: 6 -idouble: 5 -ifloat: 6 -ildouble: 5 -ldouble: 5 - -Function: "exp": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "exp10": -double: 2 -idouble: 2 -ildouble: 2 -ldouble: 2 - -Function: "exp10_downward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "exp10_towardzero": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "exp10_upward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "exp2": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "exp2_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "exp2_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "exp2_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "exp_downward": -double: 1 -idouble: 1 - -Function: "exp_towardzero": -double: 1 -idouble: 1 - -Function: "exp_upward": -double: 1 -idouble: 1 - -Function: "expm1": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "expm1_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "expm1_towardzero": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "expm1_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "gamma": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: "gamma_downward": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 8 -ldouble: 8 - -Function: "gamma_towardzero": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: "gamma_upward": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 8 -ldouble: 8 - -Function: "hypot": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "hypot_downward": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "hypot_towardzero": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "hypot_upward": -double: 1 -idouble: 1 -ildouble: 1 -ldouble: 1 - -Function: "j0": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "j0_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "j0_towardzero": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "j0_upward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: "j1": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "j1_downward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "j1_towardzero": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "j1_upward": -double: 3 -float: 5 -idouble: 3 -ifloat: 5 -ildouble: 3 -ldouble: 3 - -Function: "jn": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 7 -ldouble: 7 - -Function: "jn_downward": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 8 -ldouble: 8 - -Function: "jn_towardzero": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 8 -ldouble: 8 - -Function: "jn_upward": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 7 -ldouble: 7 - -Function: "lgamma": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: "lgamma_downward": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 8 -ldouble: 8 - -Function: "lgamma_towardzero": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: "lgamma_upward": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 8 -ldouble: 8 - -Function: "log": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "log10": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "log10_downward": -double: 2 -float: 3 -idouble: 2 -ifloat: 3 -ildouble: 1 -ldouble: 1 - -Function: "log10_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "log10_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "log1p": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "log1p_downward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "log1p_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "log1p_upward": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "log2": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "log2_downward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: "log2_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "log2_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 1 -ldouble: 1 - -Function: "log_downward": -float: 2 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "log_towardzero": -float: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "log_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "pow": -float: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "pow10": -double: 2 -idouble: 2 -ildouble: 2 -ldouble: 2 - -Function: "pow10_downward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "pow10_towardzero": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "pow10_upward": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "pow_downward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "pow_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "pow_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "sin": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "sin_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "sin_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "sin_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "sincos": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "sincos_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "sincos_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 - -Function: "sincos_upward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "sinh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "sinh_downward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: "sinh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "sinh_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "tan": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "tan_downward": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 1 -ldouble: 1 - -Function: "tan_towardzero": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "tan_upward": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -Function: "tanh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "tanh_downward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 4 -ldouble: 4 - -Function: "tanh_towardzero": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -ildouble: 3 -ldouble: 3 - -Function: "tanh_upward": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: "tgamma": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: "tgamma_downward": -double: 5 -float: 5 -idouble: 5 -ifloat: 5 -ildouble: 5 -ldouble: 5 - -Function: "tgamma_towardzero": -double: 5 -float: 4 -idouble: 5 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -Function: "tgamma_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 4 -ldouble: 4 - -Function: "y0": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 3 -ldouble: 3 - -Function: "y0_downward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "y0_towardzero": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 3 -ldouble: 3 - -Function: "y0_upward": -double: 3 -float: 4 -idouble: 3 -ifloat: 4 -ildouble: 3 -ldouble: 3 - -Function: "y1": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "y1_downward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 4 -ldouble: 4 - -Function: "y1_towardzero": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 2 -ldouble: 2 - -Function: "y1_upward": -double: 7 -float: 2 -idouble: 7 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: "yn": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: "yn_downward": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 5 -ldouble: 5 - -Function: "yn_towardzero": -double: 3 -float: 3 -idouble: 3 -ifloat: 3 -ildouble: 5 -ldouble: 5 - -Function: "yn_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 -ildouble: 5 -ldouble: 5 - -# end of automatic generation diff --git a/sysdeps/mips/mips64/libm-test-ulps-name b/sysdeps/mips/mips64/libm-test-ulps-name deleted file mode 100644 index 916e314f86..0000000000 --- a/sysdeps/mips/mips64/libm-test-ulps-name +++ /dev/null @@ -1 +0,0 @@ -MIPS 64-bit diff --git a/sysdeps/mips/mips64/lshift.S b/sysdeps/mips/mips64/lshift.S deleted file mode 100644 index 7f2e5669a5..0000000000 --- a/sysdeps/mips/mips64/lshift.S +++ /dev/null @@ -1,100 +0,0 @@ -/* MIPS3 __mpn_lshift -- - * - * Copyright (C) 1995-2017 Free Software Foundation, Inc. - * - * This file is part of the GNU MP Library. - * - * The GNU MP 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 MP 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 MP Library. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#include <sysdep.h> -#include <sys/asm.h> - -/* INPUT PARAMETERS - * res_ptr $4 - * src_ptr $5 - * size $6 - * cnt $7 - */ - -#ifdef __PIC__ - .option pic2 -#endif -ENTRY (__mpn_lshift) -#ifdef __PIC__ - SETUP_GP /* ??? unused */ -#endif - .set noreorder - .set nomacro - - dsll $2,$6,3 - daddu $5,$5,$2 # make r5 point at end of src - ld $10,-8($5) # load first limb - dsubu $13,$0,$7 - daddu $4,$4,$2 # make r4 point at end of res - daddiu $6,$6,-1 - and $9,$6,4-1 # number of limbs in first loop - beq $9,$0,L(L0) # if multiple of 4 limbs, skip first loop - dsrl $2,$10,$13 # compute function result - - dsubu $6,$6,$9 - -L(Loop0): ld $3,-16($5) - daddiu $4,$4,-8 - daddiu $5,$5,-8 - daddiu $9,$9,-1 - dsll $11,$10,$7 - dsrl $12,$3,$13 - move $10,$3 - or $8,$11,$12 - bne $9,$0,L(Loop0) - sd $8,0($4) - -L(L0): beq $6,$0,L(Lend) - nop - -L(Loop): ld $3,-16($5) - daddiu $4,$4,-32 - daddiu $6,$6,-4 - dsll $11,$10,$7 - dsrl $12,$3,$13 - - ld $10,-24($5) - dsll $14,$3,$7 - or $8,$11,$12 - sd $8,24($4) - dsrl $9,$10,$13 - - ld $3,-32($5) - dsll $11,$10,$7 - or $8,$14,$9 - sd $8,16($4) - dsrl $12,$3,$13 - - ld $10,-40($5) - dsll $14,$3,$7 - or $8,$11,$12 - sd $8,8($4) - dsrl $9,$10,$13 - - daddiu $5,$5,-32 - or $8,$14,$9 - bgtz $6,L(Loop) - sd $8,0($4) - -L(Lend): dsll $8,$10,$7 - j $31 - sd $8,-8($4) -END (__mpn_lshift) diff --git a/sysdeps/mips/mips64/mul_1.S b/sysdeps/mips/mips64/mul_1.S deleted file mode 100644 index 9ceb683d08..0000000000 --- a/sysdeps/mips/mips64/mul_1.S +++ /dev/null @@ -1,120 +0,0 @@ -/* MIPS3 __mpn_mul_1 -- Multiply a limb vector with a single limb and - * store the product in a second limb vector. - * - * Copyright (C) 1992-2017 Free Software Foundation, Inc. - * - * This file is part of the GNU MP Library. - * - * The GNU MP 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 MP 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 MP Library. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#include <sysdep.h> -#include <sys/asm.h> - -/* INPUT PARAMETERS - * res_ptr $4 - * s1_ptr $5 - * size $6 - * s2_limb $7 - */ - -#ifdef __PIC__ - .option pic2 -#endif -ENTRY (__mpn_mul_1) -#ifdef __PIC__ - SETUP_GP /* ??? unused */ -#endif - .set noreorder - .set nomacro - - # warm up phase 0 - ld $8,0($5) - - # warm up phase 1 - daddiu $5,$5,8 -#if __mips_isa_rev < 6 - dmultu $8,$7 -#else - dmulu $11,$8,$7 - dmuhu $12,$8,$7 -#endif - - daddiu $6,$6,-1 - beq $6,$0,L(LC0) - move $2,$0 # zero cy2 - - daddiu $6,$6,-1 - beq $6,$0,L(LC1) - ld $8,0($5) # load new s1 limb as early as possible - -#if __mips_isa_rev < 6 -L(Loop): mflo $10 - mfhi $9 -#else -L(Loop): move $10,$11 - move $9,$12 -#endif - daddiu $5,$5,8 - daddu $10,$10,$2 # add old carry limb to low product limb -#if __mips_isa_rev < 6 - dmultu $8,$7 -#else - dmulu $11,$8,$7 - dmuhu $12,$8,$7 -#endif - ld $8,0($5) # load new s1 limb as early as possible - daddiu $6,$6,-1 # decrement loop counter - sltu $2,$10,$2 # carry from previous addition -> $2 - sd $10,0($4) - daddiu $4,$4,8 - bne $6,$0,L(Loop) - daddu $2,$9,$2 # add high product limb and carry from addition - - # cool down phase 1 -#if __mips_isa_rev < 6 -L(LC1): mflo $10 - mfhi $9 -#else -L(LC1): move $10,$11 - move $9,$12 -#endif - daddu $10,$10,$2 - sltu $2,$10,$2 -#if __mips_isa_rev < 6 - dmultu $8,$7 -#else - dmulu $11,$8,$7 - dmuhu $12,$8,$7 -#endif - sd $10,0($4) - daddiu $4,$4,8 - daddu $2,$9,$2 # add high product limb and carry from addition - - # cool down phase 0 -#if __mips_isa_rev < 6 -L(LC0): mflo $10 - mfhi $9 -#else -L(LC0): move $10,$11 - move $9,$12 -#endif - daddu $10,$10,$2 - sltu $2,$10,$2 - sd $10,0($4) - j $31 - daddu $2,$9,$2 # add high product limb and carry from addition - -END (__mpn_mul_1) diff --git a/sysdeps/mips/mips64/n32/Implies b/sysdeps/mips/mips64/n32/Implies deleted file mode 100644 index e5d8a0e22f..0000000000 --- a/sysdeps/mips/mips64/n32/Implies +++ /dev/null @@ -1,5 +0,0 @@ -mips/ieee754 -ieee754/ldbl-128 -mips/mips64 -mips -wordsize-32 diff --git a/sysdeps/mips/mips64/n32/Makefile b/sysdeps/mips/mips64/n32/Makefile deleted file mode 100644 index a84d2a51bd..0000000000 --- a/sysdeps/mips/mips64/n32/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# `long double' is a distinct type we support. -long-double-fcts = yes - -ifeq ($(filter -mabi=n32,$(CC)),) -CC += -mabi=n32 -endif diff --git a/sysdeps/mips/mips64/n32/_itoa.h b/sysdeps/mips/mips64/n32/_itoa.h deleted file mode 100644 index 363cdfe9ac..0000000000 --- a/sysdeps/mips/mips64/n32/_itoa.h +++ /dev/null @@ -1,4 +0,0 @@ -/* MIPS n32 uses 64-bit _itoa_word and _itoa is mapped to _itoa_word. */ -#define _ITOA_NEEDED 0 -#define _ITOA_WORD_TYPE unsigned long long int -#include_next <_itoa.h> diff --git a/sysdeps/mips/mips64/n32/crti.S b/sysdeps/mips/mips64/n32/crti.S deleted file mode 100644 index a9e7579e75..0000000000 --- a/sysdeps/mips/mips64/n32/crti.S +++ /dev/null @@ -1,100 +0,0 @@ -/* Special .init and .fini section support for MIPS (n32). - Copyright (C) 1995-2017 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. - - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file with other - programs, and to distribute those programs without any restriction - coming from the use of this file. (The GNU Lesser General Public - License restrictions do apply in other respects; for example, they - cover modification of the file, and distribution when not linked - into another program.) - - Note that people who make modified versions of this file are not - obligated to grant this special exception for their modified - versions; it is their choice whether to do so. The GNU Lesser - General Public License gives permission to release a modified - version without this exception; this exception also makes it - possible to release a modified version which carries forward this - exception. - - 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/>. */ - -/* crti.S puts a function prologue at the beginning of the .init and - .fini sections and defines global symbols for those addresses, so - they can be called as functions. The symbols _init and _fini are - magic and cause the linker to emit DT_INIT and DT_FINI. */ - -#include <libc-symbols.h> - -#ifdef __mips_micromips -# define JALR_RELOC R_MICROMIPS_JALR -#else -# define JALR_RELOC R_MIPS_JALR -#endif - -#ifndef PREINIT_FUNCTION -# define PREINIT_FUNCTION __gmon_start__ -#endif - -#ifndef PREINIT_FUNCTION_WEAK -# define PREINIT_FUNCTION_WEAK 1 -#endif - -#if PREINIT_FUNCTION_WEAK - weak_extern (PREINIT_FUNCTION) -#else - .hidden PREINIT_FUNCTION -#endif - - .set nomips16 - - .section .init,"ax",@progbits - .p2align 2 - .globl _init - .type _init, @function -_init: - addiu $sp,$sp,-16 - sd $28,0($sp) - lui $28,%hi(%neg(%gp_rel(_init))) - addu $28,$28,$25 - sd $31,8($sp) - addiu $28,$28,%lo(%neg(%gp_rel(_init))) -#if PREINIT_FUNCTION_WEAK - lw $2,%got_disp(PREINIT_FUNCTION)($28) - beq $2,$0,.Lno_weak_fn - lw $25,%call16(PREINIT_FUNCTION)($28) - .reloc 1f,JALR_RELOC,PREINIT_FUNCTION -1: jalr $25 -.Lno_weak_fn: - .insn -#else - lw $25,%got_disp(PREINIT_FUNCTION)($28) - .reloc 1f,JALR_RELOC,PREINIT_FUNCTION -1: jalr $25 -#endif - - .section .fini,"ax",@progbits - .p2align 2 - .globl _fini - .type _fini, @function -_fini: - addiu $sp,$sp,-16 - sd $28,0($sp) - lui $28,%hi(%neg(%gp_rel(_fini))) - addu $28,$28,$25 - sd $31,8($sp) - addiu $28,$28,%lo(%neg(%gp_rel(_fini))) diff --git a/sysdeps/mips/mips64/n32/crtn.S b/sysdeps/mips/mips64/n32/crtn.S deleted file mode 100644 index 8e0524ac4d..0000000000 --- a/sysdeps/mips/mips64/n32/crtn.S +++ /dev/null @@ -1,59 +0,0 @@ -/* Special .init and .fini section support for MIPS (n32). - Copyright (C) 1995-2017 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. - - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file with other - programs, and to distribute those programs without any restriction - coming from the use of this file. (The GNU Lesser General Public - License restrictions do apply in other respects; for example, they - cover modification of the file, and distribution when not linked - into another program.) - - Note that people who make modified versions of this file are not - obligated to grant this special exception for their modified - versions; it is their choice whether to do so. The GNU Lesser - General Public License gives permission to release a modified - version without this exception; this exception also makes it - possible to release a modified version which carries forward this - exception. - - 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/>. */ - -/* crtn.S puts function epilogues in the .init and .fini sections - corresponding to the prologues in crti.S. */ - - .set nomips16 - - .section .init,"ax",@progbits - ld $31,8($sp) - ld $28,0($sp) - .set noreorder - .set nomacro - j $31 - addiu $sp,$sp,16 - .set macro - .set reorder - - .section .fini,"ax",@progbits - ld $31,8($sp) - ld $28,0($sp) - .set noreorder - .set nomacro - j $31 - addiu $sp,$sp,16 - .set macro - .set reorder diff --git a/sysdeps/mips/mips64/n32/fpu/e_sqrt.c b/sysdeps/mips/mips64/n32/fpu/e_sqrt.c deleted file mode 100644 index 81f4e77697..0000000000 --- a/sysdeps/mips/mips64/n32/fpu/e_sqrt.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/mips/fpu/e_sqrt.c> diff --git a/sysdeps/mips/mips64/n32/fpu/e_sqrtf.c b/sysdeps/mips/mips64/n32/fpu/e_sqrtf.c deleted file mode 100644 index fb0700d45c..0000000000 --- a/sysdeps/mips/mips64/n32/fpu/e_sqrtf.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/mips/fpu/e_sqrtf.c> diff --git a/sysdeps/mips/mips64/n64/Implies b/sysdeps/mips/mips64/n64/Implies deleted file mode 100644 index 25ad0cf458..0000000000 --- a/sysdeps/mips/mips64/n64/Implies +++ /dev/null @@ -1,5 +0,0 @@ -mips/ieee754 -ieee754/ldbl-128 -mips/mips64 -mips -wordsize-64 diff --git a/sysdeps/mips/mips64/n64/Makefile b/sysdeps/mips/mips64/n64/Makefile deleted file mode 100644 index a823f32b53..0000000000 --- a/sysdeps/mips/mips64/n64/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# `long double' is a distinct type we support. -long-double-fcts = yes - -ifeq ($(filter -mabi=64,$(CC)),) -CC += -mabi=64 -endif diff --git a/sysdeps/mips/mips64/n64/crti.S b/sysdeps/mips/mips64/n64/crti.S deleted file mode 100644 index b11ea2ccb5..0000000000 --- a/sysdeps/mips/mips64/n64/crti.S +++ /dev/null @@ -1,100 +0,0 @@ -/* Special .init and .fini section support for MIPS (n64). - Copyright (C) 1995-2017 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. - - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file with other - programs, and to distribute those programs without any restriction - coming from the use of this file. (The GNU Lesser General Public - License restrictions do apply in other respects; for example, they - cover modification of the file, and distribution when not linked - into another program.) - - Note that people who make modified versions of this file are not - obligated to grant this special exception for their modified - versions; it is their choice whether to do so. The GNU Lesser - General Public License gives permission to release a modified - version without this exception; this exception also makes it - possible to release a modified version which carries forward this - exception. - - 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/>. */ - -/* crti.S puts a function prologue at the beginning of the .init and - .fini sections and defines global symbols for those addresses, so - they can be called as functions. The symbols _init and _fini are - magic and cause the linker to emit DT_INIT and DT_FINI. */ - -#include <libc-symbols.h> - -#ifdef __mips_micromips -# define JALR_RELOC R_MICROMIPS_JALR -#else -# define JALR_RELOC R_MIPS_JALR -#endif - -#ifndef PREINIT_FUNCTION -# define PREINIT_FUNCTION __gmon_start__ -#endif - -#ifndef PREINIT_FUNCTION_WEAK -# define PREINIT_FUNCTION_WEAK 1 -#endif - -#if PREINIT_FUNCTION_WEAK - weak_extern (PREINIT_FUNCTION) -#else - .hidden PREINIT_FUNCTION -#endif - - .set nomips16 - - .section .init,"ax",@progbits - .p2align 2 - .globl _init - .type _init, @function -_init: - daddiu $sp,$sp,-16 - sd $28,0($sp) - lui $28,%hi(%neg(%gp_rel(_init))) - daddu $28,$28,$25 - sd $31,8($sp) - daddiu $28,$28,%lo(%neg(%gp_rel(_init))) -#if PREINIT_FUNCTION_WEAK - ld $2,%got_disp(PREINIT_FUNCTION)($28) - beq $2,$0,.Lno_weak_fn - ld $25,%call16(PREINIT_FUNCTION)($28) - .reloc 1f,JALR_RELOC,PREINIT_FUNCTION -1: jalr $25 -.Lno_weak_fn: - .insn -#else - ld $25,%got_disp(PREINIT_FUNCTION)($28) - .reloc 1f,JALR_RELOC,PREINIT_FUNCTION -1: jalr $25 -#endif - - .section .fini,"ax",@progbits - .p2align 2 - .globl _fini - .type _fini, @function -_fini: - daddiu $sp,$sp,-16 - sd $28,0($sp) - lui $28,%hi(%neg(%gp_rel(_fini))) - daddu $28,$28,$25 - sd $31,8($sp) - daddiu $28,$28,%lo(%neg(%gp_rel(_fini))) diff --git a/sysdeps/mips/mips64/n64/crtn.S b/sysdeps/mips/mips64/n64/crtn.S deleted file mode 100644 index d3fce8c5c8..0000000000 --- a/sysdeps/mips/mips64/n64/crtn.S +++ /dev/null @@ -1,59 +0,0 @@ -/* Special .init and .fini section support for MIPS (n64). - Copyright (C) 1995-2017 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. - - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file with other - programs, and to distribute those programs without any restriction - coming from the use of this file. (The GNU Lesser General Public - License restrictions do apply in other respects; for example, they - cover modification of the file, and distribution when not linked - into another program.) - - Note that people who make modified versions of this file are not - obligated to grant this special exception for their modified - versions; it is their choice whether to do so. The GNU Lesser - General Public License gives permission to release a modified - version without this exception; this exception also makes it - possible to release a modified version which carries forward this - exception. - - 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/>. */ - -/* crtn.S puts function epilogues in the .init and .fini sections - corresponding to the prologues in crti.S. */ - - .set nomips16 - - .section .init,"ax",@progbits - ld $31,8($sp) - ld $28,0($sp) - .set noreorder - .set nomacro - j $31 - daddiu $sp,$sp,16 - .set macro - .set reorder - - .section .fini,"ax",@progbits - ld $31,8($sp) - ld $28,0($sp) - .set noreorder - .set nomacro - j $31 - daddiu $sp,$sp,16 - .set macro - .set reorder diff --git a/sysdeps/mips/mips64/n64/fpu/e_sqrt.c b/sysdeps/mips/mips64/n64/fpu/e_sqrt.c deleted file mode 100644 index 81f4e77697..0000000000 --- a/sysdeps/mips/mips64/n64/fpu/e_sqrt.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/mips/fpu/e_sqrt.c> diff --git a/sysdeps/mips/mips64/n64/fpu/e_sqrtf.c b/sysdeps/mips/mips64/n64/fpu/e_sqrtf.c deleted file mode 100644 index fb0700d45c..0000000000 --- a/sysdeps/mips/mips64/n64/fpu/e_sqrtf.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/mips/fpu/e_sqrtf.c> diff --git a/sysdeps/mips/mips64/rshift.S b/sysdeps/mips/mips64/rshift.S deleted file mode 100644 index 8c13abcadc..0000000000 --- a/sysdeps/mips/mips64/rshift.S +++ /dev/null @@ -1,97 +0,0 @@ -/* MIPS3 __mpn_rshift -- - * - * Copyright (C) 1995-2017 Free Software Foundation, Inc. - * - * This file is part of the GNU MP Library. - * - * The GNU MP 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 MP 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 MP Library. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#include <sysdep.h> -#include <sys/asm.h> - -/* INPUT PARAMETERS - * res_ptr $4 - * src_ptr $5 - * size $6 - * cnt $7 - */ - -#ifdef __PIC__ - .option pic2 -#endif -ENTRY (__mpn_rshift) -#ifdef __PIC__ - SETUP_GP /* ??? unused */ -#endif - .set noreorder - .set nomacro - - ld $10,0($5) # load first limb - dsubu $13,$0,$7 - daddiu $6,$6,-1 - and $9,$6,4-1 # number of limbs in first loop - beq $9,$0,L(L0) # if multiple of 4 limbs, skip first loop - dsll $2,$10,$13 # compute function result - - dsubu $6,$6,$9 - -L(Loop0): ld $3,8($5) - daddiu $4,$4,8 - daddiu $5,$5,8 - daddiu $9,$9,-1 - dsrl $11,$10,$7 - dsll $12,$3,$13 - move $10,$3 - or $8,$11,$12 - bne $9,$0,L(Loop0) - sd $8,-8($4) - -L(L0): beq $6,$0,L(Lend) - nop - -L(Loop): ld $3,8($5) - daddiu $4,$4,32 - daddiu $6,$6,-4 - dsrl $11,$10,$7 - dsll $12,$3,$13 - - ld $10,16($5) - dsrl $14,$3,$7 - or $8,$11,$12 - sd $8,-32($4) - dsll $9,$10,$13 - - ld $3,24($5) - dsrl $11,$10,$7 - or $8,$14,$9 - sd $8,-24($4) - dsll $12,$3,$13 - - ld $10,32($5) - dsrl $14,$3,$7 - or $8,$11,$12 - sd $8,-16($4) - dsll $9,$10,$13 - - daddiu $5,$5,32 - or $8,$14,$9 - bgtz $6,L(Loop) - sd $8,-8($4) - -L(Lend): dsrl $8,$10,$7 - j $31 - sd $8,0($4) -END (__mpn_rshift) diff --git a/sysdeps/mips/mips64/setjmp.S b/sysdeps/mips/mips64/setjmp.S deleted file mode 100644 index 3e4120e1ea..0000000000 --- a/sysdeps/mips/mips64/setjmp.S +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (C) 1996-2017 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 <sgidefs.h> -#include <sysdep.h> -#include <sys/asm.h> - -/* The function __sigsetjmp_aux saves all the registers, but it can't - reliably access the stack or frame pointers, so we pass them in as - extra arguments. */ -#ifdef __PIC__ - .option pic2 -#endif -ENTRY (__sigsetjmp) -#ifdef __PIC__ - SETUP_GP -#endif - SETUP_GP64_REG (v0, C_SYMBOL_NAME (__sigsetjmp)) - move a2, sp - move a3, fp - PTR_LA t9, __sigsetjmp_aux -#if _MIPS_SIM == _ABIO32 - nop -#endif - RESTORE_GP64_REG -#if _MIPS_SIM != _ABIO32 - move a4, gp -#endif - jr t9 -END (__sigsetjmp) -hidden_def (__sigsetjmp) diff --git a/sysdeps/mips/mips64/setjmp_aux.c b/sysdeps/mips/mips64/setjmp_aux.c deleted file mode 100644 index b43c36a7d5..0000000000 --- a/sysdeps/mips/mips64/setjmp_aux.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright (C) 1996-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Brendan Kehoe (brendan@zen.org). - - 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 <setjmp.h> -#include <sgidefs.h> - -/* This function is only called via the assembly language routine - __sigsetjmp, which arranges to pass in the stack pointer and the frame - pointer. We do things this way because it's difficult to reliably - access them in C. */ - -int -__sigsetjmp_aux (jmp_buf env, int savemask, long long sp, long long fp, - long long gp) -{ -#ifdef __mips_hard_float - /* Store the floating point callee-saved registers... */ -#if _MIPS_SIM == _ABI64 - asm volatile ("s.d $f24, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[0])); - asm volatile ("s.d $f25, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[1])); - asm volatile ("s.d $f26, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[2])); - asm volatile ("s.d $f27, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[3])); - asm volatile ("s.d $f28, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[4])); - asm volatile ("s.d $f29, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[5])); - asm volatile ("s.d $f30, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[6])); - asm volatile ("s.d $f31, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[7])); -#else - asm volatile ("s.d $f20, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[0])); - asm volatile ("s.d $f22, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[1])); - asm volatile ("s.d $f24, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[2])); - asm volatile ("s.d $f26, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[3])); - asm volatile ("s.d $f28, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[4])); - asm volatile ("s.d $f30, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[5])); -#endif -#endif - - /* .. and the PC; */ - asm volatile ("sd $31, %0" : : "m" (env[0].__jmpbuf[0].__pc)); - - /* .. and the stack pointer; */ - env[0].__jmpbuf[0].__sp = sp; - - /* .. and the FP; it'll be in s8. */ - env[0].__jmpbuf[0].__fp = fp; - - /* .. and the GP; */ - env[0].__jmpbuf[0].__gp = gp; - - /* .. and the callee-saved registers; */ - asm volatile ("sd $16, %0" : : "m" (env[0].__jmpbuf[0].__regs[0])); - asm volatile ("sd $17, %0" : : "m" (env[0].__jmpbuf[0].__regs[1])); - asm volatile ("sd $18, %0" : : "m" (env[0].__jmpbuf[0].__regs[2])); - asm volatile ("sd $19, %0" : : "m" (env[0].__jmpbuf[0].__regs[3])); - asm volatile ("sd $20, %0" : : "m" (env[0].__jmpbuf[0].__regs[4])); - asm volatile ("sd $21, %0" : : "m" (env[0].__jmpbuf[0].__regs[5])); - asm volatile ("sd $22, %0" : : "m" (env[0].__jmpbuf[0].__regs[6])); - asm volatile ("sd $23, %0" : : "m" (env[0].__jmpbuf[0].__regs[7])); - - /* Save the signal mask if requested. */ - return __sigjmp_save (env, savemask); -} diff --git a/sysdeps/mips/mips64/sfp-machine.h b/sysdeps/mips/mips64/sfp-machine.h deleted file mode 100644 index 35cc4ddeb1..0000000000 --- a/sysdeps/mips/mips64/sfp-machine.h +++ /dev/null @@ -1,108 +0,0 @@ -#include <fenv.h> -#include <fpu_control.h> - -#define _FP_W_TYPE_SIZE 64 -#define _FP_W_TYPE unsigned long long -#define _FP_WS_TYPE signed long long -#define _FP_I_TYPE long long - -#define _FP_MUL_MEAT_S(R,X,Y) \ - _FP_MUL_MEAT_1_imm(_FP_WFRACBITS_S,R,X,Y) -#define _FP_MUL_MEAT_D(R,X,Y) \ - _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) -#define _FP_MUL_MEAT_Q(R,X,Y) \ - _FP_MUL_MEAT_2_wide_3mul(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm) - -#define _FP_MUL_MEAT_DW_S(R,X,Y) \ - _FP_MUL_MEAT_DW_1_imm(_FP_WFRACBITS_S,R,X,Y) -#define _FP_MUL_MEAT_DW_D(R,X,Y) \ - _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) -#define _FP_MUL_MEAT_DW_Q(R,X,Y) \ - _FP_MUL_MEAT_DW_2_wide_3mul(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm) - -#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_imm(S,R,X,Y,_FP_DIV_HELP_imm) -#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_1_udiv_norm(D,R,X,Y) -#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_2_udiv(Q,R,X,Y) - -#ifdef __mips_nan2008 -# define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1) -# define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1) -# define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1 -#else -# define _FP_NANFRAC_S (_FP_QNANBIT_S - 1) -# define _FP_NANFRAC_D (_FP_QNANBIT_D - 1) -# define _FP_NANFRAC_Q (_FP_QNANBIT_Q - 1), -1 -#endif -#define _FP_NANSIGN_S 0 -#define _FP_NANSIGN_D 0 -#define _FP_NANSIGN_Q 0 - -#define _FP_KEEPNANFRACP 1 -#ifdef __mips_nan2008 -# define _FP_QNANNEGATEDP 0 -#else -# define _FP_QNANNEGATEDP 1 -#endif - -#ifdef __mips_nan2008 -/* NaN payloads should be preserved for NAN2008. */ -# define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ - do \ - { \ - R##_s = X##_s; \ - _FP_FRAC_COPY_##wc (R, X); \ - R##_c = FP_CLS_NAN; \ - } \ - while (0) -#else -/* From my experiments it seems X is chosen unless one of the - NaNs is sNaN, in which case the result is NANSIGN/NANFRAC. */ -# define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ - do { \ - if ((_FP_FRAC_HIGH_RAW_##fs(X) | \ - _FP_FRAC_HIGH_RAW_##fs(Y)) & _FP_QNANBIT_##fs) \ - { \ - R##_s = _FP_NANSIGN_##fs; \ - _FP_FRAC_SET_##wc(R,_FP_NANFRAC_##fs); \ - } \ - else \ - { \ - R##_s = X##_s; \ - _FP_FRAC_COPY_##wc(R,X); \ - } \ - R##_c = FP_CLS_NAN; \ - } while (0) -#endif - -#define _FP_DECL_EX fpu_control_t _fcw - -#define FP_ROUNDMODE (_fcw & 0x3) - -#define FP_RND_NEAREST FE_TONEAREST -#define FP_RND_ZERO FE_TOWARDZERO -#define FP_RND_PINF FE_UPWARD -#define FP_RND_MINF FE_DOWNWARD - -#define FP_EX_INVALID FE_INVALID -#define FP_EX_OVERFLOW FE_OVERFLOW -#define FP_EX_UNDERFLOW FE_UNDERFLOW -#define FP_EX_DIVZERO FE_DIVBYZERO -#define FP_EX_INEXACT FE_INEXACT - -#define _FP_TININESS_AFTER_ROUNDING 1 - -#ifdef __mips_hard_float -#define FP_INIT_ROUNDMODE \ -do { \ - _FPU_GETCW (_fcw); \ -} while (0) - -#define FP_HANDLE_EXCEPTIONS \ -do { \ - if (__builtin_expect (_fex, 0)) \ - _FPU_SETCW (_fcw | _fex | (_fex << 10)); \ -} while (0) -#define FP_TRAPPING_EXCEPTIONS ((_fcw >> 5) & 0x7c) -#else -#define FP_INIT_ROUNDMODE _fcw = FP_RND_NEAREST -#endif diff --git a/sysdeps/mips/mips64/sub_n.S b/sysdeps/mips/mips64/sub_n.S deleted file mode 100644 index fe42764724..0000000000 --- a/sysdeps/mips/mips64/sub_n.S +++ /dev/null @@ -1,125 +0,0 @@ -/* MIPS3 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and - * store difference in a third limb vector. - * - * Copyright (C) 1995-2017 Free Software Foundation, Inc. - * - * This file is part of the GNU MP Library. - * - * The GNU MP 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 MP 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 MP Library. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#include <sysdep.h> -#include <sys/asm.h> - -/* INPUT PARAMETERS - * res_ptr $4 - * s1_ptr $5 - * s2_ptr $6 - * size $7 - */ - -#ifdef __PIC__ - .option pic2 -#endif -ENTRY (__mpn_sub_n) -#ifdef __PIC__ - SETUP_GP /* ??? unused */ -#endif - .set noreorder - .set nomacro - - ld $10,0($5) - ld $11,0($6) - - daddiu $7,$7,-1 - and $9,$7,4-1 # number of limbs in first loop - beq $9,$0,L(L0) # if multiple of 4 limbs, skip first loop - move $2,$0 - - dsubu $7,$7,$9 - -L(Loop0): daddiu $9,$9,-1 - ld $12,8($5) - daddu $11,$11,$2 - ld $13,8($6) - sltu $8,$11,$2 - dsubu $11,$10,$11 - sltu $2,$10,$11 - sd $11,0($4) - or $2,$2,$8 - - daddiu $5,$5,8 - daddiu $6,$6,8 - move $10,$12 - move $11,$13 - bne $9,$0,L(Loop0) - daddiu $4,$4,8 - -L(L0): beq $7,$0,L(Lend) - nop - -L(Loop): daddiu $7,$7,-4 - - ld $12,8($5) - daddu $11,$11,$2 - ld $13,8($6) - sltu $8,$11,$2 - dsubu $11,$10,$11 - sltu $2,$10,$11 - sd $11,0($4) - or $2,$2,$8 - - ld $10,16($5) - daddu $13,$13,$2 - ld $11,16($6) - sltu $8,$13,$2 - dsubu $13,$12,$13 - sltu $2,$12,$13 - sd $13,8($4) - or $2,$2,$8 - - ld $12,24($5) - daddu $11,$11,$2 - ld $13,24($6) - sltu $8,$11,$2 - dsubu $11,$10,$11 - sltu $2,$10,$11 - sd $11,16($4) - or $2,$2,$8 - - ld $10,32($5) - daddu $13,$13,$2 - ld $11,32($6) - sltu $8,$13,$2 - dsubu $13,$12,$13 - sltu $2,$12,$13 - sd $13,24($4) - or $2,$2,$8 - - daddiu $5,$5,32 - daddiu $6,$6,32 - - bne $7,$0,L(Loop) - daddiu $4,$4,32 - -L(Lend): daddu $11,$11,$2 - sltu $8,$11,$2 - dsubu $11,$10,$11 - sltu $2,$10,$11 - sd $11,0($4) - j $31 - or $2,$2,$8 - -END (__mpn_sub_n) diff --git a/sysdeps/mips/mips64/submul_1.S b/sysdeps/mips/mips64/submul_1.S deleted file mode 100644 index 11c9851814..0000000000 --- a/sysdeps/mips/mips64/submul_1.S +++ /dev/null @@ -1,132 +0,0 @@ -/* MIPS3 __mpn_submul_1 -- Multiply a limb vector with a single limb and - * subtract the product from a second limb vector. - * - * Copyright (C) 1992-2017 Free Software Foundation, Inc. - * - * This file is part of the GNU MP Library. - * - * The GNU MP 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 MP 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 MP Library. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#include <sysdep.h> -#include <sys/asm.h> - -/* INPUT PARAMETERS - * res_ptr $4 - * s1_ptr $5 - * size $6 - * s2_limb $7 - */ - -#ifdef __PIC__ - .option pic2 -#endif -ENTRY (__mpn_submul_1) -#ifdef __PIC__ - SETUP_GP /* ??? unused */ -#endif - .set noreorder - .set nomacro - - # warm up phase 0 - ld $8,0($5) - - # warm up phase 1 - daddiu $5,$5,8 -#if __mips_isa_rev < 6 - dmultu $8,$7 -#else - dmulu $11,$8,$7 - dmuhu $12,$8,$7 -#endif - - daddiu $6,$6,-1 - beq $6,$0,L(LC0) - move $2,$0 # zero cy2 - - daddiu $6,$6,-1 - beq $6,$0,L(LC1) - ld $8,0($5) # load new s1 limb as early as possible - -L(Loop): ld $10,0($4) -#if __mips_isa_rev < 6 - mflo $3 - mfhi $9 -#else - move $3,$11 - move $9,$12 -#endif - daddiu $5,$5,8 - daddu $3,$3,$2 # add old carry limb to low product limb -#if __mips_isa_rev < 6 - dmultu $8,$7 -#else - dmulu $11,$8,$7 - dmuhu $12,$8,$7 -#endif - ld $8,0($5) # load new s1 limb as early as possible - daddiu $6,$6,-1 # decrement loop counter - sltu $2,$3,$2 # carry from previous addition -> $2 - dsubu $3,$10,$3 - sgtu $10,$3,$10 - daddu $2,$2,$10 - sd $3,0($4) - daddiu $4,$4,8 - bne $6,$0,L(Loop) - daddu $2,$9,$2 # add high product limb and carry from addition - - # cool down phase 1 -L(LC1): ld $10,0($4) -#if __mips_isa_rev < 6 - mflo $3 - mfhi $9 -#else - move $3,$11 - move $9,$12 -#endif - daddu $3,$3,$2 - sltu $2,$3,$2 -#if __mips_isa_rev < 6 - dmultu $8,$7 -#else - dmulu $11,$8,$7 - dmuhu $12,$8,$7 -#endif - dsubu $3,$10,$3 - sgtu $10,$3,$10 - daddu $2,$2,$10 - sd $3,0($4) - daddiu $4,$4,8 - daddu $2,$9,$2 # add high product limb and carry from addition - - # cool down phase 0 -L(LC0): ld $10,0($4) -#if __mips_isa_rev < 6 - mflo $3 - mfhi $9 -#else - move $3,$11 - move $9,$12 -#endif - daddu $3,$3,$2 - sltu $2,$3,$2 - dsubu $3,$10,$3 - sgtu $10,$3,$10 - daddu $2,$2,$10 - sd $3,0($4) - j $31 - daddu $2,$9,$2 # add high product limb and carry from addition - -END (__mpn_submul_1) |