Mercurial > hg > CbC > CbC_gcc
annotate gcc/config/ia64/sysv4.h @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +0900 |
parents | a06113de4d67 |
children | f6334be47118 |
rev | line source |
---|---|
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
1 /* Override definitions in elfos.h/svr4.h to be correct for IA64. |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
2 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
3 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
4 2007 Free Software Foundation, Inc. |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
5 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
6 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
|
7 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
8 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
|
9 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
|
10 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
|
11 version. |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
12 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
13 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
|
14 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
|
15 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
|
16 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
|
17 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
18 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
|
19 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
|
20 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
|
21 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
22 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
|
23 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
|
24 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
|
25 <http://www.gnu.org/licenses/>. */ |
0 | 26 |
27 #undef TARGET_INIT_LIBFUNCS | |
28 #define TARGET_INIT_LIBFUNCS ia64_sysv4_init_libfuncs | |
29 | |
30 /* We want DWARF2 as specified by the IA64 ABI. */ | |
31 #undef PREFERRED_DEBUGGING_TYPE | |
32 #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG | |
33 | |
34 /* Stabs does not work properly for 64-bit targets. */ | |
35 #undef DBX_DEBUGGING_INFO | |
36 | |
37 /* Various pseudo-ops for which the Intel assembler uses non-standard | |
38 definitions. */ | |
39 | |
40 #undef STRING_ASM_OP | |
41 #define STRING_ASM_OP "\tstringz\t" | |
42 | |
43 #undef SKIP_ASM_OP | |
44 #define SKIP_ASM_OP "\t.skip\t" | |
45 | |
46 #undef COMMON_ASM_OP | |
47 #define COMMON_ASM_OP "\t.common\t" | |
48 | |
49 #undef ASCII_DATA_ASM_OP | |
50 #define ASCII_DATA_ASM_OP "\tstring\t" | |
51 | |
52 /* ia64-specific options for gas | |
53 ??? ia64 gas doesn't accept standard svr4 assembler options? */ | |
54 #undef ASM_SPEC | |
55 #define ASM_SPEC "-x %{mconstant-gp} %{mauto-pic} %(asm_extra)" | |
56 | |
57 /* ??? Unfortunately, .lcomm doesn't work, because it puts things in either | |
58 .bss or .sbss, and we can't control the decision of which is used. When | |
59 I use .lcomm, I get a cryptic "Section group has no member" error from | |
60 the Intel simulator. So we must explicitly put variables in .bss | |
61 instead. This matters only if we care about the Intel assembler. */ | |
62 | |
63 /* This is asm_output_aligned_bss from varasm.c without the | |
64 (*targetm.asm_out.globalize_label) call at the beginning. */ | |
65 | |
66 /* This is for final.c, because it is used by ASM_DECLARE_OBJECT_NAME. */ | |
67 extern int size_directive_output; | |
68 | |
69 #undef ASM_OUTPUT_ALIGNED_LOCAL | |
70 #define ASM_OUTPUT_ALIGNED_DECL_LOCAL(FILE, DECL, NAME, SIZE, ALIGN) \ | |
71 do { \ | |
72 if ((DECL) && sdata_symbolic_operand (XEXP (DECL_RTL (DECL), 0), Pmode)) \ | |
73 switch_to_section (sbss_section); \ | |
74 else \ | |
75 switch_to_section (bss_section); \ | |
76 ASM_OUTPUT_ALIGN (FILE, floor_log2 ((ALIGN) / BITS_PER_UNIT)); \ | |
77 ASM_DECLARE_OBJECT_NAME (FILE, NAME, DECL); \ | |
78 ASM_OUTPUT_SKIP (FILE, SIZE ? SIZE : 1); \ | |
79 } while (0) | |
80 | |
81 /* The # tells the Intel assembler that this is not a register name. | |
82 However, we can't emit the # in a label definition, so we set a variable | |
83 in ASM_OUTPUT_LABEL to control whether we want the postfix here or not. | |
84 We append the # to the label name, but since NAME can be an expression | |
85 we have to scan it for a non-label character and insert the # there. */ | |
86 | |
87 #undef ASM_OUTPUT_LABELREF | |
88 #define ASM_OUTPUT_LABELREF(STREAM, NAME) \ | |
89 do { \ | |
90 const char *name_ = NAME; \ | |
91 if (*name_ == '*') \ | |
92 name_++; \ | |
93 else \ | |
94 fputs (user_label_prefix, STREAM); \ | |
95 fputs (name_, STREAM); \ | |
96 if (!ia64_asm_output_label) \ | |
97 fputc ('#', STREAM); \ | |
98 } while (0) | |
99 | |
100 /* Intel assembler requires both flags and type if declaring a non-predefined | |
101 section. */ | |
102 #undef INIT_SECTION_ASM_OP | |
103 #define INIT_SECTION_ASM_OP "\t.section\t.init,\"ax\",\"progbits\"" | |
104 #undef FINI_SECTION_ASM_OP | |
105 #define FINI_SECTION_ASM_OP "\t.section\t.fini,\"ax\",\"progbits\"" | |
106 | |
107 /* svr4.h undefines this, so we need to define it here. */ | |
108 #define DBX_REGISTER_NUMBER(REGNO) \ | |
109 ia64_dbx_register_number(REGNO) | |
110 | |
111 /* Things that svr4.h defines to the wrong type, because it assumes 32-bit | |
112 ints and 32-bit longs. */ | |
113 | |
114 #undef SIZE_TYPE | |
115 #define SIZE_TYPE "long unsigned int" | |
116 | |
117 #undef PTRDIFF_TYPE | |
118 #define PTRDIFF_TYPE "long int" | |
119 | |
120 #undef WCHAR_TYPE | |
121 #define WCHAR_TYPE "int" | |
122 | |
123 #undef WCHAR_TYPE_SIZE | |
124 #define WCHAR_TYPE_SIZE 32 | |
125 | |
126 /* We redefine this to use the ia64 .proc pseudo-op. */ | |
127 | |
128 #undef ASM_DECLARE_FUNCTION_NAME | |
129 #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ | |
130 do { \ | |
131 fputs ("\t.proc ", FILE); \ | |
132 assemble_name (FILE, NAME); \ | |
133 fputc ('\n', FILE); \ | |
134 ASM_OUTPUT_LABEL (FILE, NAME); \ | |
135 } while (0) | |
136 | |
137 /* We redefine this to use the ia64 .endp pseudo-op. */ | |
138 | |
139 #undef ASM_DECLARE_FUNCTION_SIZE | |
140 #define ASM_DECLARE_FUNCTION_SIZE(FILE, NAME, DECL) \ | |
141 do { \ | |
142 fputs ("\t.endp ", FILE); \ | |
143 assemble_name (FILE, NAME); \ | |
144 fputc ('\n', FILE); \ | |
145 } while (0) | |
146 | |
147 /* Override default elf definition. */ | |
148 #undef TARGET_ASM_RELOC_RW_MASK | |
149 #define TARGET_ASM_RELOC_RW_MASK ia64_reloc_rw_mask | |
150 #undef TARGET_ASM_SELECT_RTX_SECTION | |
151 #define TARGET_ASM_SELECT_RTX_SECTION ia64_select_rtx_section | |
152 | |
153 #define SDATA_SECTION_ASM_OP "\t.sdata" | |
154 #define SBSS_SECTION_ASM_OP "\t.sbss" |