diff --git a/ChangeLog b/ChangeLog index 642c6ed11e..8479343256 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-03-14 Alexandre Oliva + + * 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 * sysdeps/mips/atomicity.h (exchange_and_add, atomic_add): 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 . @@ -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