OSDN Git Service

* config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
[pf3gnuchains/gcc-fork.git] / gcc / config / m68k / openbsd.h
1 /* Configuration file for an m68k OpenBSD target.
2    Copyright (C) 1999 Free Software Foundation, Inc.
3
4 This file is part of GNU CC.
5
6 GNU CC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 GNU CC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GNU CC; see the file COPYING.  If not, write to
18 the Free Software Foundation, 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.  */
20
21 /* m68k is an old configuration that does not yet use the TARGET_CPU_DEFAULT
22    framework.  */
23 #define TARGET_DEFAULT (MASK_BITFIELD | MASK_68881 | MASK_68020)
24
25 #include <m68k/m68k.h>
26
27 /* Get generic OpenBSD definitions.  */
28 #define OBSD_OLD_GAS
29 #include <openbsd.h>
30
31 /* Define __HAVE_68881__ in preprocessor, unless -msoft-float is specified.
32    This will control the use of inline 68881 insns in certain macros.  */
33 #undef CPP_SPEC
34 #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__ -D__HAVE_FPU__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}"
35
36 /* Run-time target specifications.  */
37 #define CPP_PREDEFINES "-D__unix__ -D__m68k__ -D__mc68000__ -D__mc68020__ -D__OpenBSD__ -Asystem=unix -Asystem=OpenBSD -Acpu=m68k -Amachine=m68k"
38
39 /* m68k as needs to know about the processor subtype.  */
40 #undef ASM_SPEC
41 #define ASM_SPEC "%| %{m68030} %{m68040} %{m68060} %{fpic:-k} %{fPIC:-k -K}"
42
43 /* Layout of source language data types.  */
44
45 /* This must agree with <machine/ansi.h> */
46 #undef SIZE_TYPE
47 #define SIZE_TYPE "unsigned int"
48
49 #undef PTRDIFF_TYPE
50 #define PTRDIFF_TYPE "int"
51
52 #undef WCHAR_TYPE
53 #define WCHAR_TYPE "int"
54
55 #undef WCHAR_TYPE_SIZE
56 #define WCHAR_TYPE_SIZE 32
57
58 /* Storage layout.  */
59
60 /* Every structure or union's size must be a multiple of 2 bytes.  */
61 #define STRUCTURE_SIZE_BOUNDARY 16
62
63 /* Specific options for DBX Output.  */
64
65 /* This is BSD, so it wants DBX format.  */
66 #define DBX_DEBUGGING_INFO
67
68 /* Do not break .stabs pseudos into continuations.  */
69 #define DBX_CONTIN_LENGTH 0
70
71 /* This is the char to use for continuation (in case we need to turn
72    continuation back on).  */
73 #define DBX_CONTIN_CHAR '?'
74
75 /* Stack & calling: aggregate returns.  */
76
77 /* Don't default to pcc-struct-return, because gcc is the only compiler, and
78    we want to retain compatibility with older gcc versions.  */
79 #define DEFAULT_PCC_STRUCT_RETURN 0
80
81 /* Assembler format: exception region output.  */
82
83 /* All configurations that don't use elf must be explicit about not using
84    dwarf unwind information. egcs doesn't try too hard to check internal
85    configuration files...  */
86 #define DWARF2_UNWIND_INFO 0
87
88
89 /* TODO: ASM_OUTPUT_MI_THUNK is busted. I need to figure out 
90    what bra func@PLTPC means under linux, and find the corresponding 
91    construction for our gas/pic setup.  */
92 #if 0
93 /* Taken from linux.h. Processor dependent optimized code to handle C++
94    multiple inheritance vtable lookup.  */
95
96 /* Output code to add DELTA to the first argument, and then jump to FUNCTION.
97    Used for C++ multiple inheritance.  */
98 #define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION)        \
99 do {                                                                    \
100   if (DELTA > 0 && DELTA <= 8)                                          \
101     asm_fprintf (FILE, "\taddq.l %I%d,4(%Rsp)\n", DELTA);               \
102   else if (DELTA < 0 && DELTA >= -8)                                    \
103     asm_fprintf (FILE, "\tsubq.l %I%d,4(%Rsp)\n", -DELTA);              \
104   else                                                                  \
105     asm_fprintf (FILE, "\tadd.l %I%d,4(%Rsp)\n", DELTA);                \
106                                                                         \
107   if (flag_pic)                                                         \
108     {                                                                   \
109       fprintf (FILE, "\tbra.l ");                                       \
110       assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0));    \
111       fprintf (FILE, "@PLTPC\n");                                       \
112     }                                                                   \
113   else                                                                  \
114     {                                                                   \
115       fprintf (FILE, "\tjmp ");                                         \
116       assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0));    \
117       fprintf (FILE, "\n");                                             \
118     }                                                                   \
119 } while (0)
120 #endif
121