From 27d54b2a6c18ef1ae50f1a5b432d590438445b90 Mon Sep 17 00:00:00 2001
From: Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
Date: Mon, 20 Oct 2003 18:37:22 +0000
Subject: [PATCH] ffi.c: Use _ABIN32, _ABIO32 instead of external
 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.

	libffi:
	* src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
	_MIPS_SIM_NABI32, _MIPS_SIM_ABI32.

	libstdc++-v3:
	* config/cpu/mips/atomicity.h (__atomic_add): Use _ABIO32 instead
	of external _MIPS_SIM_ABI32.

	boehm-gc:
	* mips_sgi_mach_dep.s: Use _ABIO32 instead of external
	_MIPS_SIM_ABI32.

	gcc:
	* config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32.
	Use it in _MIPS_SIM definition.
	* config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise.

From-SVN: r72713
---
 boehm-gc/ChangeLog                       |  5 +++++
 boehm-gc/mips_sgi_mach_dep.s             |  2 +-
 gcc/ChangeLog                            |  6 ++++++
 gcc/config/mips/linux.h                  |  3 ++-
 gcc/config/mips/mips.h                   |  2 +-
 libffi/ChangeLog                         |  5 +++++
 libffi/src/mips/ffi.c                    | 20 ++++++++++----------
 libstdc++-v3/ChangeLog                   |  5 +++++
 libstdc++-v3/config/cpu/mips/atomicity.h |  4 ++--
 9 files changed, 37 insertions(+), 15 deletions(-)

diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 60e4cfac10a3..5f5c2c0a2c42 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,8 @@
+2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* mips_sgi_mach_dep.s: Use _ABIO32 instead of external
+	_MIPS_SIM_ABI32.
+
 2003-10-18  Alan Modra  <amodra@bigpond.net.au>
 
 	* include/private/gcconfig.h (ALIGNMENT <powerpc linux>): Remove
diff --git a/boehm-gc/mips_sgi_mach_dep.s b/boehm-gc/mips_sgi_mach_dep.s
index 56390280a718..cadacf5ed4d8 100644
--- a/boehm-gc/mips_sgi_mach_dep.s
+++ b/boehm-gc/mips_sgi_mach_dep.s
@@ -24,7 +24,7 @@
 #   endif
     SAVE_GP(GPOFF)
     REG_S 	ra,RAOFF(sp)
-#   if (_MIPS_SIM == _MIPS_SIM_ABI32)
+#   if (_MIPS_SIM == _ABIO32)
     	call_push($2)
     	call_push($3)
 #   endif
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5abaefd2e218..6219b2897472 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32.
+	Use it in _MIPS_SIM definition.
+	* config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise.
+
 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
 
 	* config/i386/i386.c (print_reg): Abort if REGNO (x) is a
diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
index de7286d04f9e..1785a147036d 100644
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
@@ -81,7 +81,8 @@ Boston, MA 02111-1307, USA.  */
       }								\
      else							\
       {								\
-        builtin_define ("_MIPS_SIM=_MIPS_SIM_ABI32");		\
+	builtin_define ("_ABIO32=1");			\
+	builtin_define ("_MIPS_SIM=_ABIO32");		\
         builtin_define ("_MIPS_SZLONG=32");			\
         builtin_define ("_MIPS_SZPTR=32");			\
       }								\
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index 7af1026c828c..1b51913a0221 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -3465,7 +3465,7 @@ while (0)
    we need to load our GP.  We don't preserve $gp or $ra, since each
    init/fini chunk is supposed to initialize $gp, and crti/crtn
    already take care of preserving $ra and, when appropriate, $gp.  */
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if (defined _ABIO32 && _MIPS_SIM == _ABIO32)
 #define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC)	\
    asm (SECTION_OP "\n\
 	.set noreorder\n\
diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index 627a5f817110..7d553b7fede1 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,8 @@
+2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
+	_MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
+
 2003-10-19  Andreas Tobler  <a.tobler@schweiz.ch>
 
 	* src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
diff --git a/libffi/src/mips/ffi.c b/libffi/src/mips/ffi.c
index 93f79239dfc0..01ad20e4c0dd 100644
--- a/libffi/src/mips/ffi.c
+++ b/libffi/src/mips/ffi.c
@@ -29,7 +29,7 @@
 
 #include <stdlib.h>
 
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
 #define FIX_ARGP \
 FFI_ASSERT(argp <= &stack[bytes]); \
 if (argp == &stack[bytes]) \
@@ -55,7 +55,7 @@ static void ffi_prep_args(char *stack,
   register char *argp;
   register ffi_type **p_arg;
 
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
   /* If more than 8 double words are used, the remainder go
      on the stack. We reorder stuff on the stack here to 
      support this easily. */
@@ -69,7 +69,7 @@ static void ffi_prep_args(char *stack,
 
   memset(stack, 0, bytes);
 
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
   if ( ecif->cif->rstruct_flag != 0 )
 #else
   if ( ecif->cif->rtype->type == FFI_TYPE_STRUCT )
@@ -92,7 +92,7 @@ static void ffi_prep_args(char *stack,
 	FIX_ARGP;
       }
 
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 #define OFFSET 0
 #else
 #define OFFSET sizeof(int)
@@ -146,7 +146,7 @@ static void ffi_prep_args(char *stack,
 	    }
 	  else
 	    {
-#if _MIPS_SIM == _MIPS_SIM_ABI32	      
+#if _MIPS_SIM == _ABIO32	      
 	      memcpy(argp, *p_argv, z);
 #else
 	      {
@@ -178,7 +178,7 @@ static void ffi_prep_args(char *stack,
   return;
 }
 
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
 
 /* The n32 spec says that if "a chunk consists solely of a double 
    float field (but not a double, which is part of a union), it
@@ -267,7 +267,7 @@ ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
 {
   cif->flags = 0;
 
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
   /* Set the flags necessary for O32 processing */
 
   if (cif->rtype->type != FFI_TYPE_STRUCT)
@@ -322,7 +322,7 @@ ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
     }
 #endif
 
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
   /* Set the flags necessary for N32 processing */
   {
     unsigned shift = 0;
@@ -441,14 +441,14 @@ void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
     
   switch (cif->abi) 
     {
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
     case FFI_O32:
       ffi_call_O32(ffi_prep_args, &ecif, cif->bytes, 
 		   cif->flags, ecif.rvalue, fn);
       break;
 #endif
 
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
     case FFI_N32:
       ffi_call_N32(ffi_prep_args, &ecif, cif->bytes, 
 		   cif->flags, ecif.rvalue, fn);
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 6706b0f4ea3d..b93dac9bb370 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* config/cpu/mips/atomicity.h (__atomic_add): Use _ABIO32 instead
+	of external _MIPS_SIM_ABI32.
+
 2003-10-20  Phil Edwards  <phil@codesourcery.com>
 
 	* configure.ac:  Fix comment typo.
diff --git a/libstdc++-v3/config/cpu/mips/atomicity.h b/libstdc++-v3/config/cpu/mips/atomicity.h
index 51f3e8644625..f24b059b8e9d 100644
--- a/libstdc++-v3/config/cpu/mips/atomicity.h
+++ b/libstdc++-v3/config/cpu/mips/atomicity.h
@@ -42,7 +42,7 @@ __exchange_and_add (volatile _Atomic_word *__mem, int __val)
     ("/* Inline exchange & add */\n\t"
      "1:\n\t"
      ".set	push\n\t"
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
      ".set	mips2\n\t"
 #endif
      "ll	%0,%3\n\t"
@@ -68,7 +68,7 @@ __atomic_add (volatile _Atomic_word *__mem, int __val)
     ("/* Inline atomic add */\n\t"
      "1:\n\t"
      ".set	push\n\t"
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
      ".set	mips2\n\t"
 #endif
      "ll	%0,%2\n\t"
-- 
GitLab