comparison src/m/gec63.h @ 456:c0335c02f1d7

Initial revision
author Jim Blandy <jimb@redhat.com>
date Fri, 13 Dec 1991 18:49:49 +0000
parents
children 1ffd52c765c7
comparison
equal deleted inserted replaced
455:12af79cf16ee 456:c0335c02f1d7
1 /* machine description file for gec63
2 Copyright (C) 1986 Free Software Foundation, Inc.
3
4 This file is part of GNU Emacs.
5
6 GNU Emacs 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 1, or (at your option)
9 any later version.
10
11 GNU Emacs 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 Emacs; see the file COPYING. If not, write to
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20
21 /* The following line tells the configuration script what sort of
22 operating system this machine is likely to run.
23 USUAL-OPSYS="usg5-2" */
24
25 /* The following three symbols give information on
26 the size of various data types. */
27
28 #define SHORTBITS 16 /* Number of bits in a short */
29
30 #define INTBITS 32 /* Number of bits in an int */
31
32 #define LONGBITS 32 /* Number of bits in a long */
33
34 /* GEC63 is big-endian: lowest numbered byte is most significant. */
35
36 #define BIG_ENDIAN
37
38 /* Define how to take a char and sign-extend into an int.
39 On machines where char is signed, this is a no-op. */
40
41 #define SIGN_EXTEND_CHAR(c) (((c)<<24)>>24)
42
43 /* Say this machine is a 68000 */
44
45 #define gec63
46
47 /* Use an int to represent Lisp_Object */
48
49 #define NO_UNION_TYPE
50
51 /* GEC63 has alloca in the PW/ux63 library. */
52 #define LIB_STANDARD -lPW -lc
53 #define HAVE_ALLOCA
54
55 /* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT
56 since there is no /dev/kmem */
57
58 #undef ADDR_CORRECT(x)
59 #define NO_ARG_ARRAY
60
61 #undef TERMCAP
62 #define TERMINFO
63
64 /* Define sizes of portions of a Lisp_Object. */
65 #define VALBITS 22
66 #define GCTYPEBITS 5
67
68 #define VALAMASK (((1<<VALBITS) - 1)| 0xF0000000L)
69
70 #define XTYPE(a) ((enum Lisp_Type) (((a) >> VALBITS) & GCTYPEMASK))
71 #define XSETTYPE(a, b) ((a) = ((a) & VALAMASK) + ((int)(b) << VALBITS))
72
73 #define XPNTR(a) ((a) & VALAMASK)
74 #define XSETPNTR(a, b) ((a) = ((a) & ~VALAMASK) + ((b) & VALAMASK))
75
76 #define XSET(var, type, ptr) \
77 ((var) = ((int)(type) << VALBITS) + ((int) (ptr) & VALAMASK))
78
79 /* Move some garbage-collector flag bits to different bit positions. */
80 #define ARRAY_MARK_FLAG (1 << 27)
81 #define DONT_COPY_FLAG (1 << 26)
82
83 #define NO_REMAP