MIPS is always multi-arch enabled.
authorAndrew Cagney <cagney@redhat.com>
Thu, 8 Jun 2000 06:35:40 +0000 (06:35 +0000)
committerAndrew Cagney <cagney@redhat.com>
Thu, 8 Jun 2000 06:35:40 +0000 (06:35 +0000)
14 files changed:
gdb/ChangeLog
gdb/NEWS
gdb/TODO
gdb/config/mips/tm-irix5.h
gdb/config/mips/tm-mips.h
gdb/config/mips/tm-mips64.h
gdb/config/mips/tm-tx39.h
gdb/config/mips/tm-tx39l.h
gdb/config/mips/tm-vr4100.h
gdb/config/mips/tm-vr4xxx.h
gdb/config/mips/tm-vr4xxxel.h
gdb/config/mips/tm-vr5000.h
gdb/config/mips/tm-vr5000el.h
gdb/mips-tdep.c

index e5f23c261115cf382657da144a6e98eec027cc37..a4b40468f4c6ac5d47fc6f55cb562485602b9e0d 100644 (file)
@@ -1,12 +1,33 @@
+Thu Jun  8 15:26:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * config/mips/tm-mips.h (GDB_MULTI_ARCH): Define as 1.
+       (CALL_DUMMY, TARGET_BYTE_ORDER_SELECTABLE_P,
+       COERCE_FLOAT_TO_DOUBLE): Delete.
+       * config/mips/tm-vr5000el.h, config/mips/tm-vr5000.h,
+       config/mips/tm-vr4xxxel.h, config/mips/tm-vr4xxx.h,
+       config/mips/tm-vr4100.h, config/mips/tm-tx39l.h
+       config/mips/tm-tx39.h, config/mips/tm-irix5.h: Delete
+       GDB_MULTI_ARCH.
+
+       * config/mips/tm-mips64.h (TARGET_LONG_BIT, TARGET_LONG_LONG_BIT,
+       TARGET_PTR_BIT): Delete definitions.
+       * config/mips/tm-vr5000el.h, config/mips/tm-vr5000.h,
+       config/mips/tm-tx39l.h, config/mips/tm-vr4100.h,
+       config/mips/tm-tx39.h: Delete definition of MIPS_EABI.
+       * mips-tdep.c (mips_gdbarch_init): Use the ISA to determine the
+       ABI.  If all else fails, assume O32.
+
+       * TODO, NEWS: Update.  Mention MIPS is multi-arch.
+
 Thu Jun  8 14:23:12 2000  Andrew Cagney  <cagney@b1.cygnus.com>
 
        * config/mips/tm-vr4xxxel.h, config/mips/tm-vr4xxx.h,
        config/mips/tm-vr4100.h, config/mips/tm-tx39l.h,
        config/mips/tm-tx39.h: Delete definition of
-       MIPS_DEFAULT_FPU. Enable multi-arch.
+       MIPS_DEFAULT_FPU_TYPE. Enable multi-arch.
        * mips-tdep.c: (mips_gdbarch_init): The bfd_mach_mips3900 has no
-       FPU.
-       
+       FPU.  bfd_mach_mips4650 FPU is single precision.
+
        * config/mips/tm-mips.h (MIPS_FPU_SINGLE_REGSIZE): 
        (MIPS_FPU_DOUBLE_REGSIZE): Move from here.
        * mips-tdep.c: To here.  Change to an enum.
index 4f68e81518bb1c275941c28946357b9da88d0e76..2913f565a8ec59b8e8bee9816100b4a7daf318d2 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -8,7 +8,20 @@
 Alpha FreeBSD                                  alpha*-*-freebsd*
 x86 FreeBSD 3.x and 4.x                                i[3456]86*-freebsd[34]*
 
-FreeBSD versions before 2.2 are no longer supported.
+* New targets
+
+* OBSOLETE configurations
+
+x86 FreeBSD before 2.2                         i[3456]86*-freebsd{1,2.[01]}*, 
+
+* Deleted configurations
+
+* Other news:
+
+* All MIPS configurations are multi-arched.
+
+Multi-arch support is enabled for all MIPS configurations.
+
 
 *** Changes in GDB 5.0:
 
index 1b44dd12007f4ba76a3aaba3948620a40fa4570e..7c47440552a3a8de75c048ea9f46e46028e49bf0 100644 (file)
--- a/gdb/TODO
+++ b/gdb/TODO
@@ -328,6 +328,10 @@ http://sourceware.cygnus.com/ml/gdb-patches/2000-06/msg00062.html
 
 See also ``Fix implementation of  ``target xxx''.'' below.
 
+--
+
+IRIX 3.x support is probably broken.
+
 --
 
                        New Features and Fixes
@@ -971,6 +975,12 @@ name.
 
 --
 
+Make MIPS pure multi-arch.
+
+It is only at the multi-arch enabled stage.
+
+--
+
 Truly multi-arch.
 
 Enable the code to recognize --enable-targets=.... like BINUTILS does.
index 19b8dbe5df3c936ff35ba2024004f2a79adb2e55..25bbae5ffdaad9604e71dea1e4a2847a3e0c5c43 100644 (file)
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-/* If we're being built for n32, enable multi-arch. */
-/* FIXME: cagney/2000-04-04: Testing the _MIPS_SIM_NABI32 and
-   _MIPS_SIM in a tm-*.h file is simply wrong!  Those are
-   host-dependant macros (provided by /usr/include) and stop any
-   chance of the target being cross compiled */
-#if 0 && defined (_MIPS_SIM_NABI32) && _MIPS_SIM == _MIPS_SIM_NABI32
-/* FIXME: Don't enable multi-arch for IRIX/n32.  The test
-   ``gdb.base/corefile.exp: up in corefile.exp'' fails.  */
-#define GDB_MULTI_ARCH 1
-#endif
-
 #include "mips/tm-irix3.h"
 
 /* FIXME: cagney/2000-04-04: Testing the _MIPS_SIM_NABI32 and
index ff951138d19e9f4230b81bd9035c467ae3568372..3f007cdfa6f212b439e09ecfdfb1ba152367bb31 100644 (file)
@@ -24,6 +24,8 @@
 #ifndef TM_MIPS_H
 #define TM_MIPS_H 1
 
+#define GDB_MULTI_ARCH 1
+
 struct frame_info;
 struct symbol;
 struct type;
@@ -407,10 +409,6 @@ extern void mips_push_dummy_frame (void);
 #define POP_FRAME              mips_pop_frame()
 extern void mips_pop_frame (void);
 
-#if !GDB_MULTI_ARCH
-#define CALL_DUMMY { 0 }
-#endif
-
 #define CALL_DUMMY_START_OFFSET (0)
 
 #define CALL_DUMMY_BREAKPOINT_OFFSET (0)
@@ -487,22 +485,6 @@ extern struct frame_info *setup_arbitrary_frame (int, CORE_ADDR *);
 
 #define ECOFF_REG_TO_REGNUM(num) ((num) < 32 ? (num) : (num)+FP0_REGNUM-32)
 
-#if !GDB_MULTI_ARCH
-/* If the current gcc for for this target does not produce correct debugging
-   information for float parameters, both prototyped and unprototyped, then
-   define this macro.  This forces gdb to  always assume that floats are
-   passed as doubles and then converted in the callee.
-
-   For the mips chip, it appears that the debug info marks the parameters as
-   floats regardless of whether the function is prototyped, but the actual
-   values are passed as doubles for the non-prototyped case and floats for
-   the prototyped case.  Thus we choose to make the non-prototyped case work
-   for C and break the prototyped case, since the non-prototyped case is
-   probably much more common.  (FIXME). */
-
-#define COERCE_FLOAT_TO_DOUBLE(formal, actual) (current_language -> la_language == language_c)
-#endif
-
 /* Select the default mips disassembler */
 
 #define TM_PRINT_INSN_MACH 0
@@ -579,9 +561,3 @@ extern void mips_set_processor_type_command (char *, int);
 /* MIPS sign extends addresses */
 #define POINTER_TO_ADDRESS(TYPE,BUF) (signed_pointer_to_address (TYPE, BUF))
 #define ADDRESS_TO_POINTER(TYPE,BUF,ADDR) (address_to_signed_pointer (TYPE, BUF, ADDR))
-
-
-/* MIPS is always bi-endian */
-#if !GDB_MULTI_ARCH
-#define TARGET_BYTE_ORDER_SELECTABLE_P 1
-#endif
index 0031695ad089dde3b41bfdae6a47b29ecd331bcb..f13fa7a37b9bd12895a638e03a068accc26ee592 100644 (file)
 #define OP_LDFPR 065           /* ldc1 */
 #define OP_LDGPR 067           /* ld */
 
-#if defined(MIPS_EABI) && (MIPS_EABI != 0)
-/* Define sizes for 64-bit data types, allow specific targets to override
-   these values.  Doing so may violate the strict EABI, but it's necessary
-   for some MIPS III and MIPS IV machines that want 64bit longs, but 32bit
-   pointers.  */
-#ifndef TARGET_LONG_BIT
-#define TARGET_LONG_BIT      64
-#endif
-#ifndef TARGET_LONG_LONG_BIT
-#define TARGET_LONG_LONG_BIT 64
-#endif
-#ifndef TARGET_PTR_BIT
-#define TARGET_PTR_BIT       64
-#endif
-#endif /* MIPS_EABI */
-
 /* Get the basic MIPS definitions.  */
 #include "tm-mips.h"
index c1d9cf70b578a493beeaf1c1191d3ed299af05ca..c4cc851e2759e98a797eb439d9fe94430faa02a2 100644 (file)
@@ -17,9 +17,6 @@
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#define GDB_MULTI_ARCH 1
-#define MIPS_EABI 1
-
 #include "mips/tm-bigmips.h"
 
 #undef  MIPS_REGISTER_NAMES
index 802e41b7af155037c0fdefdcce3045fe5f4520e0..f8f942efa03fd8ff58f2a779a3d64872baa7cbb0 100644 (file)
@@ -17,9 +17,6 @@
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#define GDB_MULTI_ARCH 1
-#define MIPS_EABI 1
-
 #include "mips/tm-mips.h"
 
 #undef  MIPS_REGISTER_NAMES
index faf0a963a07f3194088df11ba83dd61e17d9b573..36d5bceba26c3c04e1906994512280adb13256b3 100644 (file)
@@ -17,7 +17,4 @@
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#define MIPS_EABI 1
-#define TARGET_PTR_BIT 64
-
 #include "mips/tm-bigmips64.h"
index 7d2a78ac531bd483a635ad2b3ae772446df036a6..36d5bceba26c3c04e1906994512280adb13256b3 100644 (file)
@@ -17,6 +17,4 @@
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#define GDB_MULTI_ARCH 1
-
 #include "mips/tm-bigmips64.h"
index 1347af76144d3f21242a2398f57f2462690b9986..51937476f55af6fba6fd87d3d5347d143cb327b5 100644 (file)
@@ -17,6 +17,4 @@
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#define GDB_MULTI_ARCH 1
-
 #include "mips/tm-mips64.h"
index 1bb91ba256056b49dc868e6d9151536deb9622a2..9f1fbba395d4f5d519bbd2674ea3c2ca7e10dc1a 100644 (file)
@@ -17,7 +17,4 @@
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#define GDB_MULTI_ARCH 1
-#define MIPS_EABI 1
-
 #include "mips/tm-bigmips64.h"
index a93e72880e8b351c3d2b72d40b5aec5d6eee6730..e20adaaea951aa2d29c4eef19cb93ef19d2468a9 100644 (file)
@@ -17,7 +17,4 @@
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#define GDB_MULTI_ARCH 1
-#define MIPS_EABI 1
-
 #include "mips/tm-mips64.h"
index 971b04ab794df9444595b32203d462321cff7839..fd776071f27c6c403d4fe1113d1351ad2b96f395 100644 (file)
@@ -1,5 +1,8 @@
 /* Target-dependent code for the MIPS architecture, for GDB, the GNU Debugger.
-   Copyright 1988-1999, Free Software Foundation, Inc.
+
+   Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
+   1997, 1998, 1999, 2000, Free Software Foundation, Inc.
+
    Contributed by Alessandro Forin(af@cs.cmu.edu) at CMU
    and by Per Bothner(bothner@cs.wisc.edu) at U.Wisconsin.
 
@@ -3868,10 +3871,28 @@ mips_gdbarch_init (info, arches)
       mips_abi = MIPS_ABI_UNKNOWN;
       break;
     }
+  /* Try the architecture for any hint of the corect ABI */
+  if (mips_abi == MIPS_ABI_UNKNOWN
+      && info.bfd_arch_info != NULL
+      && info.bfd_arch_info->arch == bfd_arch_mips)
+    {
+      switch (info.bfd_arch_info->mach)
+       {
+       case bfd_mach_mips3900:
+         mips_abi = MIPS_ABI_EABI32;
+         break;
+       case bfd_mach_mips4100:
+       case bfd_mach_mips5000:
+         mips_abi = MIPS_ABI_EABI64;
+         break;
+       }
+    }
 #ifdef MIPS_DEFAULT_ABI
   if (mips_abi == MIPS_ABI_UNKNOWN)
     mips_abi = MIPS_DEFAULT_ABI;
 #endif
+  if (mips_abi == MIPS_ABI_UNKNOWN)
+    mips_abi = MIPS_ABI_O32;
 
   /* try to find a pre-existing architecture */
   for (arches = gdbarch_list_lookup_by_info (arches, &info);
@@ -4043,6 +4064,9 @@ mips_gdbarch_init (info, arches)
       case bfd_mach_mips4111:
        tdep->mips_fpu_type = MIPS_FPU_NONE;
        break;
+      case bfd_mach_mips4650:
+       tdep->mips_fpu_type = MIPS_FPU_SINGLE;
+       break;
       default:
        tdep->mips_fpu_type = MIPS_FPU_DOUBLE;
        break;