Commit a1ffecd9 by Mark Mitchell Committed by Mark Mitchell

sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.

	* 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.

From-SVN: r53257
parent df966bff
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.
......
......@@ -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
......
/* 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment