OSDN Git Service

* config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 7 May 2002 14:42:29 +0000 (14:42 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 7 May 2002 14:42:29 +0000 (14:42 +0000)
(LINK_START_SPEC): Handle it.
(LINK_OS_SPEC): Likewise.
(CPP_SPEC): Likewise.
(STARTFILE_SPEC): Likewise.
(LIB_SPEC): Likewise.
(ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
all platforms.
(CRTSAVRES_DEFAULT_SPEC): New macro.
(LIB_WINDISS_SPEC): New macro.
(CPP_OS_WINDISS_SPEC): Likewise.
(STARTFILE_WINDISS_SPEC): Likewise.
(ENDFILE_WINDISS_SPEC): Likewise.
(LINK_START_WINDISS_SPEC): Likewise.
(LINK_OS_WINDISS_SPEC): Likewise.
* config/rs6000/windiss.h: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53257 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/sysv4.h
gcc/config/rs6000/windiss.h [new file with mode: 0644]

index 791a6b1..2671b48 100644 (file)
@@ -1,3 +1,22 @@
+2002-05-07  Mark Mitchell  <mark@codesourcery.com>
+
+       * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
+       (LINK_START_SPEC): Handle it.
+       (LINK_OS_SPEC): Likewise.
+       (CPP_SPEC): Likewise.
+       (STARTFILE_SPEC): Likewise.
+       (LIB_SPEC): Likewise.
+       (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
+       all platforms.
+       (CRTSAVRES_DEFAULT_SPEC): New macro.
+       (LIB_WINDISS_SPEC): New macro.
+       (CPP_OS_WINDISS_SPEC): Likewise.
+       (STARTFILE_WINDISS_SPEC): Likewise.
+       (ENDFILE_WINDISS_SPEC): Likewise.
+       (LINK_START_WINDISS_SPEC): Likewise.
+       (LINK_OS_WINDISS_SPEC): Likewise.
+       * config/rs6000/windiss.h: New file.
+       
 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
 
         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
index 95c7e8b..cf0c668 100644 (file)
@@ -152,6 +152,7 @@ extern int g_switch_set;            /* Whether -G xx was passed.  */
   { "emb",              0,                                             \
     N_("Set the PPC_EMB bit in the ELF flags header") },               \
   { "vxworks",          0, N_("no description yet") },                 \
+  { "windiss",           0, N_("Use the WindISS simulator") },          \
   { "shlib",            0, N_("no description yet") },                 \
   EXTRA_SUBTARGET_SWITCHES                                             \
   { "newlib",           0, N_("no description yet") },
@@ -943,12 +944,14 @@ do {                                              \
 %{myellowknife: %(link_start_yellowknife) } \
 %{mmvme: %(link_start_mvme) } \
 %{msim: %(link_start_sim) } \
+%{mwindiss: %(link_start_windiss) } \
 %{mcall-freebsd: %(link_start_freebsd) } \
 %{mcall-linux: %(link_start_linux) } \
 %{mcall-gnu: %(link_start_gnu) } \
 %{mcall-netbsd: %(link_start_netbsd) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-gnu: \
-       %{!mcall-netbsd: %{!mcall-freebsd: %(link_start_default) }}}}}}}}"
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mwindiss: \
+         %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd:   \
+         %{!mcall-freebsd: %(link_start_default) }}}}}}}}}"
 
 #define LINK_START_DEFAULT_SPEC ""
 
@@ -1000,11 +1003,14 @@ do {                                            \
 %{myellowknife: %(link_os_yellowknife) } \
 %{mmvme: %(link_os_mvme) } \
 %{msim: %(link_os_sim) } \
+%{mwindiss: %(link_os_windiss) } \
 %{mcall-freebsd: %(link_os_freebsd) } \
 %{mcall-linux: %(link_os_linux) } \
 %{mcall-gnu: %(link_os_gnu) } \
 %{mcall-netbsd: %(link_os_netbsd) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd: %(link_os_default) }}}}}}}}"
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mwindiss: \
+         %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: \
+         %{!mcall-netbsd: %(link_os_default) }}}}}}}}}"
 
 #define LINK_OS_DEFAULT_SPEC ""
 
@@ -1064,11 +1070,14 @@ do {                                            \
 %{myellowknife: %(cpp_os_yellowknife) } \
 %{mmvme: %(cpp_os_mvme) } \
 %{msim: %(cpp_os_sim) } \
+%{mwindiss: %(cpp_os_windiss) } \
 %{mcall-freebsd: %(cpp_os_freebsd) } \
 %{mcall-linux: %(cpp_os_linux) } \
 %{mcall-gnu: %(cpp_os_gnu) } \
 %{mcall-netbsd: %(cpp_os_netbsd) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd: %(cpp_os_default) }}}}}}}}"
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mwindiss: \
+         %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: \
+         %{!mcall-netbsd: %(cpp_os_default) }}}}}}}}}"
 
 #define        CPP_OS_DEFAULT_SPEC ""
 
@@ -1079,11 +1088,14 @@ do {                                            \
 %{myellowknife: %(startfile_yellowknife) } \
 %{mmvme: %(startfile_mvme) } \
 %{msim: %(startfile_sim) } \
+%{mwindiss: %(startfile_windiss) } \
 %{mcall-freebsd: %(startfile_freebsd) } \
 %{mcall-linux: %(startfile_linux) } \
 %{mcall-gnu: %(startfile_gnu) } \
 %{mcall-netbsd: %(startfile_netbsd) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd: %(startfile_default) }}}}}}}}"
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mwindiss: \
+         %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: \
+         %{!mcall-netbsd: %(startfile_default) }}}}}}}}}"
 
 #define        STARTFILE_DEFAULT_SPEC ""
 
@@ -1094,27 +1106,36 @@ do {                                            \
 %{myellowknife: %(lib_yellowknife) } \
 %{mmvme: %(lib_mvme) } \
 %{msim: %(lib_sim) } \
+%{mwindiss: %(lib_windiss) } \
 %{mcall-freebsd: %(lib_freebsd) } \
 %{mcall-linux: %(lib_linux) } \
 %{mcall-gnu: %(lib_gnu) } \
 %{mcall-netbsd: %(lib_netbsd) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd: %(lib_default) }}}}}}}}"
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mwindiss: \
+         %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: \
+         %{!mcall-netbsd: %(lib_default) }}}}}}}}}"
 
 #define LIB_DEFAULT_SPEC ""
 
 /* Override svr4.h definition.  */
 #undef ENDFILE_SPEC
-#define        ENDFILE_SPEC "crtsavres.o%s \
-%{mads: %(endfile_ads)} \
-%{myellowknife: %(endfile_yellowknife)} \
-%{mmvme: %(endfile_mvme)} \
-%{msim: %(endfile_sim)} \
-%{mcall-freebsd: %(endfile_freebsd) } \
-%{mcall-linux: %(endfile_linux) } \
-%{mcall-gnu: %(endfile_gnu) } \
-%{mcall-netbsd: %(endfile_netbsd) } \
-%{mvxworks: %(endfile_vxworks) } \
-%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: %{!mcall-netbsd: %{!mvxworks: %(endfile_default) }}}}}}}}}"
+#define        ENDFILE_SPEC "\
+%{mads: crtsavres.o%s %(endfile_ads)} \
+%{myellowknife: crtsavres.o%s %(endfile_yellowknife)} \
+%{mmvme: crtsavres.o%s %(endfile_mvme)} \
+%{msim: crtsavres.o%s %(endfile_sim)} \
+%{mwindiss: %(endfile_windiss)} \
+%{mcall-freebsd: crtsavres.o%s %(endfile_freebsd) } \
+%{mcall-linux: crtsavres.o%s %(endfile_linux) } \
+%{mcall-gnu: crtsavres.o%s %(endfile_gnu) } \
+%{mcall-netbsd: crtsavres.o%s %(endfile_netbsd) } \
+%{mvxworks: crtsavres.o%s %(endfile_vxworks) } \
+%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mwindiss: \
+         %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: \
+         %{!mcall-netbsd: %{!mvxworks: %(crtsavres_default) \
+                                       %(endfile_default) }}}}}}}}}}"
+
+#define CRTSAVRES_DEFAULT_SPEC "crtsavres.o%s"
 
 #define        ENDFILE_DEFAULT_SPEC ""
 
@@ -1326,6 +1347,25 @@ ncrtn.o%s"
 %{mcpu=823: -DCPU=PPC603} \
 %{mcpu=860: -DCPU=PPC603}"
 
+/* WindISS support.  */
+
+#define LIB_WINDISS_SPEC "--start-group -li -lcfp -lwindiss -lram -limpl -limpfp --end-group"
+
+#define CPP_OS_WINDISS_SPEC "\
+-D__rtasim \
+-D__EABI__ \
+-D__ppc \
+%{!msoft-float: -D__hardfp} \
+"
+
+#define STARTFILE_WINDISS_SPEC "crt0.o%s crtbegin.o%s"
+
+#define ENDFILE_WINDISS_SPEC "crtend.o%s"
+
+#define LINK_START_WINDISS_SPEC ""
+
+#define LINK_OS_WINDISS_SPEC ""
+
 /* Define any extra SPECS that the compiler needs to generate.  */
 /* Override rs6000.h definition.  */
 #undef SUBTARGET_EXTRA_SPECS
@@ -1334,6 +1374,7 @@ ncrtn.o%s"
   { "cpp_sysv_default",                CPP_SYSV_DEFAULT_SPEC },                \
   { "cpp_endian_default",      CPP_ENDIAN_DEFAULT_SPEC },              \
   { "cpp_endian",              CPP_ENDIAN_SPEC },                      \
+  { "crtsavres_default",        CRTSAVRES_DEFAULT_SPEC },              \
   { "lib_ads",                 LIB_ADS_SPEC },                         \
   { "lib_yellowknife",         LIB_YELLOWKNIFE_SPEC },                 \
   { "lib_mvme",                        LIB_MVME_SPEC },                        \
@@ -1343,6 +1384,7 @@ ncrtn.o%s"
   { "lib_linux",               LIB_LINUX_SPEC },                       \
   { "lib_netbsd",              LIB_NETBSD_SPEC },                      \
   { "lib_vxworks",             LIB_VXWORKS_SPEC },                     \
+  { "lib_windiss",              LIB_WINDISS_SPEC },                     \
   { "lib_default",             LIB_DEFAULT_SPEC },                     \
   { "startfile_ads",           STARTFILE_ADS_SPEC },                   \
   { "startfile_yellowknife",   STARTFILE_YELLOWKNIFE_SPEC },           \
@@ -1353,6 +1395,7 @@ ncrtn.o%s"
   { "startfile_linux",         STARTFILE_LINUX_SPEC },                 \
   { "startfile_netbsd",                STARTFILE_NETBSD_SPEC },                \
   { "startfile_vxworks",       STARTFILE_VXWORKS_SPEC },               \
+  { "startfile_windiss",        STARTFILE_WINDISS_SPEC },               \
   { "startfile_default",       STARTFILE_DEFAULT_SPEC },               \
   { "endfile_ads",             ENDFILE_ADS_SPEC },                     \
   { "endfile_yellowknife",     ENDFILE_YELLOWKNIFE_SPEC },             \
@@ -1363,6 +1406,7 @@ ncrtn.o%s"
   { "endfile_linux",           ENDFILE_LINUX_SPEC },                   \
   { "endfile_netbsd",          ENDFILE_NETBSD_SPEC },                  \
   { "endfile_vxworks",         ENDFILE_VXWORKS_SPEC },                 \
+  { "endfile_windiss",          ENDFILE_WINDISS_SPEC },                 \
   { "endfile_default",         ENDFILE_DEFAULT_SPEC },                 \
   { "link_path",               LINK_PATH_SPEC },                       \
   { "link_shlib",              LINK_SHLIB_SPEC },                      \
@@ -1377,6 +1421,7 @@ ncrtn.o%s"
   { "link_start_linux",                LINK_START_LINUX_SPEC },                \
   { "link_start_netbsd",       LINK_START_NETBSD_SPEC },               \
   { "link_start_vxworks",      LINK_START_VXWORKS_SPEC },              \
+  { "link_start_windiss",      LINK_START_WINDISS_SPEC },              \
   { "link_start_default",      LINK_START_DEFAULT_SPEC },              \
   { "link_os",                 LINK_OS_SPEC },                         \
   { "link_os_ads",             LINK_OS_ADS_SPEC },                     \
@@ -1388,6 +1433,7 @@ ncrtn.o%s"
   { "link_os_gnu",             LINK_OS_GNU_SPEC },                     \
   { "link_os_netbsd",          LINK_OS_NETBSD_SPEC },                  \
   { "link_os_vxworks",         LINK_OS_VXWORKS_SPEC },                 \
+  { "link_os_windiss",         LINK_OS_WINDISS_SPEC },                 \
   { "link_os_default",         LINK_OS_DEFAULT_SPEC },                 \
   { "cc1_endian_big",          CC1_ENDIAN_BIG_SPEC },                  \
   { "cc1_endian_little",       CC1_ENDIAN_LITTLE_SPEC },               \
@@ -1405,6 +1451,7 @@ ncrtn.o%s"
   { "cpp_os_linux",            CPP_OS_LINUX_SPEC },                    \
   { "cpp_os_netbsd",           CPP_OS_NETBSD_SPEC },                   \
   { "cpp_os_vxworks",          CPP_OS_VXWORKS_SPEC },                  \
+  { "cpp_os_windiss",           CPP_OS_WINDISS_SPEC },                  \
   { "cpp_os_default",          CPP_OS_DEFAULT_SPEC },
 
 /* Define this macro as a C expression for the initializer of an
diff --git a/gcc/config/rs6000/windiss.h b/gcc/config/rs6000/windiss.h
new file mode 100644 (file)
index 0000000..32f925a
--- /dev/null
@@ -0,0 +1,49 @@
+/* Support for GCC on PowerPC using WindISS simulator.
+   Copyright (C) 2002 Free Software Foundation, Inc.
+   Contributed by CodeSourcery, LLC. 
+
+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, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#undef TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (PowerPC WindISS)");
+
+#undef LIB_DEFAULT_SPEC
+#define LIB_DEFAULT_SPEC "%(lib_windiss)"
+
+#undef STARTFILE_DEFAULT_SPEC
+#define STARTFILE_DEFAULT_SPEC "%(startfile_windiss)"
+
+#undef ENDFILE_DEFAULT_SPEC
+#define ENDFILE_DEFAULT_SPEC "%(endfile_windiss)"
+
+#undef LINK_START_DEFAULT_SPEC
+#define LINK_START_DEFAULT_SPEC "%(link_start_windiss)"
+
+#undef LINK_OS_DEFAULT_SPEC
+#define LINK_OS_DEFAULT_SPEC "%(link_os_windiss)"
+
+#undef CRTSAVRES_DEFAULT_SPEC
+#define CRTSAVRES_DEFAULT_SPEC ""
+
+#undef WCHAR_TYPE
+#define WCHAR_TYPE "short unsigned int"
+
+#undef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE 16
+
+#define NO_IMPLICIT_EXTERN_C