diff options
Diffstat (limited to 'gcc/config/i386')
-rw-r--r-- | gcc/config/i386/djgpp.h | 4 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 4 | ||||
-rw-r--r-- | gcc/config/i386/i386.h | 1 | ||||
-rw-r--r-- | gcc/config/i386/sco5.h | 3 | ||||
-rw-r--r-- | gcc/config/i386/scodbx.h | 84 |
5 files changed, 86 insertions, 10 deletions
diff --git a/gcc/config/i386/djgpp.h b/gcc/config/i386/djgpp.h index b17346a249e..edd0fc2bc7d 100644 --- a/gcc/config/i386/djgpp.h +++ b/gcc/config/i386/djgpp.h @@ -53,10 +53,6 @@ Boston, MA 02111-1307, USA. */ #undef IDENT_ASM_OP #define IDENT_ASM_OP "\t.ident\t" -/* Define the name of the .int op. */ -#undef INT_ASM_OP -#define INT_ASM_OP "\t.long\t" - /* Enable alias attribute support. */ #ifndef SET_ASM_OP #define SET_ASM_OP "\t.set\t" diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index db06683ffc5..fd60fd8e201 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -5212,11 +5212,11 @@ i386_dwarf_output_addr_const (file, x) rtx x; { #ifdef ASM_QUAD - fprintf (file, "%s", TARGET_64BIT ? ASM_QUAD : INT_ASM_OP); + fprintf (file, "%s", TARGET_64BIT ? ASM_QUAD : ASM_LONG); #else if (TARGET_64BIT) abort (); - fprintf (file, "%s", INT_ASM_OP); + fprintf (file, "%s", ASM_LONG); #endif if (flag_pic) output_pic_addr_const (file, x, '\0'); diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index be2af297930..3b2ce410336 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -2969,7 +2969,6 @@ do { long l; \ degenerate to the macros used above. */ #define UNALIGNED_SHORT_ASM_OP ASM_SHORT #define UNALIGNED_INT_ASM_OP ASM_LONG -#define INT_ASM_OP ASM_LONG /* This is how to output an assembler line for a numeric constant byte. */ diff --git a/gcc/config/i386/sco5.h b/gcc/config/i386/sco5.h index 000207c8df5..6bd6934b774 100644 --- a/gcc/config/i386/sco5.h +++ b/gcc/config/i386/sco5.h @@ -50,9 +50,6 @@ Boston, MA 02111-1307, USA. */ #undef LOCAL_ASM_OP #define LOCAL_ASM_OP "\t.local\t" -#undef INT_ASM_OP -#define INT_ASM_OP "\t.long\t" - #undef ASM_SHORT #define ASM_SHORT "\t.value\t" diff --git a/gcc/config/i386/scodbx.h b/gcc/config/i386/scodbx.h new file mode 100644 index 00000000000..7da93053256 --- /dev/null +++ b/gcc/config/i386/scodbx.h @@ -0,0 +1,84 @@ +/* Definitions for Intel 386 running SCO Unix System V, + using dbx-in-coff encapsulation. + Copyright (C) 1992, 1995, 1996, 1999 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, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "i386/svr3dbx.h" + +/* Overridden defines for SCO systems from sco.h. */ + +/* By default, target has a 80387, uses IEEE compatible arithmetic, + and returns float values in the 387, ie, + (TARGET_80387 | TARGET_FLOAT_RETURNS_IN_80387) + + SCO's software emulation of a 387 fails to handle the `fucomp' + opcode. fucomp is only used when generating IEEE compliant code. + So don't make TARGET_IEEE_FP default for SCO. */ + +#undef TARGET_SUBTARGET_DEFAULT +#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_FLOAT_RETURNS) + +/* Use crt1.o as a startup file and crtn.o as a closing file. */ + +#undef STARTFILE_SPEC +#define STARTFILE_SPEC \ + "%{!r:%{!z:svr3.ifile%s}%{z:svr3z.ifile%s}}\ + %{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}" + +/* Library spec, including SCO international language support. */ + +#undef LIB_SPEC +#define LIB_SPEC \ + "%{p:-L/usr/lib/libp}%{pg:-L/usr/lib/libp} %{scointl:libintl.a%s} -lc" + +/* Specify predefined symbols in preprocessor. */ + +#undef CPP_PREDEFINES +#define CPP_PREDEFINES "-Dunix -DM_UNIX -DM_I386 -DM_COFF -DM_WORDSWAP -Asystem=svr3" + +#undef CPP_SPEC +#define CPP_SPEC "%(cpp_cpu) %{scointl:-DM_INTERNAT}" + +/* This spec is used for telling cpp whether char is signed or not. */ + +#undef SIGNED_CHAR_SPEC +#if DEFAULT_SIGNED_CHAR +#define SIGNED_CHAR_SPEC \ + "%{funsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}" +#else +#define SIGNED_CHAR_SPEC \ + "%{!fsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}" +#endif + +/* caller has to pop the extra argument passed to functions that return + structures. */ + +#undef RETURN_POPS_ARGS +#define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) \ + ((FUNDECL) && TREE_CODE (FUNDECL) == IDENTIFIER_NODE ? 0 \ + : (TARGET_RTD \ + && (TYPE_ARG_TYPES (FUNTYPE) == 0 \ + || (TREE_VALUE (tree_last (TYPE_ARG_TYPES (FUNTYPE))) \ + == void_type_node))) ? (SIZE) \ + : 0) +/* On other 386 systems, the last line looks like this: + : (aggregate_value_p (TREE_TYPE (FUNTYPE))) ? GET_MODE_SIZE (Pmode) : 0) */ + +/* Handle #pragma pack. */ +#define HANDLE_SYSV_PRAGMA |