Set linker-related things with configure.
[bpt/emacs.git] / src / m / ibms390x.h
CommitLineData
3e5b698e 1/* machine description file for IBM S390 in 64-bit mode
6a321bbc
GM
2
3Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4 Free Software Foundation, Inc.
3e5b698e
RS
5
6This file is part of GNU Emacs.
7
eb3d11ef 8GNU Emacs is free software: you can redistribute it and/or modify
3e5b698e 9it under the terms of the GNU General Public License as published by
eb3d11ef
GM
10the Free Software Foundation, either version 3 of the License, or
11(at your option) any later version.
3e5b698e
RS
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
eb3d11ef 19along 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) */