Trailing whitespace deleted.
[bpt/emacs.git] / src / m / mips-siemens.h
CommitLineData
bf40a97f 1/* m- file for Mips machines.
d8f6d720 2 Copyright (C) 1987, 1992, 1993, 1995, 2002 Free Software Foundation, Inc.
abf60cc4 3
bf40a97f
RS
4 This file contains some changes for our SVR4 based SINIX-Mips 5.4.
5 I hope this is helpful to port the emacs to our RM?00 series and
6 maybe to the DC/OSx (Mips-based) machines of Pyramid Inc.
7 (Marco.Walther@mch.sni.de)
abf60cc4 8
bf40a97f 9This file is part of GNU Emacs.
abf60cc4 10
bf40a97f
RS
11GNU Emacs is free software; you can redistribute it and/or modify
12it under the terms of the GNU General Public License as published by
13the Free Software Foundation; either version 2, or (at your option)
14any later version.
abf60cc4 15
bf40a97f
RS
16GNU Emacs is distributed in the hope that it will be useful,
17but WITHOUT ANY WARRANTY; without even the implied warranty of
18MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19GNU General Public License for more details.
20
21You should have received a copy of the GNU General Public License
22along with GNU Emacs; see the file COPYING. If not, write to
3b7ad313
EN
23the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24Boston, MA 02111-1307, USA. */
bf40a97f
RS
25
26
177c0ea7 27/* The following line tells the configuration script what sort of
bf40a97f
RS
28 operating system this machine is likely to run.
29 USUAL-OPSYS="note"
30
31NOTE-START
32Use m-mips4.h for RISCOS version 4; use s-bsd4-3.h with the BSD world.
33Note that the proper m- file for the Decstation is m-pmax.h.
34This is the m- file for SNI RM*00 machines. Use s- sinix5-4.h file!
35With this the file mips-siemens.h is obsolete.
36NOTE-END */
37
bf40a97f
RS
38/* Define BIG_ENDIAN iff lowest-numbered byte in a word
39 is the most significant byte. */
40
41#define BIG_ENDIAN
42
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. */
308f428d 45
48083859
RS
46#define NO_ARG_ARRAY
47
bf40a97f
RS
48/* Define WORD_MACHINE if addresses and such have
49 * to be corrected before they can be used as byte counts. */
50
51#undef WORD_MACHINE
52
53/* Define how to take a char and sign-extend into an int.
54 On machines where char is signed, this is a no-op. */
55
56#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
57
58/* Now define a symbol for the cpu type, if your compiler
59 does not define it automatically:
60 Ones defined so far include vax, m68000, ns16000, pyramid,
61 orion, tahoe, APOLLO and many others */
62#ifndef mips
63# define mips
64#endif
65
66/* Use type int rather than a union, to represent Lisp_Object */
67/* This is desirable for most machines. */
68
69#define NO_UNION_TYPE
70
71/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
72 the 24-bit bit field into an int. In other words, if bit fields
73 are always unsigned.
74
75 If you use NO_UNION_TYPE, this flag does not matter. */
76
77#define EXPLICIT_SIGN_EXTEND
78
79/* Data type of load average, as read out of kmem. */
80
81#define LOAD_AVE_TYPE long
82
83/* Convert that into an integer that is 100 for a load average of 1.0 */
84
85#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / 256.0)
48083859 86
bf40a97f
RS
87/* CDC EP/IX 1.4.3 uses /unix */
88
89#undef KERNEL_FILE
90#define KERNEL_FILE "/unix"
91
92/* Define CANNOT_DUMP on machines where unexec does not work.
93 Then the function dump-emacs will not be defined
94 and temacs will do (load "loadup") automatically unless told otherwise. */
95
96#undef CANNOT_DUMP
97
98/* Define VIRT_ADDR_VARIES if the virtual addresses of
99 pure and impure space as loaded can vary, and even their
100 relative order cannot be relied on.
101
102 Otherwise Emacs assumes that text space precedes data space,
103 numerically. */
104
105/* #define VIRT_ADDR_VARIES */
106
bf40a97f
RS
107/* Define NO_REMAP if memory segmentation makes it not work well
108 to change the boundary between the text section and data section
109 when Emacs is dumped. If you define this, the preloaded Lisp
110 code will not be sharable; but that's better than failing completely. */
111
112#define NO_REMAP
113
114/* Describe layout of the address space in an executing process. */
115/* MARCO ???
116*/
117#define TEXT_START 0x400000
118/*
119#define DATA_START 0x10000000
120#define DATA_SEG_BITS 0x10000000
121*/
122#ifdef UNEXEC
123#undef UNEXEC
124#endif
f7c9fad1 125#define UNEXEC unexsni.o
bf40a97f
RS
126
127#undef ORDINARY_LINK
128
129#undef LIBS_DEBUG
130
131/* Alter some of the options used when linking. */
132
133#define LIBS_MACHINE -lmld
134#define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o
135
136#ifdef LIB_STANDARD
137#undef LIB_STANDARD
138#endif
139#define LIB_STANDARD -lc /usr/ccs/lib/crtn.o
140
141#ifdef __GNUC__
142#define C_DEBUG_SWITCH
177c0ea7 143#define LD_SWITCH_MACHINE
bf40a97f
RS
144#else
145#define C_DEBUG_SWITCH -DSYSV
177c0ea7 146#define C_OPTIMIZE_SWITCH -DSYSV
bf40a97f
RS
147#define LD_SWITCH_MACHINE
148#endif
149
bf40a97f
RS
150\f
151/* The standard definitions of these macros would work ok,
152 but these are faster because the constants are short. */
153
5964b664 154#define XUINT(a) (((unsigned)(a) << (BITS_PER_INT-VALBITS)) >> (BITS_PER_INT-VALBITS))
bf40a97f
RS
155
156#define XSET(var, type, ptr) \
157 ((var) = \
158 ((int)(type) << VALBITS) \
5964b664 159 + (((unsigned) (ptr) << (BITS_PER_INT-VALBITS)) >> (BITS_PER_INT-VALBITS)))
bf40a97f 160
bf40a97f
RS
161#define XUNMARK(a) \
162 ((a) = \
5964b664
KH
163 (((unsigned)(a) << (BITS_PER_INT-GCTYPEBITS-VALBITS)) \
164 >> (BITS_PER_INT-GCTYPEBITS-VALBITS)))
ec2970a2 165