Mercurial > hg > CbC > CbC_gcc
annotate gcc/config/ia64/sysv4.h @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 1830386684a0 |
children |
rev | line source |
---|---|
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
1 /* Override definitions in elfos.h to be correct for IA64. |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
2 |
145 | 3 Copyright (C) 2000-2020 Free Software Foundation, Inc. |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
4 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
5 This file is part of GCC. |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
6 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
7 GCC is free software; you can redistribute it and/or modify it under |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
8 the terms of the GNU General Public License as published by the Free |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
9 Software Foundation; either version 3, or (at your option) any later |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
10 version. |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
11 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
15 for more details. |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
16 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
17 Under Section 7 of GPL version 3, you are granted additional |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
18 permissions described in the GCC Runtime Library Exception, version |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
19 3.1, as published by the Free Software Foundation. |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
20 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
21 You should have received a copy of the GNU General Public License and |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
22 a copy of the GCC Runtime Library Exception along with this program; |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
23 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
24 <http://www.gnu.org/licenses/>. */ |
0 | 25 |
26 #undef TARGET_INIT_LIBFUNCS | |
27 #define TARGET_INIT_LIBFUNCS ia64_sysv4_init_libfuncs | |
28 | |
29 /* We want DWARF2 as specified by the IA64 ABI. */ | |
30 #undef PREFERRED_DEBUGGING_TYPE | |
31 #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG | |
32 | |
33 /* Stabs does not work properly for 64-bit targets. */ | |
34 #undef DBX_DEBUGGING_INFO | |
35 | |
36 /* Various pseudo-ops for which the Intel assembler uses non-standard | |
37 definitions. */ | |
38 | |
39 #undef STRING_ASM_OP | |
40 #define STRING_ASM_OP "\tstringz\t" | |
41 | |
42 #undef SKIP_ASM_OP | |
43 #define SKIP_ASM_OP "\t.skip\t" | |
44 | |
45 #undef COMMON_ASM_OP | |
46 #define COMMON_ASM_OP "\t.common\t" | |
47 | |
48 #undef ASCII_DATA_ASM_OP | |
49 #define ASCII_DATA_ASM_OP "\tstring\t" | |
50 | |
51 /* ia64-specific options for gas | |
52 ??? ia64 gas doesn't accept standard svr4 assembler options? */ | |
53 #undef ASM_SPEC | |
54 #define ASM_SPEC "-x %{mconstant-gp} %{mauto-pic} %(asm_extra)" | |
55 | |
56 /* ??? Unfortunately, .lcomm doesn't work, because it puts things in either | |
57 .bss or .sbss, and we can't control the decision of which is used. When | |
58 I use .lcomm, I get a cryptic "Section group has no member" error from | |
59 the Intel simulator. So we must explicitly put variables in .bss | |
60 instead. This matters only if we care about the Intel assembler. */ | |
61 | |
62 /* This is asm_output_aligned_bss from varasm.c without the | |
63 (*targetm.asm_out.globalize_label) call at the beginning. */ | |
64 | |
65 /* This is for final.c, because it is used by ASM_DECLARE_OBJECT_NAME. */ | |
66 extern int size_directive_output; | |
67 | |
68 #undef ASM_OUTPUT_ALIGNED_LOCAL | |
69 #define ASM_OUTPUT_ALIGNED_DECL_LOCAL(FILE, DECL, NAME, SIZE, ALIGN) \ | |
70 do { \ | |
71 if ((DECL) && sdata_symbolic_operand (XEXP (DECL_RTL (DECL), 0), Pmode)) \ | |
72 switch_to_section (sbss_section); \ | |
73 else \ | |
74 switch_to_section (bss_section); \ | |
75 ASM_OUTPUT_ALIGN (FILE, floor_log2 ((ALIGN) / BITS_PER_UNIT)); \ | |
76 ASM_DECLARE_OBJECT_NAME (FILE, NAME, DECL); \ | |
77 ASM_OUTPUT_SKIP (FILE, SIZE ? SIZE : 1); \ | |
78 } while (0) | |
79 | |
80 /* The # tells the Intel assembler that this is not a register name. | |
81 However, we can't emit the # in a label definition, so we set a variable | |
82 in ASM_OUTPUT_LABEL to control whether we want the postfix here or not. | |
83 We append the # to the label name, but since NAME can be an expression | |
84 we have to scan it for a non-label character and insert the # there. */ | |
85 | |
86 #undef ASM_OUTPUT_LABELREF | |
87 #define ASM_OUTPUT_LABELREF(STREAM, NAME) \ | |
88 do { \ | |
89 const char *name_ = NAME; \ | |
90 if (*name_ == '*') \ | |
91 name_++; \ | |
92 else \ | |
93 fputs (user_label_prefix, STREAM); \ | |
94 fputs (name_, STREAM); \ | |
95 if (!ia64_asm_output_label) \ | |
96 fputc ('#', STREAM); \ | |
97 } while (0) | |
98 | |
99 /* Intel assembler requires both flags and type if declaring a non-predefined | |
100 section. */ | |
101 #undef INIT_SECTION_ASM_OP | |
102 #define INIT_SECTION_ASM_OP "\t.section\t.init,\"ax\",\"progbits\"" | |
103 #undef FINI_SECTION_ASM_OP | |
104 #define FINI_SECTION_ASM_OP "\t.section\t.fini,\"ax\",\"progbits\"" | |
105 | |
106 #define DBX_REGISTER_NUMBER(REGNO) \ | |
107 ia64_dbx_register_number(REGNO) | |
108 | |
109 #undef SIZE_TYPE | |
110 #define SIZE_TYPE "long unsigned int" | |
111 | |
112 #undef PTRDIFF_TYPE | |
113 #define PTRDIFF_TYPE "long int" | |
114 | |
115 #undef WCHAR_TYPE | |
116 #define WCHAR_TYPE "int" | |
117 | |
118 #undef WCHAR_TYPE_SIZE | |
119 #define WCHAR_TYPE_SIZE 32 | |
120 | |
121 /* We redefine this to use the ia64 .proc pseudo-op. */ | |
122 | |
123 #undef ASM_DECLARE_FUNCTION_NAME | |
124 #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
125 ia64_start_function(FILE,NAME,DECL) |
0 | 126 |
127 /* We redefine this to use the ia64 .endp pseudo-op. */ | |
128 | |
129 #undef ASM_DECLARE_FUNCTION_SIZE | |
130 #define ASM_DECLARE_FUNCTION_SIZE(FILE, NAME, DECL) \ | |
131 do { \ | |
132 fputs ("\t.endp ", FILE); \ | |
133 assemble_name (FILE, NAME); \ | |
134 fputc ('\n', FILE); \ | |
135 } while (0) | |
136 | |
137 /* Override default elf definition. */ | |
138 #undef TARGET_ASM_RELOC_RW_MASK | |
139 #define TARGET_ASM_RELOC_RW_MASK ia64_reloc_rw_mask | |
140 #undef TARGET_ASM_SELECT_RTX_SECTION | |
141 #define TARGET_ASM_SELECT_RTX_SECTION ia64_select_rtx_section | |
142 | |
143 #define SDATA_SECTION_ASM_OP "\t.sdata" | |
144 #define SBSS_SECTION_ASM_OP "\t.sbss" |