about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2002-04-04 09:04:37 +0000
committerAndreas Jaeger <aj@suse.de>2002-04-04 09:04:37 +0000
commit2b904739046c4af93135b0b559dd4749952b9f80 (patch)
tree2b463040a4cf2336eda877943f329d97784dc9ba /sysdeps
parent7831dd492d65cf631308953be2a9c5c52a8a1cd5 (diff)
downloadglibc-2b904739046c4af93135b0b559dd4749952b9f80.tar.gz
glibc-2b904739046c4af93135b0b559dd4749952b9f80.tar.xz
glibc-2b904739046c4af93135b0b559dd4749952b9f80.zip
Update.
2002-04-04  Andreas Jaeger  <aj@suse.de>

	* sysdeps/x86_64/fpu/e_sqrt.c: New file.
	* sysdeps/x86_64/fpu/e_sqrtf.c: New file.

	* sysdeps/x86_64/fpu/s_fabs.c: New file.
	* sysdeps/x86_64/fpu/s_fabsf.c: New file.
	* sysdeps/x86_64/fpu/s_fabsl.c: New file.

	* sysdeps/unix/sysv/linux/x86_64/time.S: New file.

	* sysdeps/unix/sysv/linux/x86_64/gettimeofday.S: New file.

	* sysdeps/unix/sysv/linux/x86_64/gettimeofday.c: Removed.
	* sysdeps/unix/sysv/linux/x86_64/time.S: Removed.

	* configure.in: Handle all mips entries the same.

	* sysdeps/mips/dec/bits/endian.h: Removed since arch is not
	supported.
	* sysdeps/mips/mips3/*: Likewise.
	* sysdeps/mips/p40/bits/endian.h: Likewise.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/mips/dec/bits/endian.h8
-rw-r--r--sysdeps/mips/mips3/Implies1
-rw-r--r--sysdeps/mips/mips3/add_n.s120
-rw-r--r--sysdeps/mips/mips3/addmul_1.s97
-rw-r--r--sysdeps/mips/mips3/gmp-mparam.h27
-rw-r--r--sysdeps/mips/mips3/lshift.s95
-rw-r--r--sysdeps/mips/mips3/mul_1.s85
-rw-r--r--sysdeps/mips/mips3/rshift.s92
-rw-r--r--sysdeps/mips/mips3/sub_n.s120
-rw-r--r--sysdeps/mips/mips3/submul_1.s97
-rw-r--r--sysdeps/mips/p40/bits/endian.h8
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/gettimeofday.S41
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/time.S42
-rw-r--r--sysdeps/x86_64/fpu/e_sqrt.c30
-rw-r--r--sysdeps/x86_64/fpu/e_sqrtf.c30
-rw-r--r--sysdeps/x86_64/fpu/s_fabs.c27
-rw-r--r--sysdeps/x86_64/fpu/s_fabsf.c27
-rw-r--r--sysdeps/x86_64/fpu/s_fabsl.S28
18 files changed, 225 insertions, 750 deletions
diff --git a/sysdeps/mips/dec/bits/endian.h b/sysdeps/mips/dec/bits/endian.h
deleted file mode 100644
index 0bdb378944..0000000000
--- a/sysdeps/mips/dec/bits/endian.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* The MIPS architecture has selectable endianness.
-   The DECstation uses little-endian mode.  */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
diff --git a/sysdeps/mips/mips3/Implies b/sysdeps/mips/mips3/Implies
deleted file mode 100644
index 39a34c5f57..0000000000
--- a/sysdeps/mips/mips3/Implies
+++ /dev/null
@@ -1 +0,0 @@
-wordsize-32
diff --git a/sysdeps/mips/mips3/add_n.s b/sysdeps/mips/mips3/add_n.s
deleted file mode 100644
index 7a25341cd6..0000000000
--- a/sysdeps/mips/mips3/add_n.s
+++ /dev/null
@@ -1,120 +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 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; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- # MA 02111-1307, USA.
-
-
- # INPUT PARAMETERS
- # res_ptr	$4
- # s1_ptr	$5
- # s2_ptr	$6
- # size		$7
-
-	.text
-	.align	2
-	.globl	__mpn_add_n
-	.ent	__mpn_add_n
-__mpn_add_n:
-	.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,.L0	# if multiple of 4 limbs, skip first loop
-	 move	$2,$0
-
-	dsubu	$7,$7,$9
-
-.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,.Loop0
-	 daddiu	$4,$4,8
-
-.L0:	beq	$7,$0,.Lend
-	 nop
-
-.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,.Loop
-	 daddiu	$4,$4,32
-
-.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/mips3/addmul_1.s b/sysdeps/mips/mips3/addmul_1.s
deleted file mode 100644
index 9a87c3ff2a..0000000000
--- a/sysdeps/mips/mips3/addmul_1.s
+++ /dev/null
@@ -1,97 +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, 1994, 1995 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; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- # MA 02111-1307, USA.
-
-
- # INPUT PARAMETERS
- # res_ptr	$4
- # s1_ptr	$5
- # size		$6
- # s2_limb	$7
-
-	.text
-	.align	4
-	.globl	__mpn_addmul_1
-	.ent	__mpn_addmul_1
-__mpn_addmul_1:
-	.set    noreorder
-	.set    nomacro
-
- # warm up phase 0
-	ld	$8,0($5)
-
- # warm up phase 1
-	daddiu	$5,$5,8
-	dmultu	$8,$7
-
-	daddiu	$6,$6,-1
-	beq	$6,$0,$LC0
-	 move	$2,$0		# zero cy2
-
-	daddiu	$6,$6,-1
-	beq	$6,$0,$LC1
-	ld	$8,0($5)	# load new s1 limb as early as possible
-
-Loop:	ld	$10,0($4)
-	mflo	$3
-	mfhi	$9
-	daddiu	$5,$5,8
-	daddu	$3,$3,$2	# add old carry limb to low product limb
-	dmultu	$8,$7
-	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,Loop
-	 daddu	$2,$9,$2	# add high product limb and carry from addition
-
- # cool down phase 1
-$LC1:	ld	$10,0($4)
-	mflo	$3
-	mfhi	$9
-	daddu	$3,$3,$2
-	sltu	$2,$3,$2
-	dmultu	$8,$7
-	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
-$LC0:	ld	$10,0($4)
-	mflo	$3
-	mfhi	$9
-	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/mips3/gmp-mparam.h b/sysdeps/mips/mips3/gmp-mparam.h
deleted file mode 100644
index 0d36735b7f..0000000000
--- a/sysdeps/mips/mips3/gmp-mparam.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright (C) 1991, 1993, 1994 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; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-MA 02111-1307, USA. */
-
-#define BITS_PER_MP_LIMB 64
-#define BYTES_PER_MP_LIMB 8
-#define BITS_PER_LONGINT 32
-#define BITS_PER_INT 32
-#define BITS_PER_SHORTINT 16
-#define BITS_PER_CHAR 8
diff --git a/sysdeps/mips/mips3/lshift.s b/sysdeps/mips/mips3/lshift.s
deleted file mode 100644
index 2c39a1c91e..0000000000
--- a/sysdeps/mips/mips3/lshift.s
+++ /dev/null
@@ -1,95 +0,0 @@
- # MIPS3 __mpn_lshift --
-
- # Copyright (C) 1995 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; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- # MA 02111-1307, USA.
-
-
- # INPUT PARAMETERS
- # res_ptr	$4
- # src_ptr	$5
- # size		$6
- # cnt		$7
-
-	.text
-	.align	2
-	.globl	__mpn_lshift
-	.ent	__mpn_lshift
-__mpn_lshift:
-	.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,.L0	# if multiple of 4 limbs, skip first loop
-	 dsrl	$2,$10,$13	# compute function result
-
-	dsubu	$6,$6,$9
-
-.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,.Loop0
-	 sd	$8,0($4)
-
-.L0:	beq	$6,$0,.Lend
-	 nop
-
-.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,.Loop
-	 sd	$8,0($4)
-
-.Lend:	dsll	$8,$10,$7
-	j	$31
-	sd	$8,-8($4)
-	.end	__mpn_lshift
diff --git a/sysdeps/mips/mips3/mul_1.s b/sysdeps/mips/mips3/mul_1.s
deleted file mode 100644
index d65e65c426..0000000000
--- a/sysdeps/mips/mips3/mul_1.s
+++ /dev/null
@@ -1,85 +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, 1994, 1995 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; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- # MA 02111-1307, USA.
-
-
- # INPUT PARAMETERS
- # res_ptr	$4
- # s1_ptr	$5
- # size		$6
- # s2_limb	$7
-
-	.text
-	.align	4
-	.globl	__mpn_mul_1
-	.ent	__mpn_mul_1
-__mpn_mul_1:
-	.set    noreorder
-	.set    nomacro
-
- # warm up phase 0
-	ld	$8,0($5)
-
- # warm up phase 1
-	daddiu	$5,$5,8
-	dmultu	$8,$7
-
-	daddiu	$6,$6,-1
-	beq	$6,$0,$LC0
-	 move	$2,$0		# zero cy2
-
-	daddiu	$6,$6,-1
-	beq	$6,$0,$LC1
-	ld	$8,0($5)	# load new s1 limb as early as possible
-
-Loop:	mflo	$10
-	mfhi	$9
-	daddiu	$5,$5,8
-	daddu	$10,$10,$2	# add old carry limb to low product limb
-	dmultu	$8,$7
-	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,Loop
-	 daddu	$2,$9,$2	# add high product limb and carry from addition
-
- # cool down phase 1
-$LC1:	mflo	$10
-	mfhi	$9
-	daddu	$10,$10,$2
-	sltu	$2,$10,$2
-	dmultu	$8,$7
-	sd	$10,0($4)
-	daddiu	$4,$4,8
-	daddu	$2,$9,$2	# add high product limb and carry from addition
-
- # cool down phase 0
-$LC0:	mflo	$10
-	mfhi	$9
-	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/mips3/rshift.s b/sysdeps/mips/mips3/rshift.s
deleted file mode 100644
index fc4790a4e4..0000000000
--- a/sysdeps/mips/mips3/rshift.s
+++ /dev/null
@@ -1,92 +0,0 @@
- # MIPS3 __mpn_rshift --
-
- # Copyright (C) 1995 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; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- # MA 02111-1307, USA.
-
-
- # INPUT PARAMETERS
- # res_ptr	$4
- # src_ptr	$5
- # size		$6
- # cnt		$7
-
-	.text
-	.align	2
-	.globl	__mpn_rshift
-	.ent	__mpn_rshift
-__mpn_rshift:
-	.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,.L0	# if multiple of 4 limbs, skip first loop
-	 dsll	$2,$10,$13	# compute function result
-
-	dsubu	$6,$6,$9
-
-.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,.Loop0
-	 sd	$8,-8($4)
-
-.L0:	beq	$6,$0,.Lend
-	 nop
-
-.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,.Loop
-	 sd	$8,-8($4)
-
-.Lend:	dsrl	$8,$10,$7
-	j	$31
-	sd	$8,0($4)
-	.end	__mpn_rshift
diff --git a/sysdeps/mips/mips3/sub_n.s b/sysdeps/mips/mips3/sub_n.s
deleted file mode 100644
index 0ea9413082..0000000000
--- a/sysdeps/mips/mips3/sub_n.s
+++ /dev/null
@@ -1,120 +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 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; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- # MA 02111-1307, USA.
-
-
- # INPUT PARAMETERS
- # res_ptr	$4
- # s1_ptr	$5
- # s2_ptr	$6
- # size		$7
-
-	.text
-	.align	2
-	.globl	__mpn_sub_n
-	.ent	__mpn_sub_n
-__mpn_sub_n:
-	.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,.L0	# if multiple of 4 limbs, skip first loop
-	 move	$2,$0
-
-	dsubu	$7,$7,$9
-
-.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,.Loop0
-	 daddiu	$4,$4,8
-
-.L0:	beq	$7,$0,.Lend
-	 nop
-
-.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,.Loop
-	 daddiu	$4,$4,32
-
-.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/mips3/submul_1.s b/sysdeps/mips/mips3/submul_1.s
deleted file mode 100644
index 60153da9fc..0000000000
--- a/sysdeps/mips/mips3/submul_1.s
+++ /dev/null
@@ -1,97 +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, 1994, 1995 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; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- # MA 02111-1307, USA.
-
-
- # INPUT PARAMETERS
- # res_ptr	$4
- # s1_ptr	$5
- # size		$6
- # s2_limb	$7
-
-	.text
-	.align	4
-	.globl	__mpn_submul_1
-	.ent	__mpn_submul_1
-__mpn_submul_1:
-	.set    noreorder
-	.set    nomacro
-
- # warm up phase 0
-	ld	$8,0($5)
-
- # warm up phase 1
-	daddiu	$5,$5,8
-	dmultu	$8,$7
-
-	daddiu	$6,$6,-1
-	beq	$6,$0,$LC0
-	 move	$2,$0		# zero cy2
-
-	daddiu	$6,$6,-1
-	beq	$6,$0,$LC1
-	ld	$8,0($5)	# load new s1 limb as early as possible
-
-Loop:	ld	$10,0($4)
-	mflo	$3
-	mfhi	$9
-	daddiu	$5,$5,8
-	daddu	$3,$3,$2	# add old carry limb to low product limb
-	dmultu	$8,$7
-	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,Loop
-	 daddu	$2,$9,$2	# add high product limb and carry from addition
-
- # cool down phase 1
-$LC1:	ld	$10,0($4)
-	mflo	$3
-	mfhi	$9
-	daddu	$3,$3,$2
-	sltu	$2,$3,$2
-	dmultu	$8,$7
-	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
-$LC0:	ld	$10,0($4)
-	mflo	$3
-	mfhi	$9
-	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
diff --git a/sysdeps/mips/p40/bits/endian.h b/sysdeps/mips/p40/bits/endian.h
deleted file mode 100644
index f6cdde2cb3..0000000000
--- a/sysdeps/mips/p40/bits/endian.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* The MIPS has selectable endianness.
-   The Japanese homebrew P40 architecture uses big-endian mode.  */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __BIG_ENDIAN
diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S
new file mode 100644
index 0000000000..4978416e0a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S
@@ -0,0 +1,41 @@
+/* Copyright (C) 2002 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <sysdep.h>
+#define _ERRNO_H	1
+#include <bits/errno.h>
+
+/* For the calculation see asm/vsyscall.h.  */
+#define VSYSCALL_ADDR_vgettimeofday	0xffffffffff600000
+
+
+ENTRY (__gettimeofday)
+	/* Align stack.  */
+	sub	$0x8, %rsp
+	movq	$VSYSCALL_ADDR_vgettimeofday, %rax
+	callq	*%rax
+	/* Check error return.  */
+	cmpl	$-4095, %eax
+	jae	SYSCALL_ERROR_LABEL
+
+L(pseudo_end):
+	add	$0x8, %rsp
+	ret
+PSEUDO_END(__gettimeofday)
+
+weak_alias (__gettimeofday, gettimeofday)
diff --git a/sysdeps/unix/sysv/linux/x86_64/time.S b/sysdeps/unix/sysv/linux/x86_64/time.S
new file mode 100644
index 0000000000..ecd939372a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/time.S
@@ -0,0 +1,42 @@
+/* Copyright (C) 2001, 2002 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <sysdep.h>
+#define _ERRNO_H	1
+#include <bits/errno.h>
+
+/* For the calculation see asm/vsyscall.h.  */
+#define VSYSCALL_ADDR_vtime	0xffffffffff600400
+
+
+/* Return the current time as a `time_t' and also put it in *T if T is
+   not NULL.  Time is represented as seconds from Jan 1 00:00:00 1970.  */
+
+ENTRY (time)
+	/* Align stack.  */
+	sub	$0x8, %rsp
+	movq	$VSYSCALL_ADDR_vtime, %rax
+	callq	*%rax
+	/* Check error return.  */
+	cmpl	$-4095, %eax
+	jae	SYSCALL_ERROR_LABEL
+
+L(pseudo_end):
+	add	$0x8, %rsp
+	ret
+PSEUDO_END(time)
diff --git a/sysdeps/x86_64/fpu/e_sqrt.c b/sysdeps/x86_64/fpu/e_sqrt.c
new file mode 100644
index 0000000000..d588a8b10d
--- /dev/null
+++ b/sysdeps/x86_64/fpu/e_sqrt.c
@@ -0,0 +1,30 @@
+/* Square root of floating point number.
+   Copyright (C) 2002 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <math_private.h>
+
+double
+__ieee754_sqrt (double x)
+{
+  double res;
+
+  asm ("sqrtsd %0, %1" : "=x" (res) : "x" (x));
+
+  return res;
+}
diff --git a/sysdeps/x86_64/fpu/e_sqrtf.c b/sysdeps/x86_64/fpu/e_sqrtf.c
new file mode 100644
index 0000000000..f7801f05d2
--- /dev/null
+++ b/sysdeps/x86_64/fpu/e_sqrtf.c
@@ -0,0 +1,30 @@
+/* Square root of floating point number.
+   Copyright (C) 2002 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <math_private.h>
+
+float
+__ieee754_sqrtf (float x)
+{
+  float res;
+
+  asm ("sqrtss %0, %1" : "=x" (res) : "x" (x));
+
+  return res;
+}
diff --git a/sysdeps/x86_64/fpu/s_fabs.c b/sysdeps/x86_64/fpu/s_fabs.c
new file mode 100644
index 0000000000..e5f70b7844
--- /dev/null
+++ b/sysdeps/x86_64/fpu/s_fabs.c
@@ -0,0 +1,27 @@
+/* Absolute value of floating point number.
+   Copyright (C) 2002 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <math.h>
+
+double
+__fabs (double x)
+{
+  return __builtin_fabs (x);
+}
+weak_alias (__fabs, fabs)
diff --git a/sysdeps/x86_64/fpu/s_fabsf.c b/sysdeps/x86_64/fpu/s_fabsf.c
new file mode 100644
index 0000000000..5e58c11310
--- /dev/null
+++ b/sysdeps/x86_64/fpu/s_fabsf.c
@@ -0,0 +1,27 @@
+/* Absolute value of floating point number.
+   Copyright (C) 2002 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <math.h>
+
+float
+__fabsf (float x)
+{
+  return __builtin_fabsf (x);
+}
+weak_alias (__fabsf, fabsf)
diff --git a/sysdeps/x86_64/fpu/s_fabsl.S b/sysdeps/x86_64/fpu/s_fabsl.S
new file mode 100644
index 0000000000..3bee0f244e
--- /dev/null
+++ b/sysdeps/x86_64/fpu/s_fabsl.S
@@ -0,0 +1,28 @@
+/* Absolute value of floating point number.
+   Copyright (C) 2002 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <sysdep.h>
+
+       .text
+ENTRY(__fabsl)
+       fldt    8(%rsp)
+       fabs
+       ret
+END(__fabsl)
+weak_alias (__fabsl, fabsl)