Mercurial > hg > CbC > CbC_gcc
annotate gcc/config/ia64/sysv4.h @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | 77e2b8dfacca |
children | 04ced10e8804 |
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 |
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, |
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
|
4 2007, 2010 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
|
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 #define DBX_REGISTER_NUMBER(REGNO) \ | |
108 ia64_dbx_register_number(REGNO) | |
109 | |
110 #undef SIZE_TYPE | |
111 #define SIZE_TYPE "long unsigned int" | |
112 | |
113 #undef PTRDIFF_TYPE | |
114 #define PTRDIFF_TYPE "long int" | |
115 | |
116 #undef WCHAR_TYPE | |
117 #define WCHAR_TYPE "int" | |
118 | |
119 #undef WCHAR_TYPE_SIZE | |
120 #define WCHAR_TYPE_SIZE 32 | |
121 | |
122 /* We redefine this to use the ia64 .proc pseudo-op. */ | |
123 | |
124 #undef ASM_DECLARE_FUNCTION_NAME | |
125 #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
|
126 ia64_start_function(FILE,NAME,DECL) |
0 | 127 |
128 /* We redefine this to use the ia64 .endp pseudo-op. */ | |
129 | |
130 #undef ASM_DECLARE_FUNCTION_SIZE | |
131 #define ASM_DECLARE_FUNCTION_SIZE(FILE, NAME, DECL) \ | |
132 do { \ | |
133 fputs ("\t.endp ", FILE); \ | |
134 assemble_name (FILE, NAME); \ | |
135 fputc ('\n', FILE); \ | |
136 } while (0) | |
137 | |
138 /* Override default elf definition. */ | |
139 #undef TARGET_ASM_RELOC_RW_MASK | |
140 #define TARGET_ASM_RELOC_RW_MASK ia64_reloc_rw_mask | |
141 #undef TARGET_ASM_SELECT_RTX_SECTION | |
142 #define TARGET_ASM_SELECT_RTX_SECTION ia64_select_rtx_section | |
143 | |
144 #define SDATA_SECTION_ASM_OP "\t.sdata" | |
145 #define SBSS_SECTION_ASM_OP "\t.sbss" |