1 /* Definitions of target machine for GNU compiler. 2 Copyright (C) 1990, 1994, 1996 Free Software Foundation, Inc. 3 Contributed by Robert Andersson, International Systems, Oslo, ra@intsys.no. 4 5 This file is part of GNU CC. 6 7 GNU CC is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2, or (at your option) 10 any later version. 11 12 GNU CC is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with GNU CC; see the file COPYING. If not, write to 19 the Free Software Foundation, 59 Temple Place - Suite 330, 20 Boston, MA 02111-1307, USA. */ 21 22 /* For NCR Tower 32/4x0 and 32/6x0 running System V Release 3. I don't have 23 access to 200/700/800/850 machines, so I don't know if it works on those 24 as well. It shouldn't be far from it however. The hardware floating point 25 support is completely untested, as I do not have access to a machine with 26 a 6888x FPU in it. It does not work on the System V Release 2 based OS 27 releases. Making it work will not be easy, due to the silly way in which 28 stack expansion is implemented in the OS. 29 30 This file is included in tower-as.h. 31 Do *NOT* include this file directly. */ 32 33 34 #include "m68k/m68k.h" 35 36 #define TARGET_DEFAULT (MASK_BITFIELD|MASK_68020) 37 38 /* Don't try using XFmode. */ 39 #undef LONG_DOUBLE_TYPE_SIZE 40 #define LONG_DOUBLE_TYPE_SIZE 64 41 42 /* Names to predefine in the preprocessor for this target machine. */ 43 44 #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_200 -Asystem=unix -Asystem=svr3 -Acpu=m68k -Amachine=m68k" 45 46 #if 0 /* It is incorrect to test these symbols. 47 They describe the host, not the target. 48 It should not matter which model is specified. */ 49 #ifdef tower32_600 50 #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_600 -Asystem=unix -Asystem=svr3 -Acpu=m68k -Amachine=m68k" 51 #endif 52 #ifdef tower32_700 53 #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_700 -Asystem=unix -Asystem=svr3 -Acpu=m68k -Amachine=m68k" 54 #endif 55 #ifdef tower32_800 56 #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_800 -Asystem=unix -Asystem=svr3 -Acpu=m68k -Amachine=m68k" 57 #endif 58 #ifdef tower32_850 59 #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_850 -Asystem=unix -Asystem=svr3 -Acpu=m68k -Amachine=m68k" 60 #endif 61 #endif 62 63 /* The startfiles and libraries depend on the -p and -m68881 options. 64 The Tower does not support the -pg option. */ 65 66 #define LINK_SPEC \ 67 "%{p:%{m68881:-L/usr/lib/fp/libp} -L/usr/lib/libp} \ 68 %{m68881:-L/usr/lib/fp}" 69 70 #define LIB_SPEC \ 71 "%{shlib:-lc_s} -lc crtend.o%s crtn.o%s" 72 73 #define STARTFILE_SPEC \ 74 "%{p:mcrt1.o%s} %{!p:crt1.o%s} crtbegin.o%s" 75 76 /* Use mem* functions, recognize #ident lines. */ 77 78 #define TARGET_MEM_FUNCTIONS 79 #define IDENT_DIRECTIVE 80 81 /* Every structure and union's size must be a multiple of two bytes. */ 82 83 #define STRUCTURE_SIZE_BOUNDARY 16 84 85 /* All register names should have a leading % character. */ 86 87 #undef REGISTER_NAMES 88 #define REGISTER_NAMES \ 89 {"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \ 90 "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%sp", \ 91 "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7"} 92 93 #undef REGISTER_PREFIX 94 #define REGISTER_PREFIX "%" 95 96 #undef IMMEDIATE_PREFIX 97 #define IMMEDIATE_PREFIX "&" 98 99 /* The prefix to add to user-visible assembler symbols. */ 100 101 /* We do not want leading underscores. */ 102 103 #undef USER_LABEL_PREFIX 104 #define USER_LABEL_PREFIX "" 105