📄 tower.h
字号:
/* 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 modifyit under the terms of the GNU General Public License as published bythe 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 ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU CC; see the file COPYING. If not, write tothe 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 ""
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -