]>
Commit | Line | Data |
---|---|---|
89e6da44 | 1 | /* Configuration file for an m68k OpenBSD target. |
eb0424da | 2 | Copyright (C) 1999, 2002 Free Software Foundation, Inc. |
89e6da44 ME |
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 | ||
f8bc3f3a | 36 | /* Run-time target specifications. */ |
2b57e919 | 37 | #define CPP_PREDEFINES "-D__unix__ -D__m68k__ -D__mc68000__ -D__mc68020__ -D__OpenBSD__ -Asystem=unix -Asystem=OpenBSD -Acpu=m68k -Amachine=m68k" |
89e6da44 | 38 | |
f8bc3f3a JL |
39 | /* m68k as needs to know about the processor subtype. */ |
40 | #undef ASM_SPEC | |
89e6da44 | 41 | #define ASM_SPEC "%| %{m68030} %{m68040} %{m68060} %{fpic:-k} %{fPIC:-k -K}" |
89e6da44 ME |
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. */ | |
23532de9 | 66 | #define DBX_DEBUGGING_INFO 1 |
89e6da44 ME |
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 | ||
eb0424da | 89 | /* TODO: TARGET_ASM_OUTPUT_MI_THUNK is busted. I need to figure out |
89e6da44 ME |
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. */ | |
eb0424da | 98 | #define TARGET_ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \ |
89e6da44 ME |
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 |