8836
|
1 /* machine description file For the alpha chip.
|
64767
|
2 Copyright (C) 1994, 1997, 1999, 2002, 2003, 2004,
|
68651
|
3 2005, 2006 Free Software Foundation, Inc.
|
8836
|
4
|
|
5 This file is part of GNU Emacs.
|
|
6
|
|
7 GNU Emacs is free software; you can redistribute it and/or modify
|
|
8 it under the terms of the GNU General Public License as published by
|
|
9 the Free Software Foundation; either version 1, or (at your option)
|
|
10 any later version.
|
|
11
|
|
12 GNU Emacs is distributed in the hope that it will be useful,
|
|
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15 GNU General Public License for more details.
|
|
16
|
|
17 You should have received a copy of the GNU General Public License
|
|
18 along with GNU Emacs; see the file COPYING. If not, write to
|
64083
|
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
20 Boston, MA 02110-1301, USA. */
|
8836
|
21
|
|
22
|
49600
|
23 /* The following line tells the configuration script what sort of
|
8836
|
24 operating system this machine is likely to run.
|
|
25 USUAL-OPSYS="note"
|
|
26
|
|
27 NOTE-START
|
|
28 Use -opsystem=osf1
|
|
29 NOTE-END
|
|
30
|
|
31 */
|
|
32
|
28647
|
33 #ifndef _LP64
|
29912
|
34 #define _LP64 /* This doesn't appear to be necessary
|
|
35 on OSF 4/5 -- fx. */
|
28647
|
36 #endif
|
8836
|
37
|
9095
23f72b18b420
(WORDS_BIG_ENDIAN): define or undef appropriately, superseding BIG_ENDIAN.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
38 /* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
|
23f72b18b420
(WORDS_BIG_ENDIAN): define or undef appropriately, superseding BIG_ENDIAN.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
39 is the most significant byte. */
|
23f72b18b420
(WORDS_BIG_ENDIAN): define or undef appropriately, superseding BIG_ENDIAN.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
40
|
23f72b18b420
(WORDS_BIG_ENDIAN): define or undef appropriately, superseding BIG_ENDIAN.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
41 #undef WORDS_BIG_ENDIAN
|
23f72b18b420
(WORDS_BIG_ENDIAN): define or undef appropriately, superseding BIG_ENDIAN.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
42
|
8836
|
43 /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
|
|
44 * group of arguments and treat it as an array of the arguments. */
|
|
45
|
|
46 #define NO_ARG_ARRAY
|
|
47
|
|
48 /* Now define a symbol for the cpu type, if your compiler
|
|
49 does not define it automatically:
|
|
50 Ones defined so far include vax, m68000, ns16000, pyramid,
|
|
51 orion, tahoe, APOLLO and many others */
|
|
52
|
|
53 /* __alpha defined automatically */
|
|
54
|
|
55
|
|
56 /* Use type EMACS_INT rather than a union, to represent Lisp_Object */
|
|
57 /* This is desirable for most machines. */
|
|
58 #define NO_UNION_TYPE
|
|
59
|
|
60 /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
|
|
61 the 24-bit bit field into an int. In other words, if bit fields
|
|
62 are always unsigned.
|
|
63
|
|
64 If you use NO_UNION_TYPE, this flag does not matter. */
|
|
65
|
|
66 #define EXPLICIT_SIGN_EXTEND
|
|
67
|
|
68 /* Data type of load average, as read out of kmem. */
|
|
69
|
|
70 #define LOAD_AVE_TYPE long
|
|
71
|
|
72 /* Convert that into an integer that is 100 for a load average of 1.0 */
|
|
73
|
|
74 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
|
|
75
|
|
76 /* GNU malloc and the relocating allocator do not work together
|
11979
|
77 with X. [Who wrote that?] */
|
|
78
|
|
79 /* May 1995: reportedly [Rainer Schoepf <schoepf@uni-mainz.de>] both the
|
|
80 system and the gnu malloc system work with "alpha-dec-osf3.0" and
|
|
81 "alpha-dec-osf3.2". */
|
|
82
|
|
83 /* May 1995: it seems to me [Morten Welinder <terra@diku.dk>] that both
|
|
84 mallocs work with "alpha-dec-osf2.0", but I daren't break anything
|
|
85 right now. Feel free to play if you want. */
|
8836
|
86
|
12301
|
87 /* #define SYSTEM_MALLOC */
|
8836
|
88
|
15850
|
89 #ifdef __ELF__
|
|
90 /* With ELF, make sure that all common symbols get allocated to in the
|
|
91 data section. Otherwise, the dump of temacs may miss variables in
|
|
92 the shared library that have been initialized. For example, with
|
|
93 GNU libc, __malloc_initialized would normally be resolved to the
|
|
94 shared library's .bss section, which is fatal. */
|
|
95 # ifdef __GNUC__
|
|
96 # define C_SWITCH_MACHINE -fno-common
|
|
97 # else
|
|
98 # error What gives? Fix me if DEC Unix supports ELF now.
|
|
99 # endif
|
|
100 #endif
|
|
101
|
28647
|
102 #if defined(__OpenBSD__)
|
18101
|
103 #define ORDINARY_LINK
|
|
104 #endif
|
|
105
|
15851
|
106 #ifdef __ELF__
|
|
107 #undef UNEXEC
|
16119
|
108 #define UNEXEC unexelf.o
|
47512
|
109 #ifndef LINUX
|
46651
|
110 #define DATA_START 0x140000000
|
15851
|
111 #endif
|
47512
|
112 #endif
|
15851
|
113
|
15850
|
114 #ifndef __ELF__
|
|
115
|
8836
|
116 /* Describe layout of the address space in an executing process. */
|
|
117
|
|
118 #define TEXT_START 0x120000000
|
|
119 #define DATA_START 0x140000000
|
|
120
|
15850
|
121 /* The program to be used for unexec. */
|
|
122
|
|
123 #define UNEXEC unexalpha.o
|
|
124
|
|
125 #endif /* notdef __ELF__ */
|
|
126
|
|
127 #if defined (LINUX) && __GNU_LIBRARY__ - 0 < 6
|
13616
|
128 /* This controls a conditional in main. */
|
|
129 #define LINUX_SBRK_BUG
|
|
130 #endif
|
8836
|
131
|
15850
|
132 /* On the Alpha it's best to avoid including TERMIO since struct
|
|
133 termio and struct termios are mutually incompatible. */
|
12827
|
134 #define NO_TERMIO
|
|
135
|
20031
|
136 #if defined (LINUX) || defined (__NetBSD__) || defined (__OpenBSD__)
|
15850
|
137 # define TEXT_END ({ extern int _etext; &_etext; })
|
|
138 # ifndef __ELF__
|
|
139 # define COFF
|
|
140 # define DATA_END ({ extern int _EDATA; &_EDATA; })
|
|
141 # endif /* notdef __ELF__ */
|
12827
|
142 #endif
|
20031
|
143
|
|
144 #if (defined (__NetBSD__) || defined (__OpenBSD__)) && defined (__ELF__)
|
|
145 #define HAVE_TEXT_START
|
|
146 #endif
|
20201
|
147
|
|
148 /* Many Alpha implementations (e.g. gas 2.8) can't handle DBL_MIN:
|
|
149 they generate code that uses a signaling NaN instead of DBL_MIN.
|
|
150 Define DBL_MIN_REPLACEMENT to be the next value larger than DBL_MIN:
|
|
151 this avoids the assembler bug. */
|
|
152 #define DBL_MIN_REPLACEMENT 2.2250738585072019e-308
|
52401
|
153
|
|
154 /* arch-tag: 978cb578-1e25-4a60-819b-adae0972aa78
|
|
155 (do not change this comment) */
|