diff options
Diffstat (limited to 'gcc/config/mips')
-rw-r--r-- | gcc/config/mips/abi64.h | 11 | ||||
-rw-r--r-- | gcc/config/mips/ecoff.h | 2 | ||||
-rw-r--r-- | gcc/config/mips/elf.h | 2 | ||||
-rw-r--r-- | gcc/config/mips/iris5.h | 4 | ||||
-rw-r--r-- | gcc/config/mips/iris5gas.h | 2 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 5 | ||||
-rw-r--r-- | gcc/config/mips/mips.md | 5 | ||||
-rw-r--r-- | gcc/config/mips/rtems64.h | 4 |
8 files changed, 15 insertions, 20 deletions
diff --git a/gcc/config/mips/abi64.h b/gcc/config/mips/abi64.h index 4f6fccfafb9..188939497ce 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 Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc. This file is part of GNU CC. @@ -63,16 +63,10 @@ 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 \ @@ -184,8 +178,7 @@ extern struct rtx_def *mips_function_value (); } \ } -/* ??? Should disable for mips_abi == ABI32. */ -#define STRICT_ARGUMENT_NAMING +#define STRICT_ARGUMENT_NAMING (mips_abi != ABI_32) /* A C expression that indicates when an argument must be passed by reference. If nonzero for an argument, a copy of that argument is diff --git a/gcc/config/mips/ecoff.h b/gcc/config/mips/ecoff.h index 813f148009e..8da0ae6351e 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, 1997 Free Software Foundation, Inc. + Copyright (C) 1994, 1998 Free Software Foundation, Inc. This file is part of GNU CC. diff --git a/gcc/config/mips/elf.h b/gcc/config/mips/elf.h index 334484169ae..334bd5b8363 100644 --- a/gcc/config/mips/elf.h +++ b/gcc/config/mips/elf.h @@ -29,6 +29,8 @@ 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/iris5.h b/gcc/config/mips/iris5.h index af6868d90ec..f81fe1c0fda 100644 --- a/gcc/config/mips/iris5.h +++ b/gcc/config/mips/iris5.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Iris version 5. - Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1993, 1995, 1996, 1998 Free Software Foundation, Inc. This file is part of GNU CC. @@ -23,6 +23,8 @@ 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 adc90e83223..f1c2c483f88 100644 --- a/gcc/config/mips/iris5gas.h +++ b/gcc/config/mips/iris5gas.h @@ -1,7 +1,5 @@ /* 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 82b0ce5316c..e2f03f92c96 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -5036,7 +5036,7 @@ mips_output_external (file, decl, name) #ifdef ASM_OUTPUT_UNDEF_FUNCTION if (TREE_CODE (decl) == FUNCTION_DECL /* ??? Don't include alloca, since gcc will always expand it - inline. If we don't do this, libg++ fails to build. */ + inline. If we don't do this, the C++ library fails to build. */ && strcmp (name, "alloca") /* ??? Don't include __builtin_next_arg, because then gcc will not bootstrap under Irix 5.1. */ @@ -6616,7 +6616,8 @@ mips_expand_prologue () } if (TARGET_ABICALLS && mips_abi != ABI_32) - emit_insn (gen_loadgp (XEXP (DECL_RTL (current_function_decl), 0))); + emit_insn (gen_loadgp (XEXP (DECL_RTL (current_function_decl), 0), + gen_rtx (REG, DImode, 25))); } /* If we are profiling, make sure no instructions are scheduled before diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 114ad10bd37..e6a750f812e 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -5639,10 +5639,11 @@ move\\t%0,%z4\\n\\ (define_insn "loadgp" [(set (reg:DI 28) - (unspec_volatile:DI [(match_operand:DI 0 "address_operand" "")] 2)) + (unspec_volatile:DI [(match_operand:DI 0 "address_operand" "") + (match_operand:DI 1 "register_operand" "")] 2)) (clobber (reg:DI 1))] "" - "%[lui\\t$1,%%hi(%%neg(%%gp_rel(%a0)))\\n\\taddiu\\t$1,$1,%%lo(%%neg(%%gp_rel(%a0)))\\n\\tdaddu\\t$gp,$1,$25%]" + "%[lui\\t$1,%%hi(%%neg(%%gp_rel(%a0)))\\n\\taddiu\\t$1,$1,%%lo(%%neg(%%gp_rel(%a0)))\\n\\tdaddu\\t$gp,$1,%1%]" [(set_attr "type" "move") (set_attr "mode" "DI") (set_attr "length" "3")]) diff --git a/gcc/config/mips/rtems64.h b/gcc/config/mips/rtems64.h index a321d0df576..42c7a65cb40 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 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GNU CC. @@ -19,8 +19,6 @@ 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 |