Mercurial > hg > CbC > CbC_gcc
comparison 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 |
comparison
equal
deleted
inserted
replaced
52:c156f1bd5cd9 | 55:77e2b8dfacca |
---|---|
1 /* Prototypes for Blackfin functions used in the md file & elsewhere. | 1 /* Prototypes for Blackfin functions used in the md file & elsewhere. |
2 Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc. | 2 Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc. |
3 | 3 |
4 This file is part of GNU CC. | 4 This file is part of GNU CC. |
5 | 5 |
6 GNU CC is free software; you can redistribute it and/or modify | 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 | 7 it under the terms of the GNU General Public License as published by |
20 /* Function prototypes that cannot exist in bfin.h due to dependency | 20 /* Function prototypes that cannot exist in bfin.h due to dependency |
21 complications. */ | 21 complications. */ |
22 #ifndef GCC_BFIN_PROTOS_H | 22 #ifndef GCC_BFIN_PROTOS_H |
23 #define GCC_BFIN_PROTOS_H | 23 #define GCC_BFIN_PROTOS_H |
24 | 24 |
25 /* CPU type. */ | |
26 typedef enum bfin_cpu_type | |
27 { | |
28 BFIN_CPU_UNKNOWN, | |
29 BFIN_CPU_BF512, | |
30 BFIN_CPU_BF514, | |
31 BFIN_CPU_BF516, | |
32 BFIN_CPU_BF518, | |
33 BFIN_CPU_BF522, | |
34 BFIN_CPU_BF523, | |
35 BFIN_CPU_BF524, | |
36 BFIN_CPU_BF525, | |
37 BFIN_CPU_BF526, | |
38 BFIN_CPU_BF527, | |
39 BFIN_CPU_BF531, | |
40 BFIN_CPU_BF532, | |
41 BFIN_CPU_BF533, | |
42 BFIN_CPU_BF534, | |
43 BFIN_CPU_BF536, | |
44 BFIN_CPU_BF537, | |
45 BFIN_CPU_BF538, | |
46 BFIN_CPU_BF539, | |
47 BFIN_CPU_BF542, | |
48 BFIN_CPU_BF544, | |
49 BFIN_CPU_BF547, | |
50 BFIN_CPU_BF548, | |
51 BFIN_CPU_BF549, | |
52 BFIN_CPU_BF561 | |
53 } bfin_cpu_t; | |
54 | |
55 /* Value of -mcpu= */ | |
56 extern bfin_cpu_t bfin_cpu_type; | |
57 | |
58 /* Value of -msi-revision= */ | |
59 extern int bfin_si_revision; | |
60 | |
61 extern unsigned int bfin_workarounds; | |
62 | |
63 /* For the anomaly 05-00-0245 */ | 25 /* For the anomaly 05-00-0245 */ |
64 #define WA_SPECULATIVE_LOADS 0x00000001 | 26 #define WA_SPECULATIVE_LOADS 0x00000001 |
65 #define ENABLE_WA_SPECULATIVE_LOADS \ | 27 #define ENABLE_WA_SPECULATIVE_LOADS \ |
66 (bfin_workarounds & WA_SPECULATIVE_LOADS) | 28 (bfin_workarounds & WA_SPECULATIVE_LOADS) |
67 | 29 |
78 /* For the anomaly 05-00-0426 */ | 40 /* For the anomaly 05-00-0426 */ |
79 #define WA_INDIRECT_CALLS 0x00000008 | 41 #define WA_INDIRECT_CALLS 0x00000008 |
80 #define ENABLE_WA_INDIRECT_CALLS \ | 42 #define ENABLE_WA_INDIRECT_CALLS \ |
81 ((bfin_workarounds & WA_INDIRECT_CALLS) && !TARGET_ICPLB) | 43 ((bfin_workarounds & WA_INDIRECT_CALLS) && !TARGET_ICPLB) |
82 | 44 |
83 #define WA_05000257 0x00000040 | 45 #define WA_05000257 0x00000010 |
84 #define ENABLE_WA_05000257 \ | 46 #define ENABLE_WA_05000257 \ |
85 (bfin_workarounds & WA_05000257) | 47 (bfin_workarounds & WA_05000257) |
86 | 48 |
87 #define WA_05000283 0x00000010 | 49 #define WA_05000283 0x00000020 |
88 #define ENABLE_WA_05000283 \ | 50 #define ENABLE_WA_05000283 \ |
89 (bfin_workarounds & WA_05000283) | 51 (bfin_workarounds & WA_05000283) |
90 | 52 |
91 #define WA_05000315 0x00000020 | 53 #define WA_05000315 0x00000040 |
92 #define ENABLE_WA_05000315 \ | 54 #define ENABLE_WA_05000315 \ |
93 (bfin_workarounds & WA_05000315) | 55 (bfin_workarounds & WA_05000315) |
56 | |
57 /* For the anomaly 05-00-0312 */ | |
58 #define WA_LOAD_LCREGS 0x00000080 | |
59 #define ENABLE_WA_LOAD_LCREGS \ | |
60 (bfin_workarounds & WA_LOAD_LCREGS) | |
61 | |
62 #define WA_05000074 0x00000100 | |
63 #define ENABLE_WA_05000074 \ | |
64 (bfin_workarounds & WA_05000074) | |
94 | 65 |
95 #define Mmode enum machine_mode | 66 #define Mmode enum machine_mode |
96 | 67 |
97 extern rtx function_arg (CUMULATIVE_ARGS *, Mmode, tree, int); | 68 extern rtx function_arg (CUMULATIVE_ARGS *, Mmode, tree, int); |
98 extern void function_arg_advance (CUMULATIVE_ARGS *, Mmode, tree, int); | 69 extern void function_arg_advance (CUMULATIVE_ARGS *, Mmode, tree, int); |
102 extern const char *output_casesi_internal (rtx *); | 73 extern const char *output_casesi_internal (rtx *); |
103 extern char *bfin_asm_long (void); | 74 extern char *bfin_asm_long (void); |
104 extern char *bfin_asm_short (void); | 75 extern char *bfin_asm_short (void); |
105 extern int log2constp (unsigned HOST_WIDE_INT); | 76 extern int log2constp (unsigned HOST_WIDE_INT); |
106 | 77 |
107 extern rtx legitimize_address (rtx, rtx, Mmode); | |
108 extern bool bfin_legitimate_constant_p (rtx); | 78 extern bool bfin_legitimate_constant_p (rtx); |
109 extern int hard_regno_mode_ok (int, Mmode); | 79 extern int hard_regno_mode_ok (int, Mmode); |
110 extern void init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx); | 80 extern void init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx); |
111 extern int bfin_frame_pointer_required (void); | |
112 extern HOST_WIDE_INT bfin_initial_elimination_offset (int, int); | 81 extern HOST_WIDE_INT bfin_initial_elimination_offset (int, int); |
113 | 82 |
114 extern int effective_address_32bit_p (rtx, Mmode); | 83 extern int effective_address_32bit_p (rtx, Mmode); |
115 extern int symbolic_reference_mentioned_p (rtx); | 84 extern int symbolic_reference_mentioned_p (rtx); |
116 extern rtx bfin_gen_compare (rtx, Mmode); | 85 extern rtx bfin_gen_compare (rtx, Mmode); |
139 extern void override_options (void); | 108 extern void override_options (void); |
140 extern void asm_conditional_branch (rtx, rtx *, int, int); | 109 extern void asm_conditional_branch (rtx, rtx *, int, int); |
141 extern rtx bfin_gen_compare (rtx, Mmode); | 110 extern rtx bfin_gen_compare (rtx, Mmode); |
142 | 111 |
143 extern int bfin_local_alignment (tree, int); | 112 extern int bfin_local_alignment (tree, int); |
144 extern void initialize_trampoline (rtx, rtx, rtx); | |
145 extern bool bfin_legitimate_address_p (Mmode, rtx, int); | |
146 extern rtx bfin_va_arg (tree, tree); | 113 extern rtx bfin_va_arg (tree, tree); |
147 | 114 |
148 extern void bfin_expand_prologue (void); | 115 extern void bfin_expand_prologue (void); |
149 extern void bfin_expand_epilogue (int, int, bool); | 116 extern void bfin_expand_epilogue (int, int, bool); |
150 extern int push_multiple_operation (rtx, Mmode); | 117 extern int push_multiple_operation (rtx, Mmode); |