|
|
1.1 ! root 1: /* Definitions of target machine for GNU compiler. Sun 68000/68020 version. ! 2: Copyright (C) 1987, 1988 Free Software Foundation, Inc. ! 3: ! 4: This file is part of GNU CC. ! 5: ! 6: GNU CC is free software; you can redistribute it and/or modify ! 7: it under the terms of the GNU General Public License as published by ! 8: the Free Software Foundation; either version 1, or (at your option) ! 9: any later version. ! 10: ! 11: GNU CC is distributed in the hope that it will be useful, ! 12: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 14: GNU General Public License for more details. ! 15: ! 16: You should have received a copy of the GNU General Public License ! 17: along with GNU CC; see the file COPYING. If not, write to ! 18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 19: ! 20: /* This comment is here to see if it will keep Sun's cpp from dying. */ ! 21: ! 22: #include "tm-m68k.h" ! 23: ! 24: /* See tm-m68k.h. 7 means 68020 with 68881. */ ! 25: ! 26: #ifndef TARGET_DEFAULT ! 27: #define TARGET_DEFAULT 7 ! 28: #endif ! 29: ! 30: /* Define __HAVE_FPA__ or __HAVE_68881__ in preprocessor, ! 31: according to the -m flags. ! 32: This will control the use of inline 68881 insns in certain macros. ! 33: Also inform the program which CPU this is for. */ ! 34: ! 35: #if TARGET_DEFAULT & 02 ! 36: ! 37: /* -m68881 is the default */ ! 38: #define CPP_SPEC \ ! 39: "%{!msoft-float:%{mfpa:-D__HAVE_FPA__ }%{!mfpa:-D__HAVE_68881__ }}\ ! 40: %{!ansi:%{m68000:-Dmc68010}%{mc68000:-Dmc68010}%{!mc68000:%{!m68000:-Dmc68020}}}" ! 41: ! 42: #else ! 43: #if TARGET_DEFAULT & 0100 ! 44: ! 45: /* -mfpa is the default */ ! 46: #define CPP_SPEC \ ! 47: "%{!msoft-float:%{m68881:-D__HAVE_68881__ }%{!m68881:-D__HAVE_FPA__ }}\ ! 48: %{!ansi:%{m68000:-Dmc68010}%{mc68000:-Dmc68010}%{!mc68000:%{!m68000:-Dmc68020}}}" ! 49: ! 50: #else ! 51: ! 52: /* -msoft-float is the default */ ! 53: #define CPP_SPEC \ ! 54: "%{m68881:-D__HAVE_68881__ }%{mfpa:-D__HAVE_FPA__ }\ ! 55: %{!ansi:%{m68000:-Dmc68010}%{mc68000:-Dmc68010}%{!mc68000:%{!m68000:-Dmc68020}}}" ! 56: ! 57: #endif ! 58: #endif ! 59: ! 60: /* Prevent error on `-sun3' option. */ ! 61: ! 62: #define CC1_SPEC "%{sun3:}" ! 63: ! 64: /* -m68000 requires special flags to the assembler. */ ! 65: ! 66: #define ASM_SPEC \ ! 67: "%{m68000:-mc68010}%{mc68000:-mc68010}%{!mc68000:%{!m68000:-mc68020}}" ! 68: ! 69: /* Names to predefine in the preprocessor for this target machine. */ ! 70: ! 71: #define CPP_PREDEFINES "-Dmc68000 -Dsun -Dunix" ! 72: ! 73: /* STARTFILE_SPEC to include sun floating point initialization ! 74: This is necessary (tr: Sun does it) for both the m68881 and the fpa ! 75: routines. ! 76: Note that includes knowledge of the default specs for gcc, ie. no ! 77: args translates to the same effect as -m68881 ! 78: I'm not sure what would happen below if people gave contradictory ! 79: arguments (eg. -msoft-float -mfpa) */ ! 80: ! 81: #if TARGET_DEFAULT & 0100 ! 82: /* -mfpa is the default */ ! 83: #define STARTFILE_SPEC \ ! 84: "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}} \ ! 85: %{m68881:Mcrt1.o%s} \ ! 86: %{msoft-float:Fcrt1.o%s} \ ! 87: %{!m68881:%{!msoft-float:Wcrt1.o%s}}" ! 88: #else ! 89: #if TARGET_DEFAULT & 2 ! 90: /* -m68881 is the default */ ! 91: #define STARTFILE_SPEC \ ! 92: "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}} \ ! 93: %{mfpa:Wcrt1.o%s} \ ! 94: %{msoft-float:Fcrt1.o%s} \ ! 95: %{!mfpa:%{!msoft-float:Mcrt1.o%s}}" ! 96: #else ! 97: /* -msoft-float is the default */ ! 98: #define STARTFILE_SPEC \ ! 99: "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}} \ ! 100: %{m68881:Mcrt1.o%s} \ ! 101: %{mfpa:Wcrt1.o%s} \ ! 102: %{!m68881:%{!mfpa:Fcrt1.o%s}}" ! 103: #endif ! 104: #endif ! 105: ! 106: /* Specify library to handle `-a' basic block profiling. */ ! 107: ! 108: #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p} \ ! 109: %{a:/usr/lib/bb_link.o} " ! 110: ! 111: /* Provide required defaults for linker -e and -d switches. ! 112: Also, it is hard to debug with shared libraries, ! 113: so don't use them if going to debug. */ ! 114: ! 115: #define LINK_SPEC "%{!e*:-e start} -dc -dp %{g:-Bstatic} %{static:-Bstatic} %{-Bstatic}" ! 116: ! 117: /* Every structure or union's size must be a multiple of 2 bytes. */ ! 118: ! 119: #define STRUCTURE_SIZE_BOUNDARY 16 ! 120: ! 121: /* This is BSD, so it wants DBX format. */ ! 122: ! 123: #define DBX_DEBUGGING_INFO ! 124: ! 125: /* This is how to output an assembler line defining a `double' constant. */ ! 126: ! 127: #undef ASM_OUTPUT_DOUBLE ! 128: #define ASM_OUTPUT_DOUBLE(FILE,VALUE) \ ! 129: (isinf ((VALUE)) \ ! 130: ? fprintf (FILE, "\t.double 0r%s99e999\n", ((VALUE) > 0 ? "" : "-")) \ ! 131: : fprintf (FILE, "\t.double 0r%.20e\n", (VALUE))) ! 132: ! 133: /* This is how to output an assembler line defining a `float' constant. */ ! 134: ! 135: #undef ASM_OUTPUT_FLOAT ! 136: #define ASM_OUTPUT_FLOAT(FILE,VALUE) \ ! 137: (isinf ((VALUE)) \ ! 138: ? fprintf (FILE, "\t.single 0r%s99e999\n", ((VALUE) > 0 ? "" : "-")) \ ! 139: : fprintf (FILE, "\t.single 0r%.20e\n", (VALUE))) ! 140: ! 141: #undef ASM_OUTPUT_FLOAT_OPERAND ! 142: #define ASM_OUTPUT_FLOAT_OPERAND(FILE,VALUE) \ ! 143: (isinf ((VALUE)) \ ! 144: ? fprintf (FILE, "#0r%s99e999", ((VALUE) > 0 ? "" : "-")) \ ! 145: : fprintf (FILE, "#0r%.9g", (VALUE))) ! 146: ! 147: #undef ASM_OUTPUT_DOUBLE_OPERAND ! 148: #define ASM_OUTPUT_DOUBLE_OPERAND(FILE,VALUE) \ ! 149: (isinf ((VALUE)) \ ! 150: ? fprintf (FILE, "#0r%s99e999", ((VALUE) > 0 ? "" : "-")) \ ! 151: : fprintf (FILE, "#0r%.20g", (VALUE)))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.