|
|
1.1 ! root 1: /* Definitions of target machine for GNU compiler. ! 2: ! 3: Citicorp/TTI Unicom PBB version (using GAS with a %-register prefix) ! 4: ! 5: Copyright (C) 1987, 1988, 1990 Free Software Foundation, Inc. ! 6: ! 7: This file is part of GNU CC. ! 8: ! 9: GNU CC is free software; you can redistribute it and/or modify ! 10: it under the terms of the GNU General Public License as published by ! 11: the Free Software Foundation; either version 2, or (at your option) ! 12: any later version. ! 13: ! 14: GNU CC is distributed in the hope that it will be useful, ! 15: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 16: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 17: GNU General Public License for more details. ! 18: ! 19: You should have received a copy of the GNU General Public License ! 20: along with GNU CC; see the file COPYING. If not, write to ! 21: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 22: ! 23: #include "m68k.h" ! 24: ! 25: /* Without STRUCTURE_SIZE_BOUNDARY, we can't ensure that structures are ! 26: aligned such that we can correctly extract bitfields from them. ! 27: Someone should check whether the usual compiler on this machine ! 28: provides the equivalent behavior of STRUCTURE_SIZE_BOUNDARY. */ ! 29: /* Alternative solutions are (1) define PCC_BITFIELD_TYPE_MATTERS, ! 30: if that fits what the usual compiler does, ! 31: or disable the -m68000 and -mnobitfield options. */ ! 32: #error This doesn't define STRUCTURE_SIZE_BOUNDARY ! 33: ! 34: /* See m68k.h. 5 means 68020 without 68881. */ ! 35: ! 36: #define TARGET_DEFAULT 5 ! 37: ! 38: /* Define __HAVE_68881__ in preprocessor if -m68881 is specified. ! 39: This will control the use of inline 68881 insns in certain macros. */ ! 40: ! 41: #define CPP_SPEC "%{m68881:-D__HAVE_68881__}" ! 42: ! 43: /* Names to predefine in the preprocessor for this target machine. */ ! 44: ! 45: #define CPP_PREDEFINES "-Dm68k -Dunix -DUnicomPBB -Dmc68k -Dmc68020 -Dmc68k32" ! 46: ! 47: /* We want DBX format for use with gdb under COFF. */ ! 48: ! 49: #define DBX_DEBUGGING_INFO ! 50: ! 51: /* Generate calls to memcpy, memcmp and memset. */ ! 52: ! 53: #define TARGET_MEM_FUNCTIONS ! 54: ! 55: /* -m68000 requires special flags to the assembler. ! 56: The -C flag is passed to a modified GNU assembler to cause COFF ! 57: modules to be produced. Remove it if you're not using this. ! 58: (See [email protected] or [email protected]) ! 59: - no longer using -C flag... build gas with coff as default! */ ! 60: ! 61: #define ASM_SPEC \ ! 62: " %{m68000:-mc68010}%{mc68000:-mc68010}" ! 63: ! 64: /* we use /lib/libp/lib* when profiling */ ! 65: ! 66: #define LIB_SPEC "%{!shlib:%{p:-L/lib/libp} %{pg:-L/lib/libp} -lc} \ ! 67: %{shlib:-lc_s crtn.o%s }" ! 68: ! 69: /* shared libraries need to use crt1.o */ ! 70: ! 71: #ifdef USE_GPLUS_IFILE ! 72: #define STARTFILE_SPEC \ ! 73: "g++.ifile%s %{!shlib:%{pg:mcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}\ ! 74: %{shlib:crt1.o%s } " ! 75: #else ! 76: #define STARTFILE_SPEC \ ! 77: "%{!shlib:%{pg:mcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}\ ! 78: %{shlib:crt1.o%s } " ! 79: #endif ! 80: ! 81: /* cpp has to support a #sccs directive for the /usr/include files */ ! 82: ! 83: #define SCCS_DIRECTIVE ! 84: ! 85: /* GAS register prefix assembly syntax: */ ! 86: ! 87: /* User labels have no prefix */ ! 88: #undef USER_LABEL_PREFIX ! 89: #define USER_LABEL_PREFIX "" ! 90: ! 91: /* local labels are prefixed with ".L" */ ! 92: #undef LOCAL_LABEL_PREFIX ! 93: #define LOCAL_LABEL_PREFIX ".L" ! 94: ! 95: /* registers are prefixed with "%" */ ! 96: #undef REGISTER_PREFIX ! 97: #define REGISTER_PREFIX "%" ! 98: ! 99: #undef REGISTER_NAMES ! 100: #define REGISTER_NAMES \ ! 101: {"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \ ! 102: "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%sp", \ ! 103: "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7", \ ! 104: "%fpa0", "%fpa1", "%fpa2", "%fpa3", "%fpa4", "%fpa5", "%fpa6", "%fpa7", \ ! 105: "%fpa8", "%fpa9", "%fpa10", "%fpa11", "%fpa12", "%fpa13", "%fpa14", "%fpa15",\ ! 106: "%fpa16","%fpa17", "%fpa18", "%fpa19", "%fpa20", "%fpa21", "%fpa22","%fpa23",\ ! 107: "%fpa24","%fpa25", "%fpa26", "%fpa27", "%fpa28", "%fpa29", "%fpa30","%fpa31",} ! 108: ! 109: #undef FUNCTION_FINAL_EXTRA_EPILOGUE ! 110: #define FUNCTION_FINAL_EXTRA_EPILOGUE(FILE, SIZE) \ ! 111: { extern int current_function_returns_pointer; \ ! 112: if (current_function_returns_pointer) \ ! 113: asm_fprintf (FILE, "\tmovl %Rd0,%Ra0\n"); } ! 114: ! 115: #define ASM_RETURN_CASE_JUMP return "jmp %%pc@(2,%0:w)" ! 116: ! 117: /* This is how to store into the string LABEL ! 118: the symbol_ref name of an internal numbered label where ! 119: PREFIX is the class of label and NUM is the number within the class. ! 120: This is suitable for output with `assemble_name'. */ ! 121: ! 122: #undef ASM_GENERATE_INTERNAL_LABEL ! 123: #define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \ ! 124: sprintf (LABEL, "*.%s%d", PREFIX, NUM) ! 125: ! 126: /* Describe how to output filenames for dbx. */ ! 127: ! 128: /* These look awfully like the default definitions ! 129: --it's not clear whether these really need to be redefined here. --rms. */ ! 130: #define DBX_OUTPUT_MAIN_SOURCE_FILENAME(FILE, FILENAME) \ ! 131: fprintf (FILE, "\t.stabs \"%s\",%d,0,0,.Ltext\n.Ltext:\n", \ ! 132: FILENAME, N_SO) ! 133: ! 134: #define DBX_OUTPUT_SOURCE_FILENAME(FILE, FILENAME) \ ! 135: fprintf (FILE, "\t.stabs \"%s\",%d,0,0,.Ltext\n", \ ! 136: FILENAME, N_SOL) ! 137: ! 138: /* g++ stuff: */ ! 139: /* now obsolete, since we no longer need collect with a properly functioning ! 140: coff loader. */ ! 141: #define NO_UNDERSCORES ! 142: #define ASM_INT_OP ".long " ! 143: #define DBX_IN_COFF ! 144: ! 145: /* ! 146: Local variables: ! 147: version-control: t ! 148: End: ! 149: */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.