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