summaryrefslogtreecommitdiff
path: root/gcc/config/mips
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/mips')
-rw-r--r--gcc/config/mips/abi64.h11
-rw-r--r--gcc/config/mips/ecoff.h2
-rw-r--r--gcc/config/mips/elf.h2
-rw-r--r--gcc/config/mips/iris5.h4
-rw-r--r--gcc/config/mips/iris5gas.h2
-rw-r--r--gcc/config/mips/mips.c5
-rw-r--r--gcc/config/mips/mips.md5
-rw-r--r--gcc/config/mips/rtems64.h4
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