|
|
1.1 ! root 1: /* Definitions of target machine for GNU compiler. Sun 2 running Sunos 4. ! 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 2, 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: #include "sun2.h" ! 21: ! 22: ! 23: /* Define __HAVE_SKY__ in preprocessor, according to the -m flags. ! 24: Also inform the program which CPU this is for. */ ! 25: ! 26: #undef CPP_SPEC ! 27: ! 28: #undef PTRDIFF_TYPE ! 29: #define PTRDIFF_TYPE "int" ! 30: #undef SIZE_TYPE ! 31: #define SIZE_TYPE "int" ! 32: #undef WCHAR_TYPE ! 33: #define WCHAR_TYPE "short unsigned int" ! 34: #undef WCHAR_TYPE_SIZE ! 35: #define WCHAR_TYPE_SIZE 16 ! 36: ! 37: #if TARGET_DEFAULT & 0200 ! 38: ! 39: /* -msky is the default */ ! 40: #define CPP_SPEC \ ! 41: "%{!msoft-float:-D__HAVE_SKY__}\ ! 42: %{!ansi:%{m68020:-Dmc68020}%{mc68020:-Dmc68020}%{!mc68020:%{!m68020:-Dmc68010}}}" ! 43: ! 44: #else ! 45: ! 46: /* -msoft-float is the default */ ! 47: #define CPP_SPEC \ ! 48: "%{msky:-D__HAVE_SKY__ }\ ! 49: %{!ansi:%{m68020:-Dmc68020}%{mc68020:-Dmc68020}%{!mc68020:%{!m68020:-Dmc68010}}}" ! 50: ! 51: #endif ! 52: ! 53: /* STARTFILE_SPEC to include sun floating point initialization ! 54: This is necessary (tr: Sun does it) for the sky routines. ! 55: I'm not sure what would happen below if people gave contradictory ! 56: arguments (eg. -msoft-float -mfpa) */ ! 57: ! 58: #undef STARTFILE_SPEC ! 59: ! 60: #if TARGET_DEFAULT & 0200 ! 61: /* -msky is the default */ ! 62: #define STARTFILE_SPEC \ ! 63: "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}} \ ! 64: %{msoft-float:Fcrt1.o%s} \ ! 65: %{!msoft-float:Scrt1.o%s}" ! 66: #else ! 67: /* -msoft-float is the default */ ! 68: #define STARTFILE_SPEC \ ! 69: "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}} \ ! 70: %{msky:Scrt1.o%s} \ ! 71: %{!msky:Fcrt1.o%s}" ! 72: #endif ! 73: ! 74: /* Specify library to handle `-a' basic block profiling. ! 75: Control choice of libm.a (if user says -lm) ! 76: based on fp arith default and options. */ ! 77: ! 78: #undef LIB_SPEC ! 79: ! 80: #if TARGET_DEFAULT & 0200 ! 81: /* -msky is the default */ ! 82: #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p} \ ! 83: %{a:/usr/lib/bb_link.o -lc} %{g:-lg} \ ! 84: %{msoft-float:-L/usr/lib/fsoft} \ ! 85: %{!msoft_float:-L/usr/lib/fsky}" ! 86: #else ! 87: /* -msoft-float is the default */ ! 88: #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p} \ ! 89: %{a:/usr/lib/bb_link.o -lc} %{g:-lg} \ ! 90: %{!msky:-L/usr/lib/fsoft} \ ! 91: %{msky:-L/usr/lib/ffpa}" ! 92: #endif ! 93: ! 94: #undef LINK_SPEC ! 95: #define LINK_SPEC "%{!e*:-e start} -dc -dp %{g:-Bstatic} %{static:-Bstatic}" ! 96: ! 97: #undef ASM_OUTPUT_DOUBLE ! 98: #define ASM_OUTPUT_DOUBLE(FILE,VALUE) \ ! 99: (REAL_VALUE_ISINF ((VALUE)) \ ! 100: ? fprintf (FILE, "\t.double 0r%s99e999\n", ((VALUE) > 0 ? "" : "-")) \ ! 101: : REAL_VALUE_MINUS_ZERO ((VALUE)) \ ! 102: ? fprintf (FILE, "\t.long 0x80000000,0\n") \ ! 103: : fprintf (FILE, "\t.double 0r%.20e\n", (VALUE))) ! 104: ! 105: /* This is how to output an assembler line defining a `float' constant. */ ! 106: ! 107: #undef ASM_OUTPUT_FLOAT ! 108: #define ASM_OUTPUT_FLOAT(FILE,VALUE) \ ! 109: (REAL_VALUE_ISINF ((VALUE)) \ ! 110: ? fprintf (FILE, "\t.single 0r%s99e999\n", ((VALUE) > 0 ? "" : "-")) \ ! 111: : REAL_VALUE_MINUS_ZERO ((VALUE)) \ ! 112: ? fprintf (FILE, "\t.long 0x80000000\n") \ ! 113: : fprintf (FILE, "\t.single 0r%.20e\n", (VALUE))) ! 114: ! 115: #undef ASM_OUTPUT_FLOAT_OPERAND ! 116: #define ASM_OUTPUT_FLOAT_OPERAND(FILE,VALUE) \ ! 117: (REAL_VALUE_ISINF ((VALUE)) \ ! 118: ? fprintf (FILE, "#0r%s99e999", ((VALUE) > 0 ? "" : "-")) \ ! 119: : REAL_VALUE_MINUS_ZERO ((VALUE)) \ ! 120: ? fprintf (FILE, "#0r-0.0") \ ! 121: : fprintf (FILE, "#0r%.9g", (VALUE))) ! 122: ! 123: #undef ASM_OUTPUT_DOUBLE_OPERAND ! 124: #define ASM_OUTPUT_DOUBLE_OPERAND(FILE,VALUE) \ ! 125: (REAL_VALUE_ISINF ((VALUE)) \ ! 126: ? fprintf (FILE, "#0r%s99e999", ((VALUE) > 0 ? "" : "-")) \ ! 127: : REAL_VALUE_MINUS_ZERO ((VALUE)) \ ! 128: ? fprintf (FILE, "#0r-0.0") \ ! 129: : fprintf (FILE, "#0r%.20g", (VALUE)))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.