Commit | Line | Data |
---|---|---|
3e5b698e | 1 | /* machine description file for IBM S390 in 64-bit mode |
6a321bbc GM |
2 | |
3 | Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 | |
4 | Free Software Foundation, Inc. | |
3e5b698e RS |
5 | |
6 | This file is part of GNU Emacs. | |
7 | ||
eb3d11ef | 8 | GNU Emacs is free software: you can redistribute it and/or modify |
3e5b698e | 9 | it under the terms of the GNU General Public License as published by |
eb3d11ef GM |
10 | the Free Software Foundation, either version 3 of the License, or |
11 | (at your option) any later version. | |
3e5b698e RS |
12 | |
13 | GNU Emacs is distributed in the hope that it will be useful, | |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | GNU General Public License for more details. | |
17 | ||
18 | You should have received a copy of the GNU General Public License | |
eb3d11ef | 19 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
3e5b698e RS |
20 | |
21 | /* This file was made by copying the significant parts of amdx86-64.h | |
22 | into ibms390.h. */ | |
23 | ||
0c99c597 | 24 | /* Used for machine IBM s390 64 bits with opsys gnu-linux. */ |
3e5b698e RS |
25 | #define BITS_PER_LONG 64 |
26 | #define BITS_PER_EMACS_INT 64 | |
27 | ||
22e9fe24 | 28 | /* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word |
3e5b698e | 29 | is the most significant byte. */ |
3e5b698e RS |
30 | #define WORDS_BIG_ENDIAN |
31 | ||
3e5b698e RS |
32 | /* Define the type to use. */ |
33 | #define EMACS_INT long | |
34 | #define EMACS_UINT unsigned long | |
3e5b698e RS |
35 | |
36 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | |
37 | the 24-bit bit field into an int. In other words, if bit fields | |
38 | are always unsigned. | |
39 | ||
6e5cb96f | 40 | This flag only matters if you use USE_LISP_UNION_TYPE. */ |
3e5b698e RS |
41 | #undef EXPLICIT_SIGN_EXTEND |
42 | ||
43 | /* Data type of load average, as read out of kmem. */ | |
3e5b698e RS |
44 | #define LOAD_AVE_TYPE long |
45 | ||
46 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | |
3e5b698e RS |
47 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) |
48 | ||
3e5b698e RS |
49 | /* Define VIRT_ADDR_VARIES if the virtual addresses of |
50 | pure and impure space as loaded can vary, and even their | |
51 | relative order cannot be relied on. | |
52 | ||
53 | Otherwise Emacs assumes that text space precedes data space, | |
54 | numerically. */ | |
3e5b698e RS |
55 | #define VIRT_ADDR_VARIES |
56 | ||
99dfbaf1 GM |
57 | /* Define HAVE_ALLOCA to say that the system provides a properly |
58 | working alloca function and it should be used. Undefine it if an | |
59 | assembler-language alloca in the file alloca.s should be used. */ | |
3e5b698e RS |
60 | #define HAVE_ALLOCA |
61 | ||
3e5b698e | 62 | /* On the 64 bit architecture, we can use 60 bits for addresses */ |
3e5b698e RS |
63 | #define VALBITS 60 |
64 | ||
3e5b698e | 65 | /* Define XPNTR to avoid or'ing with DATA_SEG_BITS */ |
3e5b698e | 66 | #define XPNTR(a) XUINT (a) |
853e72d9 MB |
67 | |
68 | /* arch-tag: 4b87653c-6add-4663-8691-7d9dc17b5519 | |
69 | (do not change this comment) */ |