diff options
Diffstat (limited to 'gcc/config/mips')
28 files changed, 75 insertions, 67 deletions
diff --git a/gcc/config/mips/abi64.h b/gcc/config/mips/abi64.h index 188939497ce..a3e768cdc2d 100644 --- a/gcc/config/mips/abi64.h +++ b/gcc/config/mips/abi64.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. 64 bit ABI support. - Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. This file is part of GNU CC. @@ -63,10 +63,16 @@ Boston, MA 02111-1307, USA. */ #define MAX_ARGS_IN_REGISTERS (mips_abi == ABI_32 ? 4 : 8) #undef REG_PARM_STACK_SPACE +#if 0 +/* ??? This is necessary in order for the ABI_32 support to work. However, + expr.c (emit_push_insn) has no support for a REG_PARM_STACK_SPACE + definition that returns zero. That would have to be fixed before this + can be enabled. */ #define REG_PARM_STACK_SPACE(FNDECL) \ (mips_abi == ABI_32 \ ? (MAX_ARGS_IN_REGISTERS*UNITS_PER_WORD) - FIRST_PARM_OFFSET (FNDECL) \ : 0) +#endif #define FUNCTION_ARG_PADDING(MODE, TYPE) \ (! BYTES_BIG_ENDIAN \ @@ -178,7 +184,8 @@ extern struct rtx_def *mips_function_value (); } \ } -#define STRICT_ARGUMENT_NAMING (mips_abi != ABI_32) +/* ??? Should disable for mips_abi == ABI32. */ +#define STRICT_ARGUMENT_NAMING /* A C expression that indicates when an argument must be passed by reference. If nonzero for an argument, a copy of that argument is @@ -206,24 +213,8 @@ extern struct rtx_def *mips_function_value (); (mips_abi == ABI_EABI && (NAMED) \ && FUNCTION_ARG_PASS_BY_REFERENCE (CUM, MODE, TYPE, NAMED)) -/* Define LONG_MAX correctly for all users. We need to handle 32 bit EABI, - 64 bit EABI, N32, and N64 as possible defaults. The checks performed here - are the same as the checks in override_options in mips.c that determines - whether MASK_LONG64 will be set. - - This does not handle inappropriate options or ununusal option - combinations. */ - #undef LONG_MAX_SPEC -#if ((MIPS_ABI_DEFAULT == ABI_64) || ((MIPS_ABI_DEFAULT == ABI_EABI) && ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_64BIT))) -#define LONG_MAX_SPEC \ - "%{!mabi=n32:%{!mno-long64:%{!mgp32:-D__LONG_MAX__=9223372036854775807L}}}" -#else -#define LONG_MAX_SPEC \ - "%{mabi=64:-D__LONG_MAX__=9223372036854775807L} \ - %{mlong64:-D__LONG_MAX__=9223372036854775807L} \ - %{mgp64:-D__LONG_MAX__=9223372036854775807L}" -#endif +#define LONG_MAX_SPEC "%{!mno-long64:-D__LONG_MAX__=9223372036854775807LL}" /* ??? Unimplemented stuff follows. */ diff --git a/gcc/config/mips/bsd-4.h b/gcc/config/mips/bsd-4.h index c2aee83df7b..1542ddd3944 100644 --- a/gcc/config/mips/bsd-4.h +++ b/gcc/config/mips/bsd-4.h @@ -44,3 +44,5 @@ Boston, MA 02111-1307, USA. */ /* Override defaults for finding the MIPS tools. */ #define MD_STARTFILE_PREFIX "/bsd43/usr/lib/cmplrs/cc/" #define MD_EXEC_PREFIX "/bsd43/usr/lib/cmplrs/cc/" + +#include "mips/mips.h" diff --git a/gcc/config/mips/bsd-5.h b/gcc/config/mips/bsd-5.h index f97af5e1f80..75a468da32c 100644 --- a/gcc/config/mips/bsd-5.h +++ b/gcc/config/mips/bsd-5.h @@ -1,5 +1,4 @@ -/* Definitions of target machine for GNU compiler. - MIPS RISC-OS, 5.0 BSD version. +/* Definitions of target machine for GNU compiler. MIPS RISC-OS, 5.0 BSD version. Copyright (C) 1991 Free Software Foundation, Inc. This file is part of GNU CC. diff --git a/gcc/config/mips/cross64.h b/gcc/config/mips/cross64.h index 4462e5ecc55..fcbb16f34b3 100644 --- a/gcc/config/mips/cross64.h +++ b/gcc/config/mips/cross64.h @@ -1,6 +1,8 @@ /* Configuration for an Irix 5 host and Irix 6 target using SGI's cross64 package. */ +#include "mips/iris6.h" + #define STANDARD_INCLUDE_DIR "/usr/cross64/usr/include" #undef MD_EXEC_PREFIX #define MD_EXEC_PREFIX "/usr/cross64/usr/bin/" diff --git a/gcc/config/mips/dec-osf1.h b/gcc/config/mips/dec-osf1.h index ee7e787353c..cc0e7e15a0a 100644 --- a/gcc/config/mips/dec-osf1.h +++ b/gcc/config/mips/dec-osf1.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. DECstation (OSF/1) version. - Copyright (C) 1992, 1996, 1998 Free Software Foundation, Inc. + Copyright (C) 1992, 1996 Free Software Foundation, Inc. This file is part of GNU CC. @@ -32,7 +32,6 @@ Boston, MA 02111-1307, USA. */ %{!shared: %{!non_shared: %{!call_shared: -non_shared}}}" #include "mips/ultrix.h" -#include "mips/mips.h" /* Specify size_t and wchar_t types. */ #undef SIZE_TYPE diff --git a/gcc/config/mips/ecoff.h b/gcc/config/mips/ecoff.h index 0eaf15d8593..29bf0380c1f 100644 --- a/gcc/config/mips/ecoff.h +++ b/gcc/config/mips/ecoff.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. MIPS version with GOFAST floating point library. - Copyright (C) 1994, 1998 Free Software Foundation, Inc. + Copyright (C) 1994 Free Software Foundation, Inc. This file is part of GNU CC. @@ -19,12 +19,16 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include "mips/mips.h" + #undef CPP_PREDEFINES #define CPP_PREDEFINES "-Dmips -DMIPSEB -DR3000 -D_mips -D_MIPSEB -D_R3000" /* Use memcpy, et. al., rather than bcopy. */ #define TARGET_MEM_FUNCTIONS +/* US Software GOFAST library support. */ +#include "gofast.h" #define INIT_TARGET_OPTABS INIT_GOFAST_OPTABS /* Don't assume anything about startfiles. The linker script will load the diff --git a/gcc/config/mips/ecoffl.h b/gcc/config/mips/ecoffl.h index 9942152d32d..85663e95465 100644 --- a/gcc/config/mips/ecoffl.h +++ b/gcc/config/mips/ecoffl.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. Little endian MIPS version with GOFAST floating point library. - Copyright (C) 1994, 1998 Free Software Foundation, Inc. + Copyright (C) 1994 Free Software Foundation, Inc. This file is part of GNU CC. @@ -23,8 +23,6 @@ Boston, MA 02111-1307, USA. */ #define TARGET_ENDIAN_DEFAULT 0 -#include "mips/mips.h" -#include "gofast.h" #include "mips/ecoff.h" #undef CPP_PREDEFINES diff --git a/gcc/config/mips/elf.h b/gcc/config/mips/elf.h index 52e80b387a7..51ca470dfa3 100644 --- a/gcc/config/mips/elf.h +++ b/gcc/config/mips/elf.h @@ -29,8 +29,6 @@ Boston, MA 02111-1307, USA. */ #endif /* Mostly like ECOFF. */ -#include "mips/mips.h" -#include "gofast.h" #include "mips/ecoff.h" /* We need to use .esize and .etype instead of .size and .type to diff --git a/gcc/config/mips/elforion.h b/gcc/config/mips/elforion.h index aa1a058b50d..4d90a4be4ad 100644 --- a/gcc/config/mips/elforion.h +++ b/gcc/config/mips/elforion.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. MIPS ORION version with GOFAST floating point library. - Copyright (C) 1994, 1998 Free Software Foundation, Inc. + Copyright (C) 1994 Free Software Foundation, Inc. This file is part of GNU CC. @@ -20,3 +20,5 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define MIPS_CPU_STRING_DEFAULT "orion" + +#include "mips/elf64.h" diff --git a/gcc/config/mips/gnu.h b/gcc/config/mips/gnu.h index bf48bc4dbca..039e05cd820 100644 --- a/gcc/config/mips/gnu.h +++ b/gcc/config/mips/gnu.h @@ -94,9 +94,8 @@ Boston, MA 02111-1307, USA. */ #define MIPS_GNU #undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dmips -Acpu(mips) -Amachine(mips) \ --Dunix -Asystem(unix) -DMACH -Asystem(mach) -D__GNU__ -Asystem(gnu) \ --DMIPSEB -DR3000 -D_MIPSEB -D_R3000 \ +#define CPP_PREDEFINES GNU_CPP_PREDEFINES("mips") \ +"-DMIPSEB -DR3000 -D_MIPSEB -D_R3000 \ -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32" #undef LINK_SPEC diff --git a/gcc/config/mips/iris3.h b/gcc/config/mips/iris3.h index 1f690ffa466..8843d69dc81 100644 --- a/gcc/config/mips/iris3.h +++ b/gcc/config/mips/iris3.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Iris version. - Copyright (C) 1991, 1993, 1995, 1996, 1998 Free Software Foundation, Inc. + Copyright (C) 1991, 1993, 1995, 1996 Free Software Foundation, Inc. This file is part of GNU CC. @@ -70,3 +70,5 @@ Boston, MA 02111-1307, USA. */ /* Plain char is unsigned in the SGI compiler. */ #define DEFAULT_SIGNED_CHAR 0 + +#include "mips/mips.h" diff --git a/gcc/config/mips/iris4.h b/gcc/config/mips/iris4.h index 7ca0459c625..be121a4ee7f 100644 --- a/gcc/config/mips/iris4.h +++ b/gcc/config/mips/iris4.h @@ -22,6 +22,8 @@ Boston, MA 02111-1307, USA. */ our own exit function. */ #define HAVE_ATEXIT +#include "mips/iris3.h" + /* Profiling is supported via libprof1.a not -lc_p as in Irix 3. */ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ diff --git a/gcc/config/mips/iris4loser.h b/gcc/config/mips/iris4loser.h index 426c822b68a..971bb53be20 100644 --- a/gcc/config/mips/iris4loser.h +++ b/gcc/config/mips/iris4loser.h @@ -3,3 +3,5 @@ #define SUBTARGET_MIPS_AS_ASM_SPEC "-O0 %{v}" #define SUBTARGET_ASM_OPTIMIZING_SPEC "" + +#include "mips/iris4.h" diff --git a/gcc/config/mips/iris5.h b/gcc/config/mips/iris5.h index f81fe1c0fda..54cedc4fcd3 100644 --- a/gcc/config/mips/iris5.h +++ b/gcc/config/mips/iris5.h @@ -23,8 +23,6 @@ Boston, MA 02111-1307, USA. */ #endif #define ABICALLS_ASM_OP ".option pic2" -#include "mips/iris3.h" -#include "mips/mips.h" #include "mips/iris4.h" /* Irix 5 doesn't use COFF, so disable special COFF handling in collect2.c. */ diff --git a/gcc/config/mips/iris5gas.h b/gcc/config/mips/iris5gas.h index f1c2c483f88..adc90e83223 100644 --- a/gcc/config/mips/iris5gas.h +++ b/gcc/config/mips/iris5gas.h @@ -1,5 +1,7 @@ /* Definitions of target machine for GNU compiler. Irix version 5 with gas. */ +#include "mips/iris5.h" + /* Enable debugging. */ #define DBX_DEBUGGING_INFO #define SDB_DEBUGGING_INFO diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index d9e39242e79..79b022b0d68 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -195,9 +195,9 @@ enum processor_type mips_cpu; int mips_isa; #ifdef MIPS_ABI_DEFAULT -/* Which ABI to use. This is defined to a constant in mips.h if the target +/* which ABI to use. This is defined to a constant in mips.h if the target doesn't support multiple ABIs. */ -int mips_abi; +enum mips_abi_type mips_abi; #endif /* Strings to hold which cpu and instruction set architecture to use. */ diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 68c3051cce1..557fb09878c 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. MIPS version. - Copyright (C) 1989, 90-97, 1998 Free Software Foundation, Inc. + Copyright (C) 1989, 90-6, 1997 Free Software Foundation, Inc. Contributed by A. Lichnewsky (lich@inria.inria.fr). Changed by Michael Meissner (meissner@osf.org). 64 bit r4000 support by Ian Lance Taylor (ian@cygnus.com) and @@ -75,20 +75,21 @@ enum processor_type { /* Recast the cpu class to be the cpu attribute. */ #define mips_cpu_attr ((enum attr_cpu)mips_cpu) -/* Which ABI to use. These are constants because abi64.h must check their - value at preprocessing time. */ +/* Which ABI to use. This is only used by the Irix 6 port currently. */ -#define ABI_32 0 -#define ABI_N32 1 -#define ABI_64 2 -#define ABI_EABI 3 +enum mips_abi_type { + ABI_32, + ABI_N32, + ABI_64, + ABI_EABI +}; #ifndef MIPS_ABI_DEFAULT /* We define this away so that there is no extra runtime cost if the target doesn't support multiple ABIs. */ #define mips_abi ABI_32 #else -extern int mips_abi; +extern enum mips_abi_type mips_abi; #endif /* Whether to emit abicalls code sequences or not. */ diff --git a/gcc/config/mips/news4.h b/gcc/config/mips/news4.h index 502affa67c7..9f816c19258 100644 --- a/gcc/config/mips/news4.h +++ b/gcc/config/mips/news4.h @@ -37,3 +37,4 @@ Boston, MA 02111-1307, USA. */ program and data caches. */ #define CACHE_FLUSH_FUNC "cacheflush" +#include "mips/mips.h" diff --git a/gcc/config/mips/news5.h b/gcc/config/mips/news5.h index a776064d193..53abce0e525 100644 --- a/gcc/config/mips/news5.h +++ b/gcc/config/mips/news5.h @@ -1,5 +1,4 @@ -/* Definitions of target machine for GNU compiler. - Sony RISC NEWS (mips) System V version. +/* Definitions of target machine for GNU compiler. Sony RISC NEWS (mips) System V version. Copyright (C) 1992 Free Software Foundation, Inc. This file is part of GNU CC. @@ -60,3 +59,4 @@ Boston, MA 02111-1307, USA. */ #endif /* !_SC_PAGE_SIZE */ #endif /* L_trampoline */ +#include "mips/mips.h" diff --git a/gcc/config/mips/osfrose.h b/gcc/config/mips/osfrose.h index ee76053d9c4..f6901e85bcb 100644 --- a/gcc/config/mips/osfrose.h +++ b/gcc/config/mips/osfrose.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. DECstation (OSF/1 reference port with OSF/rose) version. - Copyright (C) 1991, 1992, 1995, 1996, 1998 Free Software Foundation, Inc. + Copyright (C) 1991, 1992, 1995, 1996 Free Software Foundation, Inc. This file is part of GNU CC. @@ -147,3 +147,5 @@ Boston, MA 02111-1307, USA. */ if (strcmp (lang_identify (), "c") != 0) \ output_lang_identify (STREAM); \ } + +#include "mips/mips.h" diff --git a/gcc/config/mips/rtems64.h b/gcc/config/mips/rtems64.h index bf374bac41e..6433ed56498 100644 --- a/gcc/config/mips/rtems64.h +++ b/gcc/config/mips/rtems64.h @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a MIPS ORION using ecoff. - Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GNU CC. @@ -19,6 +19,8 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include "mips/elforion.h" + /* Specify predefined symbols in preprocessor. */ #undef CPP_PREDEFINES diff --git a/gcc/config/mips/sni-gas.h b/gcc/config/mips/sni-gas.h index 5b3699820f3..752866536b8 100644 --- a/gcc/config/mips/sni-gas.h +++ b/gcc/config/mips/sni-gas.h @@ -1,3 +1,5 @@ +#include "mips/sni-svr4.h" + /* Enable debugging. */ #define DBX_DEBUGGING_INFO #define SDB_DEBUGGING_INFO @@ -36,3 +38,6 @@ do { \ assemble_name (FILE, LABEL2); \ fprintf (FILE, "\n"); \ } while (0) + + + diff --git a/gcc/config/mips/svr3-4.h b/gcc/config/mips/svr3-4.h index 18303ac24ec..73402b26662 100644 --- a/gcc/config/mips/svr3-4.h +++ b/gcc/config/mips/svr3-4.h @@ -1,5 +1,4 @@ -/* Definitions of target machine for GNU compiler. - MIPS RISC-OS System V version. +/* Definitions of target machine for GNU compiler. MIPS RISC-OS System V version. Copyright (C) 1991 Free Software Foundation, Inc. This file is part of GNU CC. @@ -61,3 +60,5 @@ Boston, MA 02111-1307, USA. */ /* Generate calls to memcpy, etc., not bcopy, etc. */ #define TARGET_MEM_FUNCTIONS + +#include "mips/mips.h" diff --git a/gcc/config/mips/svr3-5.h b/gcc/config/mips/svr3-5.h index 495b389989a..85bc0fc7fa7 100644 --- a/gcc/config/mips/svr3-5.h +++ b/gcc/config/mips/svr3-5.h @@ -1,6 +1,5 @@ -/* Definitions of target machine for GNU compiler. - MIPS RISC-OS 5.0 System V version. - Copyright (C) 1991, 1998 Free Software Foundation, Inc. +/* Definitions of target machine for GNU compiler. MIPS RISC-OS 5.0 System V version. + Copyright (C) 1991 Free Software Foundation, Inc. This file is part of GNU CC. diff --git a/gcc/config/mips/svr4-4.h b/gcc/config/mips/svr4-4.h index d1ba64de029..62b15910600 100644 --- a/gcc/config/mips/svr4-4.h +++ b/gcc/config/mips/svr4-4.h @@ -1,6 +1,5 @@ -/* Definitions of target machine for GNU compiler. - MIPS RISC-OS System V.4 version. - Copyright (C) 1992, 1998 Free Software Foundation, Inc. +/* Definitions of target machine for GNU compiler. MIPS RISC-OS System V.4 version. + Copyright (C) 1992 Free Software Foundation, Inc. This file is part of GNU CC. @@ -59,3 +58,5 @@ Boston, MA 02111-1307, USA. */ /* Generate calls to memcpy, etc., not bcopy, etc. */ #define TARGET_MEM_FUNCTIONS + +#include "mips/mips.h" diff --git a/gcc/config/mips/svr4-5.h b/gcc/config/mips/svr4-5.h index 799e1cdf1e7..ad51f135da0 100644 --- a/gcc/config/mips/svr4-5.h +++ b/gcc/config/mips/svr4-5.h @@ -1,5 +1,4 @@ -/* Definitions of target machine for GNU compiler. - MIPS RISC-OS 5.0 System V.4 version. +/* Definitions of target machine for GNU compiler. MIPS RISC-OS 5.0 System V.4 version. Copyright (C) 1992 Free Software Foundation, Inc. This file is part of GNU CC. diff --git a/gcc/config/mips/svr4-t.h b/gcc/config/mips/svr4-t.h index b457aa5f07d..086519485a8 100644 --- a/gcc/config/mips/svr4-t.h +++ b/gcc/config/mips/svr4-t.h @@ -1,4 +1,5 @@ /* Definitions of target machine for GNU compiler. Tandem S2 w/ NonStop UX. */ +#include "mips/svr4-5.h" /* Use the default value for this. */ #undef STANDARD_INCLUDE_DIR diff --git a/gcc/config/mips/ultrix.h b/gcc/config/mips/ultrix.h index d6da6a841a9..7fb101a9151 100644 --- a/gcc/config/mips/ultrix.h +++ b/gcc/config/mips/ultrix.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler; DECstation (Ultrix) version. - Copyright (C) 1991, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1991, 1997 Free Software Foundation, Inc. This file is part of GNU CC. @@ -31,12 +31,6 @@ Boston, MA 02111-1307, USA. */ #define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} -lc" #endif -#define SUBTARGET_CPP_SPEC "\ -%{.cc: -D__LANGUAGE_C -D_LANGUAGE_C} \ -%{.cxx: -D__LANGUAGE_C -D_LANGUAGE_C} \ -%{.C: -D__LANGUAGE_C -D_LANGUAGE_C} \ -" - #ifndef STARTFILE_SPEC #define STARTFILE_SPEC "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}" #endif @@ -59,3 +53,5 @@ Boston, MA 02111-1307, USA. */ /* INITIALIZE_TRAMPOLINE calls this library function to flush program and data caches. */ #define CACHE_FLUSH_FUNC "cacheflush" + +#include "mips/mips.h" |