aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-02-21 18:23:48 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1995-02-21 18:23:48 -0500
commitf795fb5b744ff0f23ab03edf9e63821097f17fb9 (patch)
tree869613f48791864e7f814672034ca7595a18ad76
parentbb5d01e5acfaa6e088579db01b2f720a94e9f93a (diff)
downloadgcc-f795fb5b744ff0f23ab03edf9e63821097f17fb9.zip
gcc-f795fb5b744ff0f23ab03edf9e63821097f17fb9.tar.gz
gcc-f795fb5b744ff0f23ab03edf9e63821097f17fb9.tar.bz2
Support NT Graphics programs; also bug fixes.
From-SVN: r9001
-rw-r--r--gcc/config/i386/win-nt.h84
1 files changed, 72 insertions, 12 deletions
diff --git a/gcc/config/i386/win-nt.h b/gcc/config/i386/win-nt.h
index 09cba35..d551e91 100644
--- a/gcc/config/i386/win-nt.h
+++ b/gcc/config/i386/win-nt.h
@@ -1,7 +1,7 @@
-/* Definitions of target machine for GNU compiler
- for an Intel i386 or later processor running Windows NT 3.x.
- Copyright (C) 1994 Free Software Foundation, Inc.
- Contributed by Douglas B. Rupp (drupp@cs.washington.edu)
+/* Operating system specific defines to be used when targeting GCC for
+ Windows NT 3.x on an i386.
+ Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+ Contributed by Douglas B. Rupp (drupp@cs.washington.edu).
This file is part of GNU CC.
@@ -17,16 +17,74 @@ 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. */
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define YES_UNDERSCORES
#include "i386/gas.h"
-#include "winnt/winnt.h"
+/* Value is the number of bytes of arguments automatically
+ popped when returning from a subroutine call.
+ FUNDECL is the declaration node of the function (as a tree),
+ FUNTYPE is the data type of the function (as a tree),
+ or for a library call it is an identifier node for the subroutine name.
+ SIZE is the number of bytes of arguments passed on the stack.
+
+ This only happens if the function declaration has the STDCALL attribute and
+ the number of arguments is not variable */
+
+#undef RETURN_POPS_ARGS
+#define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) \
+ ( \
+ TREE_CODE (FUNTYPE) == IDENTIFIER_NODE \
+ ? \
+ 0 \
+ : \
+ ( \
+ ((FUNDECL && (TREE_CODE_CLASS (TREE_CODE (FUNDECL)) == 'd') ? \
+ chain_member_value (get_identifier ("stdcall"), \
+ DECL_MACHINE_ATTRIBUTES (FUNDECL) \
+ ) : 0 \
+ ) \
+ ) \
+ && \
+ ( \
+ TYPE_ARG_TYPES (FUNTYPE) == 0 \
+ || \
+ TREE_VALUE (tree_last (TYPE_ARG_TYPES (FUNTYPE))) \
+ == void_type_node \
+ ) \
+ ) \
+ ? \
+ (SIZE) \
+ : \
+ (aggregate_value_p (TREE_TYPE (FUNTYPE))) \
+ ? \
+ GET_MODE_SIZE (Pmode) \
+ : \
+ 0 \
+ )
+
+#undef FUNCTION_PROLOGUE
+#define FUNCTION_PROLOGUE(FILE,SIZE) \
+ winnt_function_prologue (FILE, SIZE)
+
+
+#ifdef CPP_PREDEFINES
#undef CPP_PREDEFINES
-#define CPP_PREDEFINES "-Dunix -Di386 -DWINNT -D_M_IX86 -D_X86_ -D__STDC__=0 \
- -DALMOST_STDC -Asystem(unix) -Asystem(winnt) -Acpu(i386) -Amachine(i386)"
+#endif
+#define CPP_PREDEFINES "-Dunix -Di386 -DWIN32 -D_WIN32 \
+ -DWINNT -D_M_IX86=300 -D_X86_=1 -DALMOST_STDC -D_MSC_VER=800\
+ -Asystem(unix) -Asystem(winnt) -Acpu(i386) -Amachine(i386)"
+
+#define SIZE_TYPE "unsigned int"
+#define PTRDIFF_TYPE "int"
+#define WCHAR_UNSIGNED 1
+#define WCHAR_TYPE_SIZE 16
+#define WCHAR_TYPE "short unsigned int"
+#undef LONG_DOUBLE_TYPE_SIZE
+#define LONG_DOUBLE_TYPE_SIZE 64
+#define HAVE_ATEXIT 1
#undef EXTRA_SECTIONS
#define EXTRA_SECTIONS in_ctor, in_dtor
@@ -36,7 +94,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
CTOR_SECTION_FUNCTION \
DTOR_SECTION_FUNCTION
-#undef CTOR_SECTION_FUNCTION
#define CTOR_SECTION_FUNCTION \
void \
ctor_section () \
@@ -48,7 +105,6 @@ ctor_section () \
} \
}
-#undef DTOR_SECTION_FUNCTION
#define DTOR_SECTION_FUNCTION \
void \
dtor_section () \
@@ -60,7 +116,6 @@ dtor_section () \
} \
}
-#undef ASM_OUTPUT_CONSTRUCTOR
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { \
ctor_section (); \
@@ -69,7 +124,6 @@ dtor_section () \
fprintf (FILE, "\n"); \
} while (0)
-#undef ASM_OUTPUT_DESTRUCTOR
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { \
dtor_section (); \
@@ -77,3 +131,9 @@ dtor_section () \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)
+
+#define HAVE_probe 1
+#define gen_probe() gen_rtx(ASM_INPUT, VOIDmode, "call __stkchk\n")
+
+#include "winnt/winnt.h"
+