105 lines
3.7 KiB
C
105 lines
3.7 KiB
C
|
/* 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 ""
|