Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/s390/2084.md @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | f6334be47118 |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 ;; Scheduling description for z990 (cpu 2084). | 1 ;; Scheduling description for z990 (cpu 2084). |
2 ;; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010 | 2 ;; Copyright (C) 2003-2017 Free Software Foundation, Inc. |
3 ;; Free Software Foundation, Inc. | |
4 ;; Contributed by Hartmut Penner (hpenner@de.ibm.com) and | 3 ;; Contributed by Hartmut Penner (hpenner@de.ibm.com) and |
5 ;; Ulrich Weigand (uweigand@de.ibm.com). | 4 ;; Ulrich Weigand (uweigand@de.ibm.com). |
6 | 5 |
7 ;; This file is part of GCC. | 6 ;; This file is part of GCC. |
8 | 7 |
60 ;; | 59 ;; |
61 ;; Simple insns | 60 ;; Simple insns |
62 ;; | 61 ;; |
63 | 62 |
64 (define_insn_reservation "x_int" 1 | 63 (define_insn_reservation "x_int" 1 |
65 (and (eq_attr "cpu" "z990,z9_109") | 64 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
66 (and (eq_attr "type" "integer") | 65 (and (eq_attr "type" "integer") |
67 (eq_attr "atype" "reg"))) | 66 (eq_attr "atype" "reg"))) |
68 "x-e1-st,x-wr-st") | 67 "x-e1-st,x-wr-st") |
69 | 68 |
70 (define_insn_reservation "x_agen" 1 | 69 (define_insn_reservation "x_agen" 1 |
71 (and (eq_attr "cpu" "z990,z9_109") | 70 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
72 (and (eq_attr "type" "integer") | 71 (and (eq_attr "type" "integer") |
73 (eq_attr "atype" "agen"))) | 72 (eq_attr "atype" "agen"))) |
74 "x-e1-st,x-wr-st") | 73 "x-e1-st,x-wr-st") |
75 | 74 |
76 (define_insn_reservation "x_lr" 1 | 75 (define_insn_reservation "x_lr" 1 |
77 (and (eq_attr "cpu" "z990,z9_109") | 76 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
78 (eq_attr "type" "lr")) | 77 (eq_attr "type" "lr")) |
79 "x-e1-st,x-wr-st") | 78 "x-e1-st,x-wr-st") |
80 | 79 |
81 (define_insn_reservation "x_la" 1 | 80 (define_insn_reservation "x_la" 1 |
82 (and (eq_attr "cpu" "z990,z9_109") | 81 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
83 (eq_attr "type" "la")) | 82 (eq_attr "type" "la")) |
84 "x-e1-st,x-wr-st") | 83 "x-e1-st,x-wr-st") |
85 | 84 |
86 (define_insn_reservation "x_larl" 1 | 85 (define_insn_reservation "x_larl" 1 |
87 (and (eq_attr "cpu" "z990,z9_109") | 86 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
88 (eq_attr "type" "larl")) | 87 (eq_attr "type" "larl")) |
89 "x-e1-st,x-wr-st") | 88 "x-e1-st,x-wr-st") |
90 | 89 |
91 (define_insn_reservation "x_load" 1 | 90 (define_insn_reservation "x_load" 1 |
92 (and (eq_attr "cpu" "z990,z9_109") | 91 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
93 (eq_attr "type" "load")) | 92 (eq_attr "type" "load")) |
94 "x-e1-st+x-mem,x-wr-st") | 93 "x-e1-st+x-mem,x-wr-st") |
95 | 94 |
96 (define_insn_reservation "x_store" 1 | 95 (define_insn_reservation "x_store" 1 |
97 (and (eq_attr "cpu" "z990,z9_109") | 96 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
98 (eq_attr "type" "store")) | 97 (eq_attr "type" "store")) |
99 "x-e1-st+x_store_tok,x-wr-st") | 98 "x-e1-st+x_store_tok,x-wr-st") |
100 | 99 |
101 (define_insn_reservation "x_branch" 1 | 100 (define_insn_reservation "x_branch" 1 |
102 (and (eq_attr "cpu" "z990,z9_109") | 101 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
103 (eq_attr "type" "branch")) | 102 (eq_attr "type" "branch")) |
104 "x_e1_r,x_wr_r") | 103 "x_e1_r,x_wr_r") |
105 | 104 |
106 (define_insn_reservation "x_call" 5 | 105 (define_insn_reservation "x_call" 5 |
107 (and (eq_attr "cpu" "z990,z9_109") | 106 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
108 (eq_attr "type" "jsr")) | 107 (eq_attr "type" "jsr")) |
109 "x-e1-np*5,x-wr-np") | 108 "x-e1-np*5,x-wr-np") |
110 | 109 |
111 (define_insn_reservation "x_mul_hi" 2 | 110 (define_insn_reservation "x_mul_hi" 2 |
112 (and (eq_attr "cpu" "z990,z9_109") | 111 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
113 (eq_attr "type" "imulhi")) | 112 (eq_attr "type" "imulhi")) |
114 "x-e1-np*2,x-wr-np") | 113 "x-e1-np*2,x-wr-np") |
115 | 114 |
116 (define_insn_reservation "x_mul_sidi" 4 | 115 (define_insn_reservation "x_mul_sidi" 4 |
117 (and (eq_attr "cpu" "z990,z9_109") | 116 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
118 (eq_attr "type" "imulsi,imuldi")) | 117 (eq_attr "type" "imulsi,imuldi")) |
119 "x-e1-np*4,x-wr-np") | 118 "x-e1-np*4,x-wr-np") |
120 | 119 |
121 (define_insn_reservation "x_div" 10 | 120 (define_insn_reservation "x_div" 10 |
122 (and (eq_attr "cpu" "z990,z9_109") | 121 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
123 (eq_attr "type" "idiv")) | 122 (eq_attr "type" "idiv")) |
124 "x-e1-np*10,x-wr-np") | 123 "x-e1-np*10,x-wr-np") |
125 | 124 |
126 (define_insn_reservation "x_sem" 17 | 125 (define_insn_reservation "x_sem" 17 |
127 (and (eq_attr "cpu" "z990,z9_109") | 126 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
128 (eq_attr "type" "sem")) | 127 (eq_attr "type" "sem")) |
129 "x-e1-np+x-mem,x-e1-np*16,x-wr-st") | 128 "x-e1-np+x-mem,x-e1-np*16,x-wr-st") |
130 | 129 |
131 ;; | 130 ;; |
132 ;; Multicycle insns | 131 ;; Multicycle insns |
133 ;; | 132 ;; |
134 | 133 |
135 (define_insn_reservation "x_cs" 1 | 134 (define_insn_reservation "x_cs" 1 |
136 (and (eq_attr "cpu" "z990,z9_109") | 135 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
137 (eq_attr "type" "cs")) | 136 (eq_attr "type" "cs")) |
138 "x-e1-np,x-wr-np") | 137 "x-e1-np,x-wr-np") |
139 | 138 |
140 (define_insn_reservation "x_vs" 1 | 139 (define_insn_reservation "x_vs" 1 |
141 (and (eq_attr "cpu" "z990,z9_109") | 140 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
142 (eq_attr "type" "vs")) | 141 (eq_attr "type" "vs")) |
143 "x-e1-np*10,x-wr-np") | 142 "x-e1-np*10,x-wr-np") |
144 | 143 |
145 (define_insn_reservation "x_stm" 1 | 144 (define_insn_reservation "x_stm" 1 |
146 (and (eq_attr "cpu" "z990,z9_109") | 145 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
147 (eq_attr "type" "stm")) | 146 (eq_attr "type" "stm")) |
148 "(x-e1-np+x_store_tok)*10,x-wr-np") | 147 "(x-e1-np+x_store_tok)*10,x-wr-np") |
149 | 148 |
150 (define_insn_reservation "x_lm" 1 | 149 (define_insn_reservation "x_lm" 1 |
151 (and (eq_attr "cpu" "z990,z9_109") | 150 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
152 (eq_attr "type" "lm")) | 151 (eq_attr "type" "lm")) |
153 "x-e1-np*10,x-wr-np") | 152 "x-e1-np*10,x-wr-np") |
154 | 153 |
155 (define_insn_reservation "x_other" 1 | 154 (define_insn_reservation "x_other" 1 |
156 (and (eq_attr "cpu" "z990,z9_109") | 155 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
157 (eq_attr "type" "other")) | 156 (eq_attr "type" "other")) |
158 "x-e1-np,x-wr-np") | 157 "x-e1-np,x-wr-np") |
159 | 158 |
160 ;; | 159 ;; |
161 ;; Floating point insns | 160 ;; Floating point insns |
162 ;; | 161 ;; |
163 | 162 |
164 (define_insn_reservation "x_fsimptf" 7 | 163 (define_insn_reservation "x_fsimptf" 7 |
165 (and (eq_attr "cpu" "z990,z9_109") | 164 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
166 (eq_attr "type" "fsimptf,fhex")) | 165 (eq_attr "type" "fsimptf,fhex")) |
167 "x_e1_t*2,x-wr-fp") | 166 "x_e1_t*2,x-wr-fp") |
168 | 167 |
169 (define_insn_reservation "x_fsimpdf" 6 | 168 (define_insn_reservation "x_fsimpdf" 6 |
170 (and (eq_attr "cpu" "z990,z9_109") | 169 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
171 (eq_attr "type" "fsimpdf,fmuldf,fmadddf,fhex")) | 170 (eq_attr "type" "fsimpdf,fmuldf,fmadddf,fhex")) |
172 "x_e1_t,x-wr-fp") | 171 "x_e1_t,x-wr-fp") |
173 | 172 |
174 (define_insn_reservation "x_fsimpsf" 6 | 173 (define_insn_reservation "x_fsimpsf" 6 |
175 (and (eq_attr "cpu" "z990,z9_109") | 174 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
176 (eq_attr "type" "fsimpsf,fmulsf,fmaddsf,fhex")) | 175 (eq_attr "type" "fsimpsf,fmulsf,fmaddsf,fhex")) |
177 "x_e1_t,x-wr-fp") | 176 "x_e1_t,x-wr-fp") |
178 | 177 |
179 | 178 |
180 (define_insn_reservation "x_fmultf" 33 | 179 (define_insn_reservation "x_fmultf" 33 |
181 (and (eq_attr "cpu" "z990,z9_109") | 180 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
182 (eq_attr "type" "fmultf")) | 181 (eq_attr "type" "fmultf")) |
183 "x_e1_t*27,x-wr-fp") | 182 "x_e1_t*27,x-wr-fp") |
184 | 183 |
185 | 184 |
186 (define_insn_reservation "x_fdivtf" 82 | 185 (define_insn_reservation "x_fdivtf" 82 |
187 (and (eq_attr "cpu" "z990,z9_109") | 186 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
188 (eq_attr "type" "fdivtf,fsqrttf")) | 187 (eq_attr "type" "fdivtf,fsqrttf")) |
189 "x_e1_t*76,x-wr-fp") | 188 "x_e1_t*76,x-wr-fp") |
190 | 189 |
191 (define_insn_reservation "x_fdivdf" 36 | 190 (define_insn_reservation "x_fdivdf" 36 |
192 (and (eq_attr "cpu" "z990,z9_109") | 191 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
193 (eq_attr "type" "fdivdf,fsqrtdf")) | 192 (eq_attr "type" "fdivdf,fsqrtdf")) |
194 "x_e1_t*30,x-wr-fp") | 193 "x_e1_t*30,x-wr-fp") |
195 | 194 |
196 (define_insn_reservation "x_fdivsf" 36 | 195 (define_insn_reservation "x_fdivsf" 36 |
197 (and (eq_attr "cpu" "z990,z9_109") | 196 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
198 (eq_attr "type" "fdivsf,fsqrtsf")) | 197 (eq_attr "type" "fdivsf,fsqrtsf")) |
199 "x_e1_t*30,x-wr-fp") | 198 "x_e1_t*30,x-wr-fp") |
200 | 199 |
201 | 200 |
202 (define_insn_reservation "x_floadtf" 6 | 201 (define_insn_reservation "x_floadtf" 6 |
203 (and (eq_attr "cpu" "z990,z9_109") | 202 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
204 (eq_attr "type" "floadtf")) | 203 (eq_attr "type" "floadtf")) |
205 "x_e1_t,x-wr-fp") | 204 "x_e1_t,x-wr-fp") |
206 | 205 |
207 (define_insn_reservation "x_floaddf" 6 | 206 (define_insn_reservation "x_floaddf" 6 |
208 (and (eq_attr "cpu" "z990,z9_109") | 207 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
209 (eq_attr "type" "floaddf")) | 208 (eq_attr "type" "floaddf")) |
210 "x_e1_t,x-wr-fp") | 209 "x_e1_t,x-wr-fp") |
211 | 210 |
212 (define_insn_reservation "x_floadsf" 6 | 211 (define_insn_reservation "x_floadsf" 6 |
213 (and (eq_attr "cpu" "z990,z9_109") | 212 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
214 (eq_attr "type" "floadsf")) | 213 (eq_attr "type" "floadsf")) |
215 "x_e1_t,x-wr-fp") | 214 "x_e1_t,x-wr-fp") |
216 | 215 |
217 | 216 |
218 (define_insn_reservation "x_fstoredf" 1 | 217 (define_insn_reservation "x_fstoredf" 1 |
219 (and (eq_attr "cpu" "z990,z9_109") | 218 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
220 (eq_attr "type" "fstoredf")) | 219 (eq_attr "type" "fstoredf")) |
221 "x_e1_t,x-wr-fp") | 220 "x_e1_t,x-wr-fp") |
222 | 221 |
223 (define_insn_reservation "x_fstoresf" 1 | 222 (define_insn_reservation "x_fstoresf" 1 |
224 (and (eq_attr "cpu" "z990,z9_109") | 223 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
225 (eq_attr "type" "fstoresf")) | 224 (eq_attr "type" "fstoresf")) |
226 "x_e1_t,x-wr-fp") | 225 "x_e1_t,x-wr-fp") |
227 | 226 |
228 | 227 |
229 (define_insn_reservation "x_ftrunctf" 16 | 228 (define_insn_reservation "x_ftrunctf" 16 |
230 (and (eq_attr "cpu" "z990,z9_109") | 229 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
231 (eq_attr "type" "ftrunctf")) | 230 (eq_attr "type" "ftrunctf")) |
232 "x_e1_t*10,x-wr-fp") | 231 "x_e1_t*10,x-wr-fp") |
233 | 232 |
234 (define_insn_reservation "x_ftruncdf" 11 | 233 (define_insn_reservation "x_ftruncdf" 11 |
235 (and (eq_attr "cpu" "z990,z9_109") | 234 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
236 (eq_attr "type" "ftruncdf")) | 235 (eq_attr "type" "ftruncdf")) |
237 "x_e1_t*5,x-wr-fp") | 236 "x_e1_t*5,x-wr-fp") |
238 | 237 |
239 | 238 |
240 (define_insn_reservation "x_ftoi" 1 | 239 (define_insn_reservation "x_ftoi" 1 |
241 (and (eq_attr "cpu" "z990,z9_109") | 240 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
242 (eq_attr "type" "ftoi")) | 241 (eq_attr "type" "ftoi")) |
243 "x_e1_t*3,x-wr-fp") | 242 "x_e1_t*3,x-wr-fp") |
244 | 243 |
245 (define_insn_reservation "x_itof" 7 | 244 (define_insn_reservation "x_itof" 7 |
246 (and (eq_attr "cpu" "z990,z9_109") | 245 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
247 (eq_attr "type" "itoftf,itofdf,itofsf")) | 246 (eq_attr "type" "itoftf,itofdf,itofsf")) |
248 "x_e1_t*3,x-wr-fp") | 247 "x_e1_t*3,x-wr-fp") |
249 | 248 |
250 (define_bypass 1 "x_fsimpdf" "x_fstoredf") | 249 (define_bypass 1 "x_fsimpdf" "x_fstoredf") |
251 | 250 |