1*404b540aSrobert /* Definitions of target machine for GNU compiler, for a PDP with 2BSD 2*404b540aSrobert Copyright (C) 1995, 1996, 1999, 2000 Free Software Foundation, Inc. 3*404b540aSrobert Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). 4*404b540aSrobert 5*404b540aSrobert This file is part of GCC. 6*404b540aSrobert 7*404b540aSrobert GCC is free software; you can redistribute it and/or modify 8*404b540aSrobert it under the terms of the GNU General Public License as published by 9*404b540aSrobert the Free Software Foundation; either version 2, or (at your option) 10*404b540aSrobert any later version. 11*404b540aSrobert 12*404b540aSrobert GCC is distributed in the hope that it will be useful, 13*404b540aSrobert but WITHOUT ANY WARRANTY; without even the implied warranty of 14*404b540aSrobert MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*404b540aSrobert GNU General Public License for more details. 16*404b540aSrobert 17*404b540aSrobert You should have received a copy of the GNU General Public License 18*404b540aSrobert along with GCC; see the file COPYING. If not, write to 19*404b540aSrobert the Free Software Foundation, 51 Franklin Street, Fifth Floor, 20*404b540aSrobert Boston, MA 02110-1301, USA. */ 21*404b540aSrobert 22*404b540aSrobert #define TWO_BSD 23*404b540aSrobert 24*404b540aSrobert /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, 25*404b540aSrobert the stack pointer does not matter. The value is tested only in 26*404b540aSrobert functions that have frame pointers. 27*404b540aSrobert No definition is equivalent to always zero. */ 28*404b540aSrobert 29*404b540aSrobert #undef EXIT_IGNORE_STACK 30*404b540aSrobert #define EXIT_IGNORE_STACK 1 31*404b540aSrobert 32*404b540aSrobert #undef INITIAL_FRAME_POINTER_OFFSET 33*404b540aSrobert #define INITIAL_FRAME_POINTER_OFFSET(DEPTH_VAR) \ 34*404b540aSrobert { \ 35*404b540aSrobert int offset; \ 36*404b540aSrobert offset = get_frame_size(); \ 37*404b540aSrobert offset = (offset <= 2)? 0: (offset -2); \ 38*404b540aSrobert (DEPTH_VAR) = offset+10; \ 39*404b540aSrobert } 40*404b540aSrobert 41*404b540aSrobert /* Value should be nonzero if functions must have frame pointers. 42*404b540aSrobert Zero means the frame pointer need not be set up (and parms 43*404b540aSrobert may be accessed via the stack pointer) in functions that seem suitable. 44*404b540aSrobert This is computed in `reload', in reload1.c. 45*404b540aSrobert */ 46*404b540aSrobert 47*404b540aSrobert #undef FRAME_POINTER_REQUIRED 48*404b540aSrobert #define FRAME_POINTER_REQUIRED 1 49*404b540aSrobert 50*404b540aSrobert /* Offset within stack frame to start allocating local variables at. 51*404b540aSrobert If FRAME_GROWS_DOWNWARD, this is the offset to the END of the 52*404b540aSrobert first local allocated. Otherwise, it is the offset to the BEGINNING 53*404b540aSrobert of the first local allocated. */ 54*404b540aSrobert #undef STARTING_FRAME_OFFSET 55*404b540aSrobert #define STARTING_FRAME_OFFSET -8 56*404b540aSrobert 57*404b540aSrobert 58*404b540aSrobert #undef ASM_DECLARE_FUNCTION_NAME 59*404b540aSrobert #define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \ 60*404b540aSrobert do { \ 61*404b540aSrobert ASM_OUTPUT_LABEL (STREAM, NAME); \ 62*404b540aSrobert fprintf (STREAM, "~~%s:\n", NAME); \ 63*404b540aSrobert } while (0) 64*404b540aSrobert 65*404b540aSrobert #undef TARGET_UNIX_ASM_DEFAULT 66*404b540aSrobert #define TARGET_UNIX_ASM_DEFAULT MASK_UNIX_ASM 67