about summary refs log tree commit diff
path: root/sysdeps/alpha
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/alpha')
-rw-r--r--sysdeps/alpha/fpu/s_cacosf.c4
-rw-r--r--sysdeps/alpha/fpu/s_cacoshf.c4
-rw-r--r--sysdeps/alpha/fpu/s_casinf.c4
-rw-r--r--sysdeps/alpha/fpu/s_casinhf.c4
-rw-r--r--sysdeps/alpha/fpu/s_catanf.c4
-rw-r--r--sysdeps/alpha/fpu/s_catanhf.c4
-rw-r--r--sysdeps/alpha/fpu/s_ccosf.c4
-rw-r--r--sysdeps/alpha/fpu/s_ccoshf.c4
-rw-r--r--sysdeps/alpha/fpu/s_cexpf.c4
-rw-r--r--sysdeps/alpha/fpu/s_clog10f.c4
-rw-r--r--sysdeps/alpha/fpu/s_clogf.c4
-rw-r--r--sysdeps/alpha/fpu/s_cpowf.c4
-rw-r--r--sysdeps/alpha/fpu/s_cprojf.c4
-rw-r--r--sysdeps/alpha/fpu/s_csinf.c4
-rw-r--r--sysdeps/alpha/fpu/s_csinhf.c4
-rw-r--r--sysdeps/alpha/fpu/s_csqrtf.c4
-rw-r--r--sysdeps/alpha/fpu/s_ctanf.c4
-rw-r--r--sysdeps/alpha/fpu/s_ctanhf.c4
-rw-r--r--sysdeps/alpha/libc-tls.c4
-rw-r--r--sysdeps/alpha/strncmp.S33
20 files changed, 66 insertions, 43 deletions
diff --git a/sysdeps/alpha/fpu/s_cacosf.c b/sysdeps/alpha/fpu/s_cacosf.c
index 20e67f4ac9..46dca5aeb8 100644
--- a/sysdeps/alpha/fpu/s_cacosf.c
+++ b/sysdeps/alpha/fpu/s_cacosf.c
@@ -1,5 +1,5 @@
 /* Return arc cosine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_cacosf (_Complex float x);
 
-#include <sysdeps/generic/s_cacosf.c>
+#include <math/s_cacosf.c>
 #include "cfloat-compat.h"
 
 #undef __cacosf
diff --git a/sysdeps/alpha/fpu/s_cacoshf.c b/sysdeps/alpha/fpu/s_cacoshf.c
index 86cb4fbcaa..6b61d1ddaa 100644
--- a/sysdeps/alpha/fpu/s_cacoshf.c
+++ b/sysdeps/alpha/fpu/s_cacoshf.c
@@ -1,5 +1,5 @@
 /* Return arc hyperbole cosine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_cacoshf (_Complex float x);
 
-#include <sysdeps/generic/s_cacoshf.c>
+#include <math/s_cacoshf.c>
 #include "cfloat-compat.h"
 
 #undef __cacoshf
diff --git a/sysdeps/alpha/fpu/s_casinf.c b/sysdeps/alpha/fpu/s_casinf.c
index 3d0d4eadf2..fd41042ec9 100644
--- a/sysdeps/alpha/fpu/s_casinf.c
+++ b/sysdeps/alpha/fpu/s_casinf.c
@@ -1,5 +1,5 @@
 /* Return arc sine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_casinf (_Complex float x);
 
-#include <sysdeps/generic/s_casinf.c>
+#include <math/s_casinf.c>
 #include "cfloat-compat.h"
 
 #undef __casinf
diff --git a/sysdeps/alpha/fpu/s_casinhf.c b/sysdeps/alpha/fpu/s_casinhf.c
index 698ce10c04..0b72a24d5a 100644
--- a/sysdeps/alpha/fpu/s_casinhf.c
+++ b/sysdeps/alpha/fpu/s_casinhf.c
@@ -1,5 +1,5 @@
 /* Return arc hyperbole sine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_casinhf (_Complex float x);
 
-#include <sysdeps/generic/s_casinhf.c>
+#include <math/s_casinhf.c>
 #include "cfloat-compat.h"
 
 #undef __casinhf
diff --git a/sysdeps/alpha/fpu/s_catanf.c b/sysdeps/alpha/fpu/s_catanf.c
index 221a461c1b..8f40616617 100644
--- a/sysdeps/alpha/fpu/s_catanf.c
+++ b/sysdeps/alpha/fpu/s_catanf.c
@@ -1,5 +1,5 @@
 /* Return arc tangent of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_catanf (_Complex float x);
 
-#include <sysdeps/generic/s_catanf.c>
+#include <math/s_catanf.c>
 #include "cfloat-compat.h"
 
 #undef __catanf
diff --git a/sysdeps/alpha/fpu/s_catanhf.c b/sysdeps/alpha/fpu/s_catanhf.c
index 7465a43cac..ac11945727 100644
--- a/sysdeps/alpha/fpu/s_catanhf.c
+++ b/sysdeps/alpha/fpu/s_catanhf.c
@@ -1,5 +1,5 @@
 /* Return arc hyperbole tangent of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_catanhf (_Complex float x);
 
-#include <sysdeps/generic/s_catanhf.c>
+#include <math/s_catanhf.c>
 #include "cfloat-compat.h"
 
 #undef __catanhf
diff --git a/sysdeps/alpha/fpu/s_ccosf.c b/sysdeps/alpha/fpu/s_ccosf.c
index fd775903f0..04036f4613 100644
--- a/sysdeps/alpha/fpu/s_ccosf.c
+++ b/sysdeps/alpha/fpu/s_ccosf.c
@@ -1,5 +1,5 @@
 /* Return cosine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_ccosf (_Complex float x);
 
-#include <sysdeps/generic/s_ccosf.c>
+#include <math/s_ccosf.c>
 #include "cfloat-compat.h"
 
 #undef __ccosf
diff --git a/sysdeps/alpha/fpu/s_ccoshf.c b/sysdeps/alpha/fpu/s_ccoshf.c
index 0e8eab288f..e9fb34ce47 100644
--- a/sysdeps/alpha/fpu/s_ccoshf.c
+++ b/sysdeps/alpha/fpu/s_ccoshf.c
@@ -1,5 +1,5 @@
 /* Return hyperbole cosine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_ccoshf (_Complex float x);
 
-#include <sysdeps/generic/s_ccoshf.c>
+#include <math/s_ccoshf.c>
 #include "cfloat-compat.h"
 
 #undef __ccoshf
diff --git a/sysdeps/alpha/fpu/s_cexpf.c b/sysdeps/alpha/fpu/s_cexpf.c
index 2cf6db4b55..4a28dcd9bf 100644
--- a/sysdeps/alpha/fpu/s_cexpf.c
+++ b/sysdeps/alpha/fpu/s_cexpf.c
@@ -1,5 +1,5 @@
 /* Return exponent of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_cexpf (_Complex float x);
 
-#include <sysdeps/generic/s_cexpf.c>
+#include <math/s_cexpf.c>
 #include "cfloat-compat.h"
 
 #undef __cexpf
diff --git a/sysdeps/alpha/fpu/s_clog10f.c b/sysdeps/alpha/fpu/s_clog10f.c
index 12ecdea957..e7dc7bb23f 100644
--- a/sysdeps/alpha/fpu/s_clog10f.c
+++ b/sysdeps/alpha/fpu/s_clog10f.c
@@ -1,5 +1,5 @@
 /* Return base 10 logarithm of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_clog10f (_Complex float x);
 
-#include <sysdeps/generic/s_clog10f.c>
+#include <math/s_clog10f.c>
 #include "cfloat-compat.h"
 
 #undef __clog10f
diff --git a/sysdeps/alpha/fpu/s_clogf.c b/sysdeps/alpha/fpu/s_clogf.c
index 9eefe9fa30..364dcec883 100644
--- a/sysdeps/alpha/fpu/s_clogf.c
+++ b/sysdeps/alpha/fpu/s_clogf.c
@@ -1,5 +1,5 @@
 /* Return natural logarithm of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_clogf (_Complex float x);
 
-#include <sysdeps/generic/s_clogf.c>
+#include <math/s_clogf.c>
 #include "cfloat-compat.h"
 
 #undef __clogf
diff --git a/sysdeps/alpha/fpu/s_cpowf.c b/sysdeps/alpha/fpu/s_cpowf.c
index f4cb3547f6..cc61b1895e 100644
--- a/sysdeps/alpha/fpu/s_cpowf.c
+++ b/sysdeps/alpha/fpu/s_cpowf.c
@@ -1,5 +1,5 @@
 /* Return power of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_cpowf (_Complex float x, _Complex float c);
 
-#include <sysdeps/generic/s_cpowf.c>
+#include <math/s_cpowf.c>
 #include "cfloat-compat.h"
 
 #undef __cpowf
diff --git a/sysdeps/alpha/fpu/s_cprojf.c b/sysdeps/alpha/fpu/s_cprojf.c
index eac8687707..5cfb526679 100644
--- a/sysdeps/alpha/fpu/s_cprojf.c
+++ b/sysdeps/alpha/fpu/s_cprojf.c
@@ -1,5 +1,5 @@
 /* Return projection of complex float value to Riemann sphere.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_cprojf (_Complex float x);
 
-#include <sysdeps/generic/s_cprojf.c>
+#include <math/s_cprojf.c>
 #include "cfloat-compat.h"
 
 #undef __cprojf
diff --git a/sysdeps/alpha/fpu/s_csinf.c b/sysdeps/alpha/fpu/s_csinf.c
index eba70e9930..8eb9a1019d 100644
--- a/sysdeps/alpha/fpu/s_csinf.c
+++ b/sysdeps/alpha/fpu/s_csinf.c
@@ -1,5 +1,5 @@
 /* Return sine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_csinf (_Complex float x);
 
-#include <sysdeps/generic/s_csinf.c>
+#include <math/s_csinf.c>
 #include "cfloat-compat.h"
 
 #undef __csinf
diff --git a/sysdeps/alpha/fpu/s_csinhf.c b/sysdeps/alpha/fpu/s_csinhf.c
index 9db81a81e4..0e2c186740 100644
--- a/sysdeps/alpha/fpu/s_csinhf.c
+++ b/sysdeps/alpha/fpu/s_csinhf.c
@@ -1,5 +1,5 @@
 /* Return hyperbole sine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_csinhf (_Complex float x);
 
-#include <sysdeps/generic/s_csinhf.c>
+#include <math/s_csinhf.c>
 #include "cfloat-compat.h"
 
 #undef __csinhf
diff --git a/sysdeps/alpha/fpu/s_csqrtf.c b/sysdeps/alpha/fpu/s_csqrtf.c
index cc4a8e0245..ebf23a828e 100644
--- a/sysdeps/alpha/fpu/s_csqrtf.c
+++ b/sysdeps/alpha/fpu/s_csqrtf.c
@@ -1,5 +1,5 @@
 /* Return square root of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_csqrtf (_Complex float x);
 
-#include <sysdeps/generic/s_csqrtf.c>
+#include <math/s_csqrtf.c>
 #include "cfloat-compat.h"
 
 #undef __csqrtf
diff --git a/sysdeps/alpha/fpu/s_ctanf.c b/sysdeps/alpha/fpu/s_ctanf.c
index 843ee53717..e26db963e4 100644
--- a/sysdeps/alpha/fpu/s_ctanf.c
+++ b/sysdeps/alpha/fpu/s_ctanf.c
@@ -1,5 +1,5 @@
 /* Return tangent of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_ctanf (_Complex float x);
 
-#include <sysdeps/generic/s_ctanf.c>
+#include <math/s_ctanf.c>
 #include "cfloat-compat.h"
 
 #undef __ctanf
diff --git a/sysdeps/alpha/fpu/s_ctanhf.c b/sysdeps/alpha/fpu/s_ctanhf.c
index f1f74ab12d..5d047bd460 100644
--- a/sysdeps/alpha/fpu/s_ctanhf.c
+++ b/sysdeps/alpha/fpu/s_ctanhf.c
@@ -1,5 +1,5 @@
 /* Return hyperbole tangent of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 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
@@ -29,7 +29,7 @@
 
 static _Complex float internal_ctanhf (_Complex float x);
 
-#include <sysdeps/generic/s_ctanhf.c>
+#include <math/s_ctanhf.c>
 #include "cfloat-compat.h"
 
 #undef __ctanhf
diff --git a/sysdeps/alpha/libc-tls.c b/sysdeps/alpha/libc-tls.c
index a3b68e928f..24629e9aca 100644
--- a/sysdeps/alpha/libc-tls.c
+++ b/sysdeps/alpha/libc-tls.c
@@ -1,5 +1,5 @@
 /* Thread-local storage handling in the ELF dynamic linker.  Alpha version.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 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
@@ -17,7 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <sysdeps/generic/libc-tls.c>
+#include <csu/libc-tls.c>
 #include <dl-tls.h>
 
 #if USE_TLS
diff --git a/sysdeps/alpha/strncmp.S b/sysdeps/alpha/strncmp.S
index e2b4ebf857..ff199eb743 100644
--- a/sysdeps/alpha/strncmp.S
+++ b/sysdeps/alpha/strncmp.S
@@ -61,8 +61,10 @@ $aligned:
 	ornot	t0, t3, t0	# .. e1 :
 	cmpbge	zero, t1, t7	# e0    : bits set iff null found
 	beq	a2, $eoc	# .. e1 : check end of count
-	subq	a2, 1, a2	# e0    :
+	unop			# e0    :
 	bne	t7, $eos	# .. e1 :
+	unop			# e0    :
+	beq	t10, $ant_loop	# .. e1 :
 
 	/* Aligned compare main loop.
 	   On entry to this basic block:
@@ -74,13 +76,30 @@ $a_loop:
 	bne	t2, $wordcmp	# .. e1 (zdb)
 	ldq_u	t1, 8(a1)	# e0    :
 	ldq_u	t0, 8(a0)	# .. e1 :
+	subq	a2, 1, a2	# e0    :
+	addq	a1, 8, a1	# .. e1 :
+	addq	a0, 8, a0	# e0    :
+	beq	a2, $eoc	# .. e1 :
+	cmpbge	zero, t1, t7	# e0    :
+	beq	t7, $a_loop	# .. e1 :
+	unop			# e0    :
+	br	$eos		# .. e1 :
+
+	/* Alternate aligned compare loop, for when there's no trailing
+	   bytes on the count.  We have to avoid reading too much data.  */
+$ant_loop:
+	xor	t0, t1, t2	# e0	:
+	bne	t2, $wordcmp	# .. e1 (zdb)
+	subq	a2, 1, a2	# e0    :
+	beq	a2, $zerolength	# .. e1 :
+	ldq_u	t1, 8(a1)	# e0    :
+	ldq_u	t0, 8(a0)	# .. e1 :
 	addq	a1, 8, a1	# e0    :
 	addq	a0, 8, a0	# .. e1 :
 	cmpbge	zero, t1, t7	# e0    :
-	beq	a2, $eoc	# .. e1 :
-	subq	a2, 1, a2	# e0    :
-	beq	t7, $a_loop	# .. e1 :
-	br	$eos		# e1    :
+	beq	t7, $ant_loop	# .. e1 :
+	unop			# e0	:
+	br	$eos		# .. e1 :
 
 	/* The two strings are not co-aligned.  Align s1 and cope.  */
 $unaligned:
@@ -184,6 +203,8 @@ $u_final:
 $eoc:
 	mskql	t0, t10, t0
 	mskql	t1, t10, t1
+	unop
+	cmpbge	zero, t1, t7
 
 	/* We've found a zero somewhere in a word we just read.
 	   On entry to this basic block:
@@ -203,6 +224,7 @@ $eos:
 
 	/* Here we have two differing co-aligned words in t0 & t1.
 	   Bytewise compare them and return (t0 > t1 ? 1 : -1).  */
+	.align 3
 $wordcmp:
 	cmpbge	t0, t1, t2	# e0    : comparison yields bit mask of ge
 	cmpbge	t1, t0, t3	# .. e1 :
@@ -216,6 +238,7 @@ $wordcmp:
 $done:
 	ret			# e1    :
 
+	.align 3
 $zerolength:
 	clr	v0
 	ret