about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/mips/memcpy.S13
-rw-r--r--sysdeps/mips/memset.S7
-rw-r--r--sysdeps/mips/sys/regdef.h9
4 files changed, 35 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 642c6ed11e..8479343256 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2003-03-14  Alexandre Oliva  <aoliva@redhat.com>
 
+	* sysdeps/mips/memcpy.S: Map t0-3 to a4-7 on new abis.
+	* sysdeps/mips/memset.S: Likewise.
+	* sysdeps/mips/sys/regdef.h: Alias a4-7 or t0-3 to $8-11
+	depending on the ABI.
+
+2003-03-14  Alexandre Oliva  <aoliva@redhat.com>
+
 	* sysdeps/mips/atomicity.h (exchange_and_add, atomic_add):
 	Don't .set mips2 on new abi.
 	(compare_and_swap): Likewise.  Support 64-bit longs on n64.
diff --git a/sysdeps/mips/memcpy.S b/sysdeps/mips/memcpy.S
index 3d49ac976b..c77f1b8d97 100644
--- a/sysdeps/mips/memcpy.S
+++ b/sysdeps/mips/memcpy.S
@@ -40,6 +40,19 @@
 #  define SWLO	swl		/* low part is left in little-endian	*/
 #endif
 
+#ifndef t0
+# define t0 a4
+#endif
+#ifndef t1
+# define t1 a5
+#endif
+#ifndef t2
+# define t2 a6
+#endif
+#ifndef t3
+# define t3 a7
+#endif
+
 ENTRY (memcpy)
 	.set	noreorder
 
diff --git a/sysdeps/mips/memset.S b/sysdeps/mips/memset.S
index 7825dea880..46811340ec 100644
--- a/sysdeps/mips/memset.S
+++ b/sysdeps/mips/memset.S
@@ -34,6 +34,13 @@
 # define SWHI	swr		/* high part is right in little-endian	*/
 #endif
 
+#ifndef t0
+# define t0 a4
+#endif
+#ifndef t1
+# define t1 a5
+#endif
+
 ENTRY (memset)
 	.set	noreorder
 
diff --git a/sysdeps/mips/sys/regdef.h b/sysdeps/mips/sys/regdef.h
index c4df603836..f3a0df5ab4 100644
--- a/sysdeps/mips/sys/regdef.h
+++ b/sysdeps/mips/sys/regdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ralf Baechle <ralf@gnu.org>.
 
@@ -31,10 +31,17 @@
 #define a1      $5
 #define a2      $6
 #define a3      $7
+#if _MIPS_SIM != _MIPS_SIM_ABI32
+#define a4	$8
+#define a5	$9
+#define a6	$10
+#define a7	$11
+#else /* if _MIPS_SIM == _MIPS_SIM_ABI32 */
 #define t0      $8      /* caller saved */
 #define t1      $9
 #define t2      $10
 #define t3      $11
+#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
 #define t4      $12
 #define t5      $13
 #define t6      $14