]>
Commit | Line | Data |
---|---|---|
6b940b39 JL |
1 | /* Definitions of target machine for GNU compiler, for HPs using the |
2 | 64bit runtime model. | |
2f83c7d6 | 3 | Copyright (C) 1999, 2000, 2003, 2004, 2007 Free Software Foundation, Inc. |
6b940b39 | 4 | |
b7849684 | 5 | This file is part of GCC. |
6b940b39 | 6 | |
b7849684 | 7 | GCC is free software; you can redistribute it and/or modify |
6b940b39 | 8 | it under the terms of the GNU General Public License as published by |
2f83c7d6 | 9 | the Free Software Foundation; either version 3, or (at your option) |
6b940b39 JL |
10 | any later version. |
11 | ||
b7849684 | 12 | GCC is distributed in the hope that it will be useful, |
6b940b39 JL |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | GNU General Public License for more details. | |
16 | ||
17 | You should have received a copy of the GNU General Public License | |
2f83c7d6 NC |
18 | along with GCC; see the file COPYING3. If not see |
19 | <http://www.gnu.org/licenses/>. */ | |
6b940b39 | 20 | |
6b940b39 JL |
21 | /* The default sizes for basic datatypes provided by GCC are not |
22 | correct for the PA64 runtime architecture. | |
23 | ||
24 | In PA64, basic types have the following sizes | |
25 | ||
26 | char 1 byte | |
27 | short 2 bytes | |
28 | int 4 bytes | |
29 | long 8 bytes | |
30 | long long 8 bytes | |
31 | pointer 8 bytes | |
32 | float 4 bytes | |
33 | double 8 bytes | |
34 | long double 16 bytes | |
35 | size_t 8 bytes | |
36 | ptrdiff_t 8 bytes | |
37 | wchar 4 bytes | |
38 | ||
39 | Make GCC agree with types.h. */ | |
40 | #undef SIZE_TYPE | |
6b940b39 | 41 | #define SIZE_TYPE "long unsigned int" |
38010927 AM |
42 | |
43 | #undef PTRDIFF_TYPE | |
6b940b39 JL |
44 | #define PTRDIFF_TYPE "long int" |
45 | ||
38010927 AM |
46 | #undef WCHAR_TYPE |
47 | #define WCHAR_TYPE "unsigned int" | |
48 | ||
49 | #undef WCHAR_TYPE_SIZE | |
50 | #define WCHAR_TYPE_SIZE 32 | |
51 | ||
6b940b39 | 52 | /* If it is not listed here, then the default selected by GCC is OK. */ |
b73bff7e | 53 | #undef SHORT_TYPE_SIZE |
6b940b39 | 54 | #define SHORT_TYPE_SIZE 16 |
b73bff7e | 55 | #undef INT_TYPE_SIZE |
6b940b39 | 56 | #define INT_TYPE_SIZE 32 |
b73bff7e | 57 | #undef LONG_TYPE_SIZE |
6b940b39 | 58 | #define LONG_TYPE_SIZE 64 |
b73bff7e | 59 | #undef LONG_LONG_TYPE_SIZE |
6b940b39 | 60 | #define LONG_LONG_TYPE_SIZE 64 |
b73bff7e | 61 | #undef FLOAT_TYPE_SIZE |
6b940b39 | 62 | #define FLOAT_TYPE_SIZE 32 |
b73bff7e | 63 | #undef DOUBLE_TYPE_SIZE |
6b940b39 | 64 | #define DOUBLE_TYPE_SIZE 64 |
6b940b39 | 65 | #undef LONG_DOUBLE_TYPE_SIZE |
015b1ad1 | 66 | #define LONG_DOUBLE_TYPE_SIZE 128 |
6b940b39 | 67 | |
6b940b39 JL |
68 | /* Temporary until we figure out what to do with those *(&@$ 32bit |
69 | relocs which appear in stabs. */ | |
70 | #undef DBX_DEBUGGING_INFO | |
71 | ||
6b940b39 JL |
72 | /* ?!? This needs to be made compile-time selectable. |
73 | ||
74 | The PA64 runtime model has arguments that grow to higher addresses | |
75 | (like most other targets). The older runtime model has arguments | |
76 | that grow to lower addresses. What fun. */ | |
77 | #undef ARGS_GROW_DOWNWARD | |
6b940b39 | 78 | |
9dff28ab JDA |
79 | /* If defined, a C expression which determines whether the default |
80 | implementation of va_arg will attempt to pad down before reading the | |
81 | next argument, if that argument is smaller than its aligned space as | |
82 | controlled by PARM_BOUNDARY. If this macro is not defined, all such | |
83 | arguments are padded down when BYTES_BIG_ENDIAN is true. We don't | |
c1207243 | 84 | want aggregates padded down. */ |
9dff28ab JDA |
85 | |
86 | #define PAD_VARARGS_DOWN (!AGGREGATE_TYPE_P (type)) |