Mercurial > hg > CbC > CbC_gcc
annotate gcc/config/s390/2084.md @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | f6334be47118 |
children | 84e7813d76e9 |
rev | line source |
---|---|
0 | 1 ;; Scheduling description for z990 (cpu 2084). |
111 | 2 ;; Copyright (C) 2003-2017 Free Software Foundation, Inc. |
0 | 3 ;; Contributed by Hartmut Penner (hpenner@de.ibm.com) and |
4 ;; Ulrich Weigand (uweigand@de.ibm.com). | |
5 | |
6 ;; This file is part of GCC. | |
7 | |
8 ;; GCC is free software; you can redistribute it and/or modify it under | |
9 ;; the terms of the GNU General Public License as published by the Free | |
10 ;; Software Foundation; either version 3, or (at your option) any later | |
11 ;; version. | |
12 | |
13 ;; GCC is distributed in the hope that it will be useful, but WITHOUT ANY | |
14 ;; WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
15 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
16 ;; for more details. | |
17 | |
18 ;; You should have received a copy of the GNU General Public License | |
19 ;; along with GCC; see the file COPYING3. If not see | |
20 ;; <http://www.gnu.org/licenses/>. | |
21 | |
22 (define_automaton "x_ipu") | |
23 | |
24 (define_cpu_unit "x_e1_r,x_e1_s,x_e1_t" "x_ipu") | |
25 (define_cpu_unit "x_wr_r,x_wr_s,x_wr_t,x_wr_fp" "x_ipu") | |
26 (define_cpu_unit "x_s1,x_s2,x_s3,x_s4" "x_ipu") | |
27 (define_cpu_unit "x_t1,x_t2,x_t3,x_t4" "x_ipu") | |
28 (define_cpu_unit "x_f1,x_f2,x_f3,x_f4,x_f5,x_f6" "x_ipu") | |
29 (define_cpu_unit "x_store_tok" "x_ipu") | |
30 (define_cpu_unit "x_ms,x_mt" "x_ipu") | |
31 | |
32 (define_reservation "x-e1-st" "(x_e1_s | x_e1_t)") | |
33 | |
34 (define_reservation "x-e1-np" "(x_e1_r + x_e1_s + x_e1_t)") | |
35 | |
36 (absence_set "x_e1_r" "x_e1_s,x_e1_t") | |
37 (absence_set "x_e1_s" "x_e1_t") | |
38 | |
39 ;; Try to avoid int <-> fp transitions. | |
40 | |
41 (define_reservation "x-x" "x_s1|x_t1,x_s2|x_t2,x_s3|x_t3,x_s4|x_t4") | |
42 (define_reservation "x-f" "x_f1,x_f2,x_f3,x_f4,x_f5,x_f6") | |
43 (define_reservation "x-wr-st" "((x_wr_s | x_wr_t),x-x)") | |
44 (define_reservation "x-wr-np" "((x_wr_r + x_wr_s + x_wr_t),x-x)") | |
45 (define_reservation "x-wr-fp" "x_wr_fp,x-f") | |
46 (define_reservation "x-mem" "x_ms|x_mt") | |
47 | |
48 (absence_set "x_wr_fp" | |
49 "x_s1,x_s2,x_s3,x_s4,x_t1,x_t2,x_t3,x_t4,x_wr_s,x_wr_t") | |
50 | |
51 (absence_set "x_e1_r,x_wr_r,x_wr_s,x_wr_t" | |
52 "x_f1,x_f2,x_f3,x_f4,x_f5,x_f6,x_wr_fp") | |
53 | |
54 ;; Don't have any load type insn in same group as store | |
55 | |
56 (absence_set "x_ms,x_mt" "x_store_tok") | |
57 | |
58 | |
59 ;; | |
60 ;; Simple insns | |
61 ;; | |
62 | |
63 (define_insn_reservation "x_int" 1 | |
111 | 64 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 65 (and (eq_attr "type" "integer") |
66 (eq_attr "atype" "reg"))) | |
67 "x-e1-st,x-wr-st") | |
68 | |
69 (define_insn_reservation "x_agen" 1 | |
111 | 70 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 71 (and (eq_attr "type" "integer") |
72 (eq_attr "atype" "agen"))) | |
73 "x-e1-st,x-wr-st") | |
74 | |
75 (define_insn_reservation "x_lr" 1 | |
111 | 76 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 77 (eq_attr "type" "lr")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
78 "x-e1-st,x-wr-st") |
0 | 79 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
80 (define_insn_reservation "x_la" 1 |
111 | 81 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 82 (eq_attr "type" "la")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
83 "x-e1-st,x-wr-st") |
0 | 84 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
85 (define_insn_reservation "x_larl" 1 |
111 | 86 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 87 (eq_attr "type" "larl")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
88 "x-e1-st,x-wr-st") |
0 | 89 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
90 (define_insn_reservation "x_load" 1 |
111 | 91 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 92 (eq_attr "type" "load")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
93 "x-e1-st+x-mem,x-wr-st") |
0 | 94 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
95 (define_insn_reservation "x_store" 1 |
111 | 96 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 97 (eq_attr "type" "store")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
98 "x-e1-st+x_store_tok,x-wr-st") |
0 | 99 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
100 (define_insn_reservation "x_branch" 1 |
111 | 101 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 102 (eq_attr "type" "branch")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
103 "x_e1_r,x_wr_r") |
0 | 104 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
105 (define_insn_reservation "x_call" 5 |
111 | 106 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 107 (eq_attr "type" "jsr")) |
108 "x-e1-np*5,x-wr-np") | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
109 |
0 | 110 (define_insn_reservation "x_mul_hi" 2 |
111 | 111 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 112 (eq_attr "type" "imulhi")) |
113 "x-e1-np*2,x-wr-np") | |
114 | |
115 (define_insn_reservation "x_mul_sidi" 4 | |
111 | 116 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 117 (eq_attr "type" "imulsi,imuldi")) |
118 "x-e1-np*4,x-wr-np") | |
119 | |
120 (define_insn_reservation "x_div" 10 | |
111 | 121 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 122 (eq_attr "type" "idiv")) |
123 "x-e1-np*10,x-wr-np") | |
124 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
125 (define_insn_reservation "x_sem" 17 |
111 | 126 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 127 (eq_attr "type" "sem")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
128 "x-e1-np+x-mem,x-e1-np*16,x-wr-st") |
0 | 129 |
130 ;; | |
131 ;; Multicycle insns | |
132 ;; | |
133 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
134 (define_insn_reservation "x_cs" 1 |
111 | 135 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 136 (eq_attr "type" "cs")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
137 "x-e1-np,x-wr-np") |
0 | 138 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
139 (define_insn_reservation "x_vs" 1 |
111 | 140 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 141 (eq_attr "type" "vs")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
142 "x-e1-np*10,x-wr-np") |
0 | 143 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
144 (define_insn_reservation "x_stm" 1 |
111 | 145 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 146 (eq_attr "type" "stm")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
147 "(x-e1-np+x_store_tok)*10,x-wr-np") |
0 | 148 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
149 (define_insn_reservation "x_lm" 1 |
111 | 150 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 151 (eq_attr "type" "lm")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
152 "x-e1-np*10,x-wr-np") |
0 | 153 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
154 (define_insn_reservation "x_other" 1 |
111 | 155 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 156 (eq_attr "type" "other")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
157 "x-e1-np,x-wr-np") |
0 | 158 |
159 ;; | |
160 ;; Floating point insns | |
161 ;; | |
162 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
163 (define_insn_reservation "x_fsimptf" 7 |
111 | 164 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
36 | 165 (eq_attr "type" "fsimptf,fhex")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
166 "x_e1_t*2,x-wr-fp") |
0 | 167 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
168 (define_insn_reservation "x_fsimpdf" 6 |
111 | 169 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
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
|
170 (eq_attr "type" "fsimpdf,fmuldf,fmadddf,fhex")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
171 "x_e1_t,x-wr-fp") |
0 | 172 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
173 (define_insn_reservation "x_fsimpsf" 6 |
111 | 174 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
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
|
175 (eq_attr "type" "fsimpsf,fmulsf,fmaddsf,fhex")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
176 "x_e1_t,x-wr-fp") |
0 | 177 |
178 | |
179 (define_insn_reservation "x_fmultf" 33 | |
111 | 180 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 181 (eq_attr "type" "fmultf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
182 "x_e1_t*27,x-wr-fp") |
0 | 183 |
184 | |
185 (define_insn_reservation "x_fdivtf" 82 | |
111 | 186 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 187 (eq_attr "type" "fdivtf,fsqrttf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
188 "x_e1_t*76,x-wr-fp") |
0 | 189 |
190 (define_insn_reservation "x_fdivdf" 36 | |
111 | 191 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 192 (eq_attr "type" "fdivdf,fsqrtdf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
193 "x_e1_t*30,x-wr-fp") |
0 | 194 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
195 (define_insn_reservation "x_fdivsf" 36 |
111 | 196 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 197 (eq_attr "type" "fdivsf,fsqrtsf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
198 "x_e1_t*30,x-wr-fp") |
0 | 199 |
200 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
201 (define_insn_reservation "x_floadtf" 6 |
111 | 202 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 203 (eq_attr "type" "floadtf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
204 "x_e1_t,x-wr-fp") |
0 | 205 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
206 (define_insn_reservation "x_floaddf" 6 |
111 | 207 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 208 (eq_attr "type" "floaddf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
209 "x_e1_t,x-wr-fp") |
0 | 210 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
211 (define_insn_reservation "x_floadsf" 6 |
111 | 212 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 213 (eq_attr "type" "floadsf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
214 "x_e1_t,x-wr-fp") |
0 | 215 |
216 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
217 (define_insn_reservation "x_fstoredf" 1 |
111 | 218 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 219 (eq_attr "type" "fstoredf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
220 "x_e1_t,x-wr-fp") |
0 | 221 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
222 (define_insn_reservation "x_fstoresf" 1 |
111 | 223 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 224 (eq_attr "type" "fstoresf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
225 "x_e1_t,x-wr-fp") |
0 | 226 |
227 | |
228 (define_insn_reservation "x_ftrunctf" 16 | |
111 | 229 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 230 (eq_attr "type" "ftrunctf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
231 "x_e1_t*10,x-wr-fp") |
0 | 232 |
233 (define_insn_reservation "x_ftruncdf" 11 | |
111 | 234 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 235 (eq_attr "type" "ftruncdf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
236 "x_e1_t*5,x-wr-fp") |
0 | 237 |
238 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
239 (define_insn_reservation "x_ftoi" 1 |
111 | 240 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 241 (eq_attr "type" "ftoi")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
242 "x_e1_t*3,x-wr-fp") |
0 | 243 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
244 (define_insn_reservation "x_itof" 7 |
111 | 245 (and (eq_attr "cpu" "z990,z9_109,z9_ec") |
0 | 246 (eq_attr "type" "itoftf,itofdf,itofsf")) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
247 "x_e1_t*3,x-wr-fp") |
0 | 248 |
249 (define_bypass 1 "x_fsimpdf" "x_fstoredf") | |
250 | |
251 (define_bypass 1 "x_fsimpsf" "x_fstoresf") | |
252 | |
253 (define_bypass 1 "x_floaddf" "x_fsimpdf,x_fstoredf,x_floaddf") | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
254 |
0 | 255 (define_bypass 1 "x_floadsf" "x_fsimpsf,x_fstoresf,x_floadsf") |
256 | |
257 ;; | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
258 ;; s390_agen_dep_p returns 1, if a register is set in the |
0 | 259 ;; first insn and used in the dependent insn to form a address. |
260 ;; | |
261 | |
262 ;; | |
263 ;; If an instruction uses a register to address memory, it needs | |
264 ;; to be set 5 cycles in advance. | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
265 ;; |
0 | 266 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
267 (define_bypass 5 "x_int,x_agen,x_lr" |
0 | 268 "x_agen,x_la,x_branch,x_call,x_load,x_store,x_cs,x_stm,x_lm,x_other" |
269 "s390_agen_dep_p") | |
270 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
271 (define_bypass 9 "x_int,x_agen,x_lr" |
0 | 272 "x_floadtf, x_floaddf, x_floadsf, x_fstoredf, x_fstoresf,\ |
273 x_fsimpdf, x_fsimpsf, x_fdivdf, x_fdivsf" | |
274 "s390_agen_dep_p") | |
275 ;; | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
276 ;; A load type instruction uses a bypass to feed the result back |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
277 ;; to the address generation pipeline stage. |
0 | 278 ;; |
279 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
280 (define_bypass 4 "x_load" |
0 | 281 "x_agen,x_la,x_branch,x_call,x_load,x_store,x_cs,x_stm,x_lm,x_other" |
282 "s390_agen_dep_p") | |
283 | |
284 (define_bypass 5 "x_load" | |
285 "x_floadtf, x_floaddf, x_floadsf, x_fstoredf, x_fstoresf,\ | |
286 x_fsimpdf, x_fsimpsf, x_fdivdf, x_fdivsf" | |
287 "s390_agen_dep_p") | |
288 | |
289 ;; | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
290 ;; A load address type instruction uses a bypass to feed the |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
291 ;; result back to the address generation pipeline stage. |
0 | 292 ;; |
293 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
294 (define_bypass 3 "x_larl,x_la" |
0 | 295 "x_agen,x_la,x_branch,x_call,x_load,x_store,x_cs,x_stm,x_lm,x_other" |
296 "s390_agen_dep_p") | |
297 | |
298 (define_bypass 5 "x_larl, x_la" | |
299 "x_floadtf, x_floaddf, x_floadsf, x_fstoredf, x_fstoresf,\ | |
300 x_fsimpdf, x_fsimpsf, x_fdivdf, x_fdivsf" | |
301 "s390_agen_dep_p") | |
302 | |
303 ;; | |
304 ;; Operand forwarding | |
305 ;; | |
306 | |
307 (define_bypass 0 "x_lr,x_la,x_load" "x_int,x_lr") | |
308 | |
309 |