Subversion Repositories tendra.SVN

Rev

Rev 5 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
6 7u83 2
 * Copyright (c) 2002-2005 The TenDRA Project <http://www.tendra.org/>.
3
 * All rights reserved.
4
 *
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions are met:
7
 *
8
 * 1. Redistributions of source code must retain the above copyright notice,
9
 *    this list of conditions and the following disclaimer.
10
 * 2. Redistributions in binary form must reproduce the above copyright notice,
11
 *    this list of conditions and the following disclaimer in the documentation
12
 *    and/or other materials provided with the distribution.
13
 * 3. Neither the name of The TenDRA Project nor the names of its contributors
14
 *    may be used to endorse or promote products derived from this software
15
 *    without specific, prior written permission.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
18
 * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
19
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22
 * EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
24
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
27
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
 *
29
 * $Id$
30
 */
31
/*
2 7u83 32
    		 Crown Copyright (c) 1997
6 7u83 33
 
2 7u83 34
    This TenDRA(r) Computer Program is subject to Copyright
35
    owned by the United Kingdom Secretary of State for Defence
36
    acting through the Defence Evaluation and Research Agency
37
    (DERA).  It is made available to Recipients with a
38
    royalty-free licence for its use, reproduction, transfer
39
    to other parties and amendment for any purpose not excluding
40
    product development provided that any such use et cetera
41
    shall be deemed to be acceptance of the following conditions:-
6 7u83 42
 
2 7u83 43
        (1) Its Recipients shall ensure that this Notice is
44
        reproduced upon any copies or amended versions of it;
6 7u83 45
 
2 7u83 46
        (2) Any amended version of it shall be clearly marked to
47
        show both the nature of and the organisation responsible
48
        for the relevant amendment or amendments;
6 7u83 49
 
2 7u83 50
        (3) Its onward transfer from a recipient to another
51
        party shall be deemed to be that party's acceptance of
52
        these conditions;
6 7u83 53
 
2 7u83 54
        (4) DERA gives no warranty or assurance as to its
55
        quality or suitability for any purpose and DERA accepts
56
        no liability whatsoever in relation to any use to which
57
        it may be put.
58
*/
59
/*
60
			    VERSION INFORMATION
61
			    ===================
62
 
63
--------------------------------------------------------------------------
64
$Header: /u/g/release/CVSROOT/Source/src/installers/680x0/sunos/config.h,v 1.2 1998/03/16 11:25:19 release Exp $
65
--------------------------------------------------------------------------
66
$Log: config.h,v $
67
 * Revision 1.2  1998/03/16  11:25:19  release
68
 * Modifications prior to version 4.1.2.
69
 *
70
 * Revision 1.1.1.1  1998/01/17  15:55:50  release
71
 * First version to be checked into rolling release.
72
 *
73
Revision 1.2  1997/10/29 10:22:11  ma
74
Replaced use_alloca with has_alloca.
75
 
76
Revision 1.1.1.1  1997/10/13 12:42:49  ma
77
First version.
78
 
79
Revision 1.5  1997/10/13 08:49:21  ma
80
Made all pl_tests for general proc & exception handling pass.
81
 
82
Revision 1.4  1997/06/18 12:04:51  ma
83
Merged with Input Baseline changes.
84
 
85
Revision 1.3  1997/04/20 11:30:22  ma
86
Introduced gcproc.c & general_proc.[ch].
87
Added cases for apply_general_proc next to apply_proc in all files.
88
 
89
Revision 1.2  1997/03/20 12:50:00  ma
90
Removed #if 0 and #endif around used definitions.
91
 
92
Revision 1.1.1.1  1997/03/14 07:50:11  ma
93
Imported from DRA
94
 
95
 * Revision 1.1.1.1  1996/09/20  10:56:53  john
96
 *
97
 * Revision 1.2  1996/07/05  14:19:05  john
98
 * Changes for spec 3.1
99
 *
100
 * Revision 1.1.1.1  1996/03/26  15:45:10  john
101
 *
102
 * Revision 1.7  94/11/16  10:36:26  10:36:26  ra (Robert Andrews)
103
 * Added support for complex numbers.
6 7u83 104
 *
2 7u83 105
 * Revision 1.6  94/11/08  11:22:40  11:22:40  ra (Robert Andrews)
106
 * Added constants for cases optimisation.
6 7u83 107
 *
2 7u83 108
 * Revision 1.5  94/06/29  14:19:50  14:19:50  ra (Robert Andrews)
109
 * Added flags for common installer section options.
6 7u83 110
 *
2 7u83 111
 * Revision 1.4  94/02/21  15:57:45  15:57:45  ra (Robert Andrews)
112
 * Move prototype information to compiler.h.
6 7u83 113
 *
2 7u83 114
 * Revision 1.3  93/11/19  16:17:44  16:17:44  ra (Robert Andrews)
115
 * Now never use alloca.  Added has64bits (false).
6 7u83 116
 *
2 7u83 117
 * Revision 1.2  93/05/24  15:55:49  15:55:49  ra (Robert Andrews)
118
 * Declare check_anyway.
6 7u83 119
 *
2 7u83 120
 * Revision 1.1  93/02/22  17:15:29  17:15:29  ra (Robert Andrews)
121
 * Initial revision
6 7u83 122
 *
2 7u83 123
--------------------------------------------------------------------------
124
*/
125
 
126
 
127
/*
128
    CONFIGURATION FILE
129
 
130
    This file contains the basic information required by all files and
131
    the macros controlling the selection of target-dependent optimizations.
132
*/
133
 
134
#ifndef CONFIG_INCLUDED
135
#define CONFIG_INCLUDED
136
 
137
 
138
/*
139
    DEFINE BASIC TYPES
140
*/
141
 
142
#include "ossg_api.h"
143
#include "ossg.h"
144
 
145
#ifndef FS_LITTLE_ENDIAN
146
#define FS_LITTLE_ENDIAN 0
147
#endif
148
 
6 7u83 149
typedef unsigned long bitpattern;
2 7u83 150
 
151
#define null NULL
152
 
153
 
154
/*
155
    SHOULD WE USE ALLOCA?
156
*/
157
 
158
#define NO_ALLOCA
159
 
160
 
161
/*
162
    DECLARE ERROR REPORTING FUNCTIONS
163
 
164
    These functions are defined in utility.c.
165
*/
166
 
6 7u83 167
extern void error(char *, ...);
168
extern void warning(char *, ...);
2 7u83 169
 
170
#ifdef EBUG
6 7u83 171
#define debug_warning(X)	warning(X)
2 7u83 172
#else
6 7u83 173
#define debug_warning(X)
2 7u83 174
#endif
175
 
176
 
177
/*
178
   DEFINE MACHINE TYPE
6 7u83 179
 
2 7u83 180
   It's a 68000, it isn't anything else.
181
*/
182
 
6 7u83 183
#define SUN
184
#define is68000			1
185
#define is80x86			0
186
#define ismips			0
187
#define ispower			0
188
#define issco			0
189
#define issparc			0
190
#define isvax			0
191
#define isAlpha			0
2 7u83 192
 
193
 
194
/*
195
    DEFINE COMPILATION OPTIONS
196
*/
197
 
6 7u83 198
#define check_shape		1	/* Check shape-correctness */
199
#define convert_floats		1	/* Convert floating constants */
200
#define dont_unpad_apply	1	/* Careful with procedure results */
201
#define dynamic_diag_test	1	/* Test diagnostics format */
202
#define has_byte_ops		1	/* Do have byte opertions */
203
#define has_byte_regs		1	/* Do have byte registers */
204
#define has_neg_shift		0	/* Don't have negative shifts */
205
#define has_setcc		0	/* Don't use scc */
206
#define has64bits		0	/* Doesn't have 64 bits */
207
#define have_diagnostics	0	/* Have diagnostics */
208
#define little_end		0	/* Big endian */
209
#define load_ptr_pars		1	/* Inline ptr parameters */
210
#define no_bitfield_ops		1	/* Do have bitfield operations */
211
#define only_inline_static	1	/* Only inline static procedures */
212
#define only_lengthen_ops	0	/* Don't avoid byte registers */
2 7u83 213
#ifdef SUN
6 7u83 214
#define promote_pars		1	/* Parameters are 32 bit */
2 7u83 215
#endif
6 7u83 216
#define no_trap_on_nil_contents	1	/* Let common code detect nil access */
217
#define remove_zero_offsets	1	/* Do remove zero offsets */
218
#define replace_compound	1	/* Replace compounds by externals */
219
#define shift_is_byte		0	/* Shift count is not 8-bit */
220
#define special_fns		1	/* Do look for special functions */
221
#define substitute_params	1	/* Do substitute parameters */
222
#define temp_mips		0	/* Don't need a mips hack */
223
#define use_long_double		0	/* Not yet anyway */
224
#define div0_implemented	1	/* div0 and rem0 implemented */
225
#define remove_unused_counters	0	/* for foralls optimisation */
226
#define remove_unused_index_counters\
2 7u83 227
 
6 7u83 228
#define good_index_factor( f )	0	/* for foralls optimisation */
229
#define good_pointer_factor(f)\
230
				((f) != 1 && (f) != 2 && \
231
				 (f) != 4 && (f) != 8)
232
#define jump_table_density	10	/* for cases optimisation */
233
#define non_default_entries	4	/* for cases optimisation */
234
#define non_default_destinations\
2 7u83 235
				2	/* for cases optimisation */
6 7u83 236
#define substitute_complex	1	/* don't have native complex numbers */
2 7u83 237
 
238
 
239
/*
240
    HACKS FOR CROSS-COMPILATION
241
 
242
    Some routines are target-dependent and may not work properly when
243
    cross-compiling.  This section should take care of this.
244
*/
245
 
246
#ifdef CROSS_COMPILE
6 7u83 247
#undef convert_floats
248
#define convert_floats		0	/* Just to be on the safe side */
2 7u83 249
#endif
250
 
251
#ifdef SUN /* The SunOS 68k assembler whinges about align directives */
252
#define no_align_directives
253
#endif
254
 
255
 
256
/*
257
    EXTRA TAGS
258
 
259
    These are target-specific tags.  Strictly speaking they belong in
260
    tags.h.
261
*/
262
 
6 7u83 263
#define dummy_tag		100
264
#define internal_tag		101
265
#define regpair_tag		102
2 7u83 266
 
267
 
268
/*
269
    LONG INTEGER LITERALS
270
 
271
    Some compilers don't understand 0L etc.
272
*/
273
 
274
#ifdef __STDC__
6 7u83 275
#define L0			0L
276
#define L1			1L
277
#define L2			2L
278
#define L3			3L
279
#define L4			4L
280
#define L5			5L
281
#define L6			6L
282
#define L7			7L
283
#define L8			8L
284
#define L9			9L
285
#define L10			10L
286
#define L16			16L
287
#define L32			32L
288
#define L64			64L
289
#define L65536			65536L
290
#define L21474836478		21474836478L
291
#define L_1			 - 1L
2 7u83 292
#else
6 7u83 293
#define L0			((long)0)
294
#define L1			((long)1)
295
#define L2			((long)2)
296
#define L3			((long)3)
297
#define L4			((long)4)
298
#define L5			((long)5)
299
#define L6			((long)6)
300
#define L7			((long)7)
301
#define L8			((long)8)
302
#define L9			((long)9)
303
#define L10			((long)10)
304
#define L16			((long)16)
305
#define L32			((long)32)
306
#define L64			((long)64)
307
#define L65536			((long)65536)
308
#define L21474836478		((long)21474836478)
309
#define L_1			((long) - 1)
2 7u83 310
#endif
311
 
312
#define HAS_MAGIC		1
313
#define substitute_complex	1
314
 
315
 
316
#endif