OSDN Git Service

Initial revision
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Nov 1994 00:38:19 +0000 (00:38 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Nov 1994 00:38:19 +0000 (00:38 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8499 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/mips/elf.h [new file with mode: 0644]
gcc/config/mips/elf64.h [new file with mode: 0644]
gcc/config/mips/elfl.h [new file with mode: 0644]
gcc/config/mips/elfl64.h [new file with mode: 0644]
gcc/config/mips/elforion.h [new file with mode: 0644]
gcc/config/mips/t-ecoff [new file with mode: 0644]

diff --git a/gcc/config/mips/elf.h b/gcc/config/mips/elf.h
new file mode 100644 (file)
index 0000000..d347c55
--- /dev/null
@@ -0,0 +1,45 @@
+/* Definitions of target machine for GNU compiler.  MIPS R3000 version with
+   GOFAST floating point library.
+   Copyright (C) 1994 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+/* Use ELF.  */
+#define OBJECT_FORMAT_ELF
+
+/* Until we figure out what MIPS ELF targets normally use, just do
+   stabs in ELF.  */
+#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
+
+/* Mostly like ECOFF.  */
+#include "mips/ecoff.h"
+
+/* We need to use .esize and .etype instead of .size and .type to
+   avoid conflicting with ELF directives.  */
+#undef PUT_SDB_SIZE
+#define PUT_SDB_SIZE(a)                                        \
+do {                                                   \
+  extern FILE *asm_out_text_file;                      \
+  fprintf (asm_out_text_file, "\t.esize\t%d;", (a));   \
+} while (0)
+
+#undef PUT_SDB_TYPE
+#define PUT_SDB_TYPE(a)                                        \
+do {                                                   \
+  extern FILE *asm_out_text_file;                      \
+  fprintf (asm_out_text_file, "\t.etype\t0x%x;", (a)); \
+} while (0)
diff --git a/gcc/config/mips/elf64.h b/gcc/config/mips/elf64.h
new file mode 100644 (file)
index 0000000..4540d83
--- /dev/null
@@ -0,0 +1,73 @@
+/* Definitions of target machine for GNU compiler.  MIPS R4000 version with
+   GOFAST floating point library.
+   Copyright (C) 1994 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#define OBJECT_FORMAT_ELF
+
+/* Default to -mips3.  */
+#define TARGET_DEFAULT MASK_FLOAT64|MASK_64BIT
+#define MIPS_ISA_DEFAULT 3
+
+/* Until we figure out what MIPS ELF targets normally use, just do
+   stabs in ELF.  */
+#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
+
+#include "mips/mips.h"
+
+#undef CPP_PREDEFINES
+#define CPP_PREDEFINES "-Dmips -DMIPSEB -DR4000 -D_mips -D_MIPSEB -D_R4000"
+
+/* This is the same as the one in mips64.h except that it defines __mips=3
+   at the end.  I would rather put this in CPP_PREDEFINES, but the gcc
+   driver doesn't handle -U options in CPP_PREDEFINES.  */
+#undef CPP_SPEC
+#define CPP_SPEC "\
+%{.cc: -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} \
+%{.cxx:        -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} \
+%{.C:  -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} \
+%{.m:  -D__LANGUAGE_OBJECTIVE_C -D_LANGUAGE_OBJECTIVE_C} \
+%{.S:  -D__LANGUAGE_ASSEMBLY -D_LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
+%{.s:  -D__LANGUAGE_ASSEMBLY -D_LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
+%{!.S:%{!.s:   -D__LANGUAGE_C -D_LANGUAGE_C %{!ansi:-DLANGUAGE_C}}} \
+%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
+%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
+%{!mips1:%{!mips2:-U__mips -D__mips=3}}"
+
+/* 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
+
+/* We need to use .esize and .etype instead of .size and .type to
+   avoid conflicting with ELF directives.  */
+#undef PUT_SDB_SIZE
+#define PUT_SDB_SIZE(a)                                        \
+do {                                                   \
+  extern FILE *asm_out_text_file;                      \
+  fprintf (asm_out_text_file, "\t.esize\t%d;", (a));   \
+} while (0)
+
+#undef PUT_SDB_TYPE
+#define PUT_SDB_TYPE(a)                                        \
+do {                                                   \
+  extern FILE *asm_out_text_file;                      \
+  fprintf (asm_out_text_file, "\t.etype\t0x%x;", (a)); \
+} while (0)
diff --git a/gcc/config/mips/elfl.h b/gcc/config/mips/elfl.h
new file mode 100644 (file)
index 0000000..5bed89b
--- /dev/null
@@ -0,0 +1,28 @@
+/* Definitions of target machine for GNU compiler.  Little endian MIPS
+   R3000 version with GOFAST floating point library.
+   Copyright (C) 1994 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+/* This is a little endian version of ecoff.h.  */
+
+#define TARGET_ENDIAN_DEFAULT 0
+
+#include "mips/elf.h"
+
+#undef CPP_PREDEFINES
+#define CPP_PREDEFINES "-Dmips -DMIPSEL -DR3000 -D_mips -D_MIPSEL -D_R3000"
diff --git a/gcc/config/mips/elfl64.h b/gcc/config/mips/elfl64.h
new file mode 100644 (file)
index 0000000..dadcc6c
--- /dev/null
@@ -0,0 +1,28 @@
+/* Definitions of target machine for GNU compiler.  Little endian MIPS
+   R4000 version with GOFAST floating point library.
+   Copyright (C) 1994 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+/* This is a little endian version of ecoff.h.  */
+
+#define TARGET_ENDIAN_DEFAULT 0
+
+#include "mips/elf64.h"
+
+#undef CPP_PREDEFINES
+#define CPP_PREDEFINES "-Dmips -DMIPSEL -DR4000 -D_mips -D_MIPSEL -D_R4000"
diff --git a/gcc/config/mips/elforion.h b/gcc/config/mips/elforion.h
new file mode 100644 (file)
index 0000000..b6a2aab
--- /dev/null
@@ -0,0 +1,24 @@
+/* Definitions of target machine for GNU compiler.  MIPS ORION version with
+   GOFAST floating point library.
+   Copyright (C) 1994 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#define MIPS_CPU_DEFAULT PROCESSOR_R4600
+#define MIPS_CPU_STRING_DEFAULT "orion"
+
+#include "mips/elf64.h"
diff --git a/gcc/config/mips/t-ecoff b/gcc/config/mips/t-ecoff
new file mode 100644 (file)
index 0000000..83acdd1
--- /dev/null
@@ -0,0 +1,75 @@
+CONFIG2_H      = $(srcdir)/config/mips/ecoff.h
+
+# We have a premade insn-attrtab.c to save the hour it takes to run genattrtab.
+# PREMADE_ATTRTAB = $(srcdir)/config/mips/mips-at.c
+# PREMADE_ATTRTAB_MD = $(srcdir)/config/mips/mips-at.md
+
+# Suppress building libgcc1.a, since the MIPS compiler port is complete
+# and does not need anything from libgcc1.a.
+LIBGCC1 = libgcc1.null
+CROSS_LIBGCC1 = libgcc1.null
+
+# We must build libgcc2.a with -G 0, in case the user wants to link
+# without the $gp register.
+LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) -g1 -G 0
+
+# These are really part of libgcc1, but this will cause them to be
+# built correctly, so... [taken from t-sparclite]
+LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c
+
+dp-bit.c: $(srcdir)/config/fp-bit.c
+       echo '#ifdef __MIPSEL__' > fp-bit.c
+       echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
+       echo '#endif' >> fp-bit.c
+       echo '#define US_SOFTWARE_GOFAST' >> dp-bit.c
+       cat $(srcdir)/config/fp-bit.c >> dp-bit.c
+
+fp-bit.c: $(srcdir)/config/fp-bit.c
+       echo '#define FLOAT' > fp-bit.c
+       echo '#ifdef __MIPSEL__' >> fp-bit.c
+       echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
+       echo '#endif' >> fp-bit.c
+       echo '#define US_SOFTWARE_GOFAST' >> fp-bit.c
+       cat $(srcdir)/config/fp-bit.c >> fp-bit.c
+
+# Build the libraries for both hard and soft floating point
+
+MULTILIB_OPTIONS=msoft-float EL/EB
+MULTILIB_DIRNAMES=soft-float el eb
+MULTILIB_MATCHES=
+
+LIBGCC = stmp-multilib
+INSTALL_LIBGCC = install-multilib
+
+# Add additional dependencies to recompile selected modules whenever the
+# tm.h file changes.  The files compiled are:
+#
+#      gcc.c           (*_SPEC changes)
+#      toplev.c        (new switches + assembly output changes)
+#      sdbout.c        (debug format changes)
+#      dbxout.c        (debug format changes)
+#      dwarfout.c      (debug format changes)
+#      final.c         (assembly output changes)
+#      varasm.c        (assembly output changes)
+#      cse.c           (cost functions)
+#      insn-output.c   (possible ifdef changes in tm.h)
+#      regclass.c      (fixed/call used register changes)
+#      cccp.c          (new preprocessor macros, -v version #)
+#      explow.c        (GO_IF_LEGITIMATE_ADDRESS)
+#      recog.c         (GO_IF_LEGITIMATE_ADDRESS)
+#      reload.c        (GO_IF_LEGITIMATE_ADDRESS)
+
+gcc.o: $(CONFIG2_H)
+toplev.o: $(CONFIG2_H)
+sdbout.o: $(CONFIG2_H)
+dbxout.o: $(CONFIG2_H)
+dwarfout.o: $(CONFIG2_H)
+final.o: $(CONFIG2_H)
+varasm.o: $(CONFIG2_H)
+cse.o: $(CONFIG2_H)
+insn-output.o: $(CONFIG2_H)
+regclass.o: $(CONFIG2_H)
+cccp.o: $(CONFIG2_H)
+explow.o: $(CONFIG2_H)
+recog.o: $(CONFIG2_H)
+reload.o: $(CONFIG2_H)