]> gcc.gnu.org Git - gcc.git/blame - gcc/hwint.h
configure.in (sparc-*-solaris2*): Disable 32-to-64 cross compilation for solaris...
[gcc.git] / gcc / hwint.h
CommitLineData
cce4a958
KG
1/* HOST_WIDE_INT definitions for the GNU compiler.
2 Copyright (C) 1998 Free Software Foundation, Inc.
3
4 This file is part of GNU CC.
5
6 Provide definitions for macros which depend on HOST_BITS_PER_INT
7 and HOST_BITS_PER_LONG. */
8
9#ifndef __HWINT_H__
10#define __HWINT_H__
11
12/* Only do all of this if both of these macros are defined, otherwise
13 they'll evaluate to zero, which is not what you want. */
14#if defined (HOST_BITS_PER_LONG) && defined (HOST_BITS_PER_INT)
15
16/* Find the largest host integer type and set its size and type. */
17
18#ifndef HOST_BITS_PER_WIDE_INT
19
20# if HOST_BITS_PER_LONG > HOST_BITS_PER_INT
21# define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONG
22# define HOST_WIDE_INT long
23# else
24# define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_INT
25# define HOST_WIDE_INT int
26# endif
27
28#endif /* ! HOST_BITS_PER_WIDE_INT */
29
30
31/* Provide defaults for the way to print a HOST_WIDE_INT
32 in various manners. */
33
34#ifndef HOST_WIDE_INT_PRINT_DEC
35# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT
36# define HOST_WIDE_INT_PRINT_DEC "%d"
37# else
38# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
39# define HOST_WIDE_INT_PRINT_DEC "%ld"
40# else
41# define HOST_WIDE_INT_PRINT_DEC "%lld"
42# endif
43# endif
44#endif /* ! HOST_WIDE_INT_PRINT_DEC */
45
46#ifndef HOST_WIDE_INT_PRINT_UNSIGNED
47# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT
48# define HOST_WIDE_INT_PRINT_UNSIGNED "%u"
49# else
50# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
51# define HOST_WIDE_INT_PRINT_UNSIGNED "%lu"
52# else
53# define HOST_WIDE_INT_PRINT_UNSIGNED "%llu"
54# endif
55# endif
56#endif /* ! HOST_WIDE_INT_PRINT_UNSIGNED */
57
58#ifndef HOST_WIDE_INT_PRINT_HEX
59# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT
60# define HOST_WIDE_INT_PRINT_HEX "0x%x"
61# else
62# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
63# define HOST_WIDE_INT_PRINT_HEX "0x%lx"
64# else
65# define HOST_WIDE_INT_PRINT_HEX "0x%llx"
66# endif
67# endif
68#endif /* ! HOST_WIDE_INT_PRINT_HEX */
69
70#ifndef HOST_WIDE_INT_PRINT_DOUBLE_HEX
71# if HOST_BITS_PER_WIDE_INT == 64
72# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT
73# define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%x%016x"
74# else
75# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
76# define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%016lx"
77# else
78# define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%llx%016llx"
79# endif
80# endif
81# else
82# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT
83# define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%x%08x"
84# else
85# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
86# define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%08lx"
87# else
88# define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%llx%08llx"
89# endif
90# endif
91# endif
92#endif /* ! HOST_WIDE_INT_PRINT_DOUBLE_HEX */
93
94#endif /* HOST_BITS_PER_LONG && HOST_BITS_PER_INT */
95
96#endif /* __HWINT_H__ */
This page took 0.487719 seconds and 5 git commands to generate.