Mercurial > hg > CbC > CbC_gcc
annotate gcc/config/bfin/bfin-protos.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 |
---|---|
0 | 1 /* Prototypes for Blackfin functions used in the md file & elsewhere. |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
2 Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc. |
0 | 3 |
4 This file is part of GNU CC. | |
5 | |
6 GNU CC is free software; you can redistribute it and/or modify | |
7 it under the terms of the GNU General Public License as published by | |
8 the Free Software Foundation; either version 3, or (at your option) | |
9 any later version. | |
10 | |
11 GNU CC is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with GCC; see the file COPYING3. If not see | |
18 <http://www.gnu.org/licenses/>. */ | |
19 | |
20 /* Function prototypes that cannot exist in bfin.h due to dependency | |
21 complications. */ | |
22 #ifndef GCC_BFIN_PROTOS_H | |
23 #define GCC_BFIN_PROTOS_H | |
24 | |
25 /* For the anomaly 05-00-0245 */ | |
26 #define WA_SPECULATIVE_LOADS 0x00000001 | |
27 #define ENABLE_WA_SPECULATIVE_LOADS \ | |
28 (bfin_workarounds & WA_SPECULATIVE_LOADS) | |
29 | |
30 /* For the anomaly 05-00-0244 */ | |
31 #define WA_SPECULATIVE_SYNCS 0x00000002 | |
32 #define ENABLE_WA_SPECULATIVE_SYNCS \ | |
33 (bfin_workarounds & WA_SPECULATIVE_SYNCS) | |
34 | |
35 /* For the anomaly 05-00-0371 */ | |
36 #define WA_RETS 0x00000004 | |
37 #define ENABLE_WA_RETS \ | |
38 (bfin_workarounds & WA_RETS) | |
39 | |
40 /* For the anomaly 05-00-0426 */ | |
41 #define WA_INDIRECT_CALLS 0x00000008 | |
42 #define ENABLE_WA_INDIRECT_CALLS \ | |
43 ((bfin_workarounds & WA_INDIRECT_CALLS) && !TARGET_ICPLB) | |
44 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
45 #define WA_05000257 0x00000010 |
0 | 46 #define ENABLE_WA_05000257 \ |
47 (bfin_workarounds & WA_05000257) | |
48 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
49 #define WA_05000283 0x00000020 |
0 | 50 #define ENABLE_WA_05000283 \ |
51 (bfin_workarounds & WA_05000283) | |
52 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
53 #define WA_05000315 0x00000040 |
0 | 54 #define ENABLE_WA_05000315 \ |
55 (bfin_workarounds & WA_05000315) | |
56 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
57 /* For the anomaly 05-00-0312 */ |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
58 #define WA_LOAD_LCREGS 0x00000080 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
59 #define ENABLE_WA_LOAD_LCREGS \ |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
60 (bfin_workarounds & WA_LOAD_LCREGS) |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
61 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
62 #define WA_05000074 0x00000100 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
63 #define ENABLE_WA_05000074 \ |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
64 (bfin_workarounds & WA_05000074) |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
65 |
0 | 66 #define Mmode enum machine_mode |
67 | |
68 extern rtx function_arg (CUMULATIVE_ARGS *, Mmode, tree, int); | |
69 extern void function_arg_advance (CUMULATIVE_ARGS *, Mmode, tree, int); | |
70 extern bool function_arg_regno_p (int); | |
71 | |
72 extern const char *output_load_immediate (rtx *); | |
73 extern const char *output_casesi_internal (rtx *); | |
74 extern char *bfin_asm_long (void); | |
75 extern char *bfin_asm_short (void); | |
76 extern int log2constp (unsigned HOST_WIDE_INT); | |
77 | |
78 extern bool bfin_legitimate_constant_p (rtx); | |
79 extern int hard_regno_mode_ok (int, Mmode); | |
80 extern void init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx); | |
81 extern HOST_WIDE_INT bfin_initial_elimination_offset (int, int); | |
82 | |
83 extern int effective_address_32bit_p (rtx, Mmode); | |
84 extern int symbolic_reference_mentioned_p (rtx); | |
85 extern rtx bfin_gen_compare (rtx, Mmode); | |
86 extern bool expand_move (rtx *, Mmode); | |
87 extern void bfin_expand_call (rtx, rtx, rtx, rtx, int); | |
88 extern bool bfin_longcall_p (rtx, int); | |
89 extern bool bfin_dsp_memref_p (rtx); | |
90 extern bool bfin_expand_movmem (rtx, rtx, rtx, rtx); | |
91 | |
92 extern void conditional_register_usage (void); | |
93 extern int bfin_register_move_cost (enum machine_mode, enum reg_class, | |
94 enum reg_class); | |
95 extern int bfin_memory_move_cost (enum machine_mode, enum reg_class, int in); | |
96 extern enum reg_class secondary_input_reload_class (enum reg_class, Mmode, | |
97 rtx); | |
98 extern enum reg_class secondary_output_reload_class (enum reg_class, Mmode, | |
99 rtx); | |
100 extern char *section_asm_op_1 (SECT_ENUM_T); | |
101 extern char *section_asm_op (SECT_ENUM_T); | |
102 extern void override_options (void); | |
103 extern void print_operand (FILE *, rtx, char); | |
104 extern void print_address_operand (FILE *, rtx); | |
105 extern void split_di (rtx [], int, rtx [], rtx []); | |
106 extern int split_load_immediate (rtx []); | |
107 extern void emit_pic_move (rtx *, Mmode); | |
108 extern void override_options (void); | |
109 extern void asm_conditional_branch (rtx, rtx *, int, int); | |
110 extern rtx bfin_gen_compare (rtx, Mmode); | |
111 | |
112 extern int bfin_local_alignment (tree, int); | |
113 extern rtx bfin_va_arg (tree, tree); | |
114 | |
115 extern void bfin_expand_prologue (void); | |
116 extern void bfin_expand_epilogue (int, int, bool); | |
117 extern int push_multiple_operation (rtx, Mmode); | |
118 extern int pop_multiple_operation (rtx, Mmode); | |
119 extern void output_push_multiple (rtx, rtx *); | |
120 extern void output_pop_multiple (rtx, rtx *); | |
121 extern int bfin_hard_regno_rename_ok (unsigned int, unsigned int); | |
122 extern rtx bfin_return_addr_rtx (int); | |
123 extern void bfin_hardware_loop (void); | |
124 #undef Mmode | |
125 | |
126 #endif | |
127 |