xref: /openbsd-src/gnu/usr.bin/gcc/gcc/config/ns32k/netbsd.h (revision c87b03e512fc05ed6e0222f6fb0ae86264b1d05b)
1*c87b03e5Sespie /* Configuration for a ns32532 running NetBSD as the target machine.
2*c87b03e5Sespie    Copyright (C) 1988, 1994, 1995, 1996, 1998, 2002
3*c87b03e5Sespie    Free Software Foundation, Inc.
4*c87b03e5Sespie 
5*c87b03e5Sespie This file is part of GNU CC.
6*c87b03e5Sespie 
7*c87b03e5Sespie GNU CC is free software; you can redistribute it and/or modify
8*c87b03e5Sespie it under the terms of the GNU General Public License as published by
9*c87b03e5Sespie the Free Software Foundation; either version 2, or (at your option)
10*c87b03e5Sespie any later version.
11*c87b03e5Sespie 
12*c87b03e5Sespie GNU CC is distributed in the hope that it will be useful,
13*c87b03e5Sespie but WITHOUT ANY WARRANTY; without even the implied warranty of
14*c87b03e5Sespie MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15*c87b03e5Sespie GNU General Public License for more details.
16*c87b03e5Sespie 
17*c87b03e5Sespie You should have received a copy of the GNU General Public License
18*c87b03e5Sespie along with GNU CC; see the file COPYING.  If not, write to
19*c87b03e5Sespie the Free Software Foundation, 59 Temple Place - Suite 330,
20*c87b03e5Sespie Boston, MA 02111-1307, USA.  */
21*c87b03e5Sespie 
22*c87b03e5Sespie 
23*c87b03e5Sespie #define TARGET_OS_CPP_BUILTINS()			\
24*c87b03e5Sespie   do							\
25*c87b03e5Sespie     {							\
26*c87b03e5Sespie       NETBSD_OS_CPP_BUILTINS_AOUT();			\
27*c87b03e5Sespie       builtin_define ("__ns32k__");			\
28*c87b03e5Sespie     }							\
29*c87b03e5Sespie   while (0)
30*c87b03e5Sespie 
31*c87b03e5Sespie /* Compile for the floating point unit & 32532 by default;
32*c87b03e5Sespie    Don't assume SB is zero;
33*c87b03e5Sespie    Don't use bit-field instructions;
34*c87b03e5Sespie    FPU is 32381;
35*c87b03e5Sespie    Use multiply-add instructions */
36*c87b03e5Sespie 
37*c87b03e5Sespie #undef TARGET_DEFAULT
38*c87b03e5Sespie #define TARGET_DEFAULT \
39*c87b03e5Sespie   (MASK_32532 | MASK_NO_SB | MASK_NO_BITFIELD | \
40*c87b03e5Sespie    MASK_32381 | MASK_IEEE_COMPARE | MASK_MULT_ADD)
41*c87b03e5Sespie 
42*c87b03e5Sespie /* 32-bit alignment for efficiency */
43*c87b03e5Sespie 
44*c87b03e5Sespie #undef POINTER_BOUNDARY
45*c87b03e5Sespie #define POINTER_BOUNDARY 32
46*c87b03e5Sespie 
47*c87b03e5Sespie /* 32-bit alignment for efficiency */
48*c87b03e5Sespie 
49*c87b03e5Sespie #undef FUNCTION_BOUNDARY
50*c87b03e5Sespie #define FUNCTION_BOUNDARY 32
51*c87b03e5Sespie 
52*c87b03e5Sespie /* 32532 spec says it can handle any alignment.  Rumor from tm-ns32k.h
53*c87b03e5Sespie    tells this might not be actually true (but it's for 32032, perhaps
54*c87b03e5Sespie    National has fixed the bug for 32532).  You might have to change this
55*c87b03e5Sespie    if the bug still exists. */
56*c87b03e5Sespie 
57*c87b03e5Sespie #undef STRICT_ALIGNMENT
58*c87b03e5Sespie #define STRICT_ALIGNMENT 0
59*c87b03e5Sespie 
60*c87b03e5Sespie /* Use pc relative addressing whenever possible,
61*c87b03e5Sespie    it's more efficient than absolute (ns32k.c)
62*c87b03e5Sespie    You have to fix a bug in gas 1.38.1 to make this work with gas,
63*c87b03e5Sespie    patch available from jkp@cs.hut.fi.
64*c87b03e5Sespie    (NetBSD's gas version has this patch already applied) */
65*c87b03e5Sespie 
66*c87b03e5Sespie #define PC_RELATIVE
67*c87b03e5Sespie 
68*c87b03e5Sespie /* Operand of bsr or jsr should be just the address.  */
69*c87b03e5Sespie 
70*c87b03e5Sespie #define CALL_MEMREF_IMPLICIT
71*c87b03e5Sespie 
72*c87b03e5Sespie /* movd insns may have floating point constant operands.  */
73*c87b03e5Sespie 
74*c87b03e5Sespie #define MOVD_FLOAT_OK
75*c87b03e5Sespie 
76*c87b03e5Sespie /* Define a CPP_SPEC appropriate for NetBSD.  */
77*c87b03e5Sespie 
78*c87b03e5Sespie #undef CPP_SPEC
79*c87b03e5Sespie #define CPP_SPEC NETBSD_CPP_SPEC
80*c87b03e5Sespie 
81*c87b03e5Sespie /* Make gcc agree with <machine/ansi.h> */
82*c87b03e5Sespie 
83*c87b03e5Sespie #undef SIZE_TYPE
84*c87b03e5Sespie #define SIZE_TYPE "unsigned int"
85*c87b03e5Sespie 
86*c87b03e5Sespie #undef PTRDIFF_TYPE
87*c87b03e5Sespie #define PTRDIFF_TYPE "int"
88*c87b03e5Sespie 
89*c87b03e5Sespie /* This is BSD, so it wants DBX format.  */
90*c87b03e5Sespie 
91*c87b03e5Sespie #define DBX_DEBUGGING_INFO 1
92*c87b03e5Sespie 
93*c87b03e5Sespie /* Do not break .stabs pseudos into continuations.  */
94*c87b03e5Sespie 
95*c87b03e5Sespie #define DBX_CONTIN_LENGTH 0
96*c87b03e5Sespie 
97*c87b03e5Sespie /* This is the char to use for continuation (in case we need to turn
98*c87b03e5Sespie    continuation back on).  */
99*c87b03e5Sespie 
100*c87b03e5Sespie #define DBX_CONTIN_CHAR '?'
101*c87b03e5Sespie 
102*c87b03e5Sespie /* Don't default to pcc-struct-return, because gcc is the only compiler, and
103*c87b03e5Sespie    we want to retain compatibility with older gcc versions.  */
104*c87b03e5Sespie 
105*c87b03e5Sespie #undef PCC_STATIC_STRUCT_RETURN
106*c87b03e5Sespie #define DEFAULT_PCC_STRUCT_RETURN 0
107*c87b03e5Sespie 
108*c87b03e5Sespie /* Until they use ELF or something that handles dwarf2 unwinds
109*c87b03e5Sespie    and initialization stuff better.  */
110*c87b03e5Sespie #define DWARF2_UNWIND_INFO 0
111