MIPS is always multi-arch enabled.

This commit is contained in:
Andrew Cagney 2000-06-08 06:35:40 +00:00
parent b0069a1775
commit bf64bfd6ba
14 changed files with 75 additions and 77 deletions

View 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.

View File

@ -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:

View File

@ -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.

View File

@ -18,17 +18,6 @@
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

View 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

View File

@ -35,21 +35,5 @@
#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"

View 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

View 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

View 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"

View 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"

View 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"

View 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"

View 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"

View 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;