/* Definitions of target machine for GNU compiler. Copyright (C) 1990, 1994, 1996 Free Software Foundation, Inc. Contributed by Robert Andersson, International Systems, Oslo, ra@intsys.no. 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. */ /* For NCR Tower 32/4x0 and 32/6x0 running System V Release 3. I don't have access to 200/700/800/850 machines, so I don't know if it works on those as well. It shouldn't be far from it however. The hardware floating point support is completely untested, as I do not have access to a machine with a 6888x FPU in it. It does not work on the System V Release 2 based OS releases. Making it work will not be easy, due to the silly way in which stack expansion is implemented in the OS. This file is included in tower-as.h. Do *NOT* include this file directly. */ #include "m68k/m68k.h" #define TARGET_DEFAULT (MASK_BITFIELD|MASK_68020) /* Don't try using XFmode. */ #undef LONG_DOUBLE_TYPE_SIZE #define LONG_DOUBLE_TYPE_SIZE 64 /* Names to predefine in the preprocessor for this target machine. */ #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_200 -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)" #if 0 /* It is incorrect to test these symbols. They describe the host, not the target. It should not matter which model is specified. */ #ifdef tower32_600 #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_600 -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)" #endif #ifdef tower32_700 #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_700 -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)" #endif #ifdef tower32_800 #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_800 -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)" #endif #ifdef tower32_850 #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_850 -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)" #endif #endif /* The startfiles and libraries depend on the -p and -m68881 options. The Tower does not support the -pg option. */ #define LINK_SPEC \ "%{p:%{m68881:-L/usr/lib/fp/libp} -L/usr/lib/libp} \ %{m68881:-L/usr/lib/fp}" #define LIB_SPEC \ "%{shlib:-lc_s} -lc crtend.o%s crtn.o%s" #define STARTFILE_SPEC \ "%{p:mcrt1.o%s} %{!p:crt1.o%s} crtbegin.o%s" /* Use mem* functions, recognize #ident lines. */ #define TARGET_MEM_FUNCTIONS #define IDENT_DIRECTIVE /* Every structure and union's size must be a multiple of two bytes. */ #define STRUCTURE_SIZE_BOUNDARY 16 /* All register names should have a leading % character. */ #undef REGISTER_NAMES #define REGISTER_NAMES \ {"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \ "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%sp", \ "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7"}; #undef REGISTER_PREFIX #define REGISTER_PREFIX "%" #undef IMMEDIATE_PREFIX #define IMMEDIATE_PREFIX "&" /* The prefix to add to user-visible assembler symbols. */ /* We do not want leading underscores. */ #undef USER_LABEL_PREFIX #define USER_LABEL_PREFIX ""