From f795fb5b744ff0f23ab03edf9e63821097f17fb9 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Tue, 21 Feb 1995 18:23:48 -0500 Subject: [PATCH] Support NT Graphics programs; also bug fixes. From-SVN: r9001 --- gcc/config/i386/win-nt.h | 84 ++++++++++++++++++++++++++++++++++------ 1 file changed, 72 insertions(+), 12 deletions(-) diff --git a/gcc/config/i386/win-nt.h b/gcc/config/i386/win-nt.h index 09cba358e4b..d551e91d39a 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" + -- 2.30.2