1991-12-01 00:07:43 -05:00
|
|
|
/* Definitions of target machine for GNU compiler. SEQUENT NS32000 version.
|
|
|
|
Copyright (C) 1987 Free Software Foundation, Inc.
|
|
|
|
Contributed by Michael Tiemann (tiemann@mcc.com)
|
|
|
|
|
|
|
|
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
|
1995-06-15 15:44:43 -04:00
|
|
|
the Free Software Foundation, 59 Temple Place - Suite 330,
|
|
|
|
Boston, MA 02111-1307, USA. */
|
1991-12-01 00:07:43 -05:00
|
|
|
|
1993-01-05 00:54:06 -05:00
|
|
|
#include "ns32k/ns32k.h"
|
1991-12-01 00:07:43 -05:00
|
|
|
|
|
|
|
/* This is BSD, so it wants DBX format. */
|
|
|
|
#define DBX_DEBUGGING_INFO
|
|
|
|
|
|
|
|
/* Sequent has some changes in the format of DBX symbols. */
|
|
|
|
#define DBX_NO_XREFS 1
|
|
|
|
|
|
|
|
/* Don't split DBX symbols into continuations. */
|
|
|
|
#define DBX_CONTIN_LENGTH 0
|
|
|
|
|
1992-03-14 00:17:01 -05:00
|
|
|
#define TARGET_DEFAULT 9 /* 32332 with 32081 (guessing). */
|
1991-12-01 00:07:43 -05:00
|
|
|
|
|
|
|
/* Print subsidiary information on the compiler version in use. */
|
|
|
|
#undef TARGET_VERSION
|
|
|
|
#define TARGET_VERSION fprintf (stderr, " (32000, Sequent syntax)");
|
|
|
|
|
|
|
|
#undef CPP_PREDEFINES
|
1993-10-02 04:55:06 -04:00
|
|
|
#define CPP_PREDEFINES "-Dns32000 -Dsequent -Dunix -Asystem(unix) -Asystem(bsd) -Acpu(ns32k) -Amachine(ns32k)"
|
1991-12-01 00:07:43 -05:00
|
|
|
|
|
|
|
/* Link with libg.a when debugging, for dbx's sake. */
|
|
|
|
|
|
|
|
#define LIB_SPEC "%{g:-lg} %{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p} "
|
|
|
|
|
1992-06-27 01:24:28 -04:00
|
|
|
/* gcc should find libgcc.a itself, not ask linker to do so. */
|
|
|
|
|
1992-06-29 13:50:38 -04:00
|
|
|
#define LINK_LIBGCC_SPECIAL
|
|
|
|
|
|
|
|
/* GCC must match what sys/types.h uses for size_t. */
|
|
|
|
|
|
|
|
#define SIZE_TYPE "int"
|
1992-06-27 01:24:28 -04:00
|
|
|
|
1991-12-01 00:07:43 -05:00
|
|
|
/* This is how to align the code that follows an unconditional branch.
|
|
|
|
Don't define it, since it confuses the assembler (we hear). */
|
|
|
|
|
final.c (insn_last_address, [...]): New variables.
* final.c (insn_last_address, insn_current_align, uid_align):
New variables.
(in_align_chain, align_fuzz, align_shrink_fuzz): New functions.
(insn_current_reference_address): Likewise.
(shorten_branches, final_scan_insn): Implement LABEL_ALIGN,
LABEL_ALIGN_AFTER_BARRIER and LOOP_ALIGN target macros.
(label_to_alignment): New function.
* genattrtab.c (write_test_expr): If one of LABEL_ALIGN,
LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN is defined, call
insn_current_reference_address instead of insn_current_address.
(or_attr_value, write_length_unit_log): New functions.
(main): Call write_length_unit_log.
(write_const_num_delay_slots): Output extra '\n'.
* alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE):
replace with:
(LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER).
* i386.h, i386/osfrose.h, i386/svr3dbx.h, m68k.h, sparc.h: Likewise.
* arc.h, m32r.h (ASM_OUTPUT_LOOP_ALIGN): replace with:
(LOOP_ALIGN).
* i960.h, m88k.h: (ASM_OUTPUT_ALIGN_CODE): Replace with:
(LABEL_ALIGN_AFTER_BARRIER).
* ns32k/encore.h, ns32k/merlin.h, ns32k.h, ns32k/sequent.h: Likewise.
* ns32k/tek6000.h: Likewise.
* i386/gas.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Delete.
* i386.md (casesi+1): Use ASM_OUTPUT_ALIGN instead of
ASM_OUTPUT_ALIGN_CODE.
From-SVN: r18357
1998-03-02 06:54:35 -05:00
|
|
|
#undef LABEL_ALIGN_AFTER_BARRIER
|
1991-12-01 00:07:43 -05:00
|
|
|
|
1992-03-14 00:17:01 -05:00
|
|
|
/* Assembler pseudo-op for shared data segment. */
|
1991-12-01 00:07:43 -05:00
|
|
|
#define SHARED_SECTION_ASM_OP ".shdata"
|
|
|
|
|
|
|
|
/* Control how stack adjust insns are output. */
|
|
|
|
#define SEQUENT_ADJUST_STACK
|
|
|
|
|
1992-03-14 00:17:01 -05:00
|
|
|
#define NO_ABSOLUTE_PREFIX_IF_SYMBOLIC
|
|
|
|
|
|
|
|
#define IMMEDIATE_PREFIX 0
|
|
|
|
|
|
|
|
#define SEQUENT_ASM
|
1992-03-28 01:19:35 -05:00
|
|
|
|
|
|
|
/* Operand of bsr or jsr should be just the address. */
|
|
|
|
|
|
|
|
#define CALL_MEMREF_IMPLICIT
|
|
|
|
|
|
|
|
/* Output a reg as an index rather than a base if we have the choice. */
|
|
|
|
|
|
|
|
#define INDEX_RATHER_THAN_BASE
|