Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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