annotate gcc/config/mips/octeon.md @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 ;; Octeon pipeline description.
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2 ;; Copyright (C) 2008-2018 Free Software Foundation, Inc.
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 ;; This file is part of GCC.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 ;; GCC is free software; you can redistribute it and/or modify
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 ;; it under the terms of the GNU General Public License as published by
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 ;; the Free Software Foundation; either version 3, or (at your option)
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 ;; any later version.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 ;; GCC is distributed in the hope that it will be useful,
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 ;; GNU General Public License for more details.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 ;; You should have received a copy of the GNU General Public License
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 ;; along with GCC; see the file COPYING3. If not see
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 ;; <http://www.gnu.org/licenses/>.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 ;; Copyright (C) 2004, 2005, 2006 Cavium Networks.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 ;; Octeon is a dual-issue processor that can issue all instructions on
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 ;; pipe0 and a subset on pipe1.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
111
kono
parents: 0
diff changeset
25 (define_automaton "octeon_main, octeon_mult, octeon_fpu")
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 (define_cpu_unit "octeon_pipe0" "octeon_main")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 (define_cpu_unit "octeon_pipe1" "octeon_main")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 (define_cpu_unit "octeon_mult" "octeon_mult")
111
kono
parents: 0
diff changeset
30 (define_cpu_unit "octeon_fpu" "octeon_fpu")
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 (define_insn_reservation "octeon_arith" 1
111
kono
parents: 0
diff changeset
33 (and (eq_attr "cpu" "octeon,octeon2,octeon3")
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 (eq_attr "type" "arith,const,logical,move,shift,signext,slt,nop"))
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 "octeon_pipe0 | octeon_pipe1")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
111
kono
parents: 0
diff changeset
37 (define_insn_reservation "octeon_condmove_o1" 2
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 (and (eq_attr "cpu" "octeon")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 (eq_attr "type" "condmove"))
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 "octeon_pipe0 | octeon_pipe1")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41
111
kono
parents: 0
diff changeset
42 (define_insn_reservation "octeon_condmove_o2" 3
kono
parents: 0
diff changeset
43 (and (eq_attr "cpu" "octeon2,octeon3")
kono
parents: 0
diff changeset
44 (eq_attr "type" "condmove")
kono
parents: 0
diff changeset
45 (not (eq_attr "mode" "SF, DF")))
kono
parents: 0
diff changeset
46 "octeon_pipe0 | octeon_pipe1")
kono
parents: 0
diff changeset
47
kono
parents: 0
diff changeset
48 ;; movt/movf can only issue in pipe1
kono
parents: 0
diff changeset
49 (define_insn_reservation "octeon_condmove_o3_int_on_cc" 3
kono
parents: 0
diff changeset
50 (and (eq_attr "cpu" "octeon2,octeon3")
kono
parents: 0
diff changeset
51 (eq_attr "type" "condmove")
kono
parents: 0
diff changeset
52 (not (eq_attr "mode" "SF, DF")))
kono
parents: 0
diff changeset
53 "octeon_pipe1")
kono
parents: 0
diff changeset
54
kono
parents: 0
diff changeset
55 (define_insn_reservation "octeon_load_o1" 2
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 (and (eq_attr "cpu" "octeon")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 (eq_attr "type" "load,prefetch,mtc,mfc"))
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 "octeon_pipe0")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
111
kono
parents: 0
diff changeset
60 (define_insn_reservation "octeon_load_o2" 3
kono
parents: 0
diff changeset
61 (and (eq_attr "cpu" "octeon2,octeon3")
kono
parents: 0
diff changeset
62 (eq_attr "type" "load,prefetch"))
kono
parents: 0
diff changeset
63 "octeon_pipe0")
kono
parents: 0
diff changeset
64
kono
parents: 0
diff changeset
65 ;; ??? memory-related cop0 reads are pipe0 with 3-cycle latency.
kono
parents: 0
diff changeset
66 ;; Front-end-related ones are 1-cycle on pipe1. Assume front-end for now.
kono
parents: 0
diff changeset
67 (define_insn_reservation "octeon_cop_o2" 1
kono
parents: 0
diff changeset
68 (and (eq_attr "cpu" "octeon2,octeon3")
kono
parents: 0
diff changeset
69 (eq_attr "type" "mtc,mfc"))
kono
parents: 0
diff changeset
70 "octeon_pipe1")
kono
parents: 0
diff changeset
71
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 (define_insn_reservation "octeon_store" 1
111
kono
parents: 0
diff changeset
73 (and (eq_attr "cpu" "octeon,octeon2,octeon3")
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 (eq_attr "type" "store"))
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 "octeon_pipe0")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
111
kono
parents: 0
diff changeset
77 (define_insn_reservation "octeon_brj_o1" 1
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 (and (eq_attr "cpu" "octeon")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 (eq_attr "type" "branch,jump,call,trap"))
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 "octeon_pipe0")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81
111
kono
parents: 0
diff changeset
82 (define_insn_reservation "octeon_brj_o2" 2
kono
parents: 0
diff changeset
83 (and (eq_attr "cpu" "octeon2,octeon3")
kono
parents: 0
diff changeset
84 (eq_attr "type" "branch,jump,call,trap"))
kono
parents: 0
diff changeset
85 "octeon_pipe1")
kono
parents: 0
diff changeset
86
kono
parents: 0
diff changeset
87 (define_insn_reservation "octeon_imul3_o1" 5
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 (and (eq_attr "cpu" "octeon")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 (eq_attr "type" "imul3,pop,clz"))
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 "(octeon_pipe0 | octeon_pipe1) + octeon_mult")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91
111
kono
parents: 0
diff changeset
92 (define_insn_reservation "octeon_imul3_o2" 6
kono
parents: 0
diff changeset
93 (and (eq_attr "cpu" "octeon2,octeon3")
kono
parents: 0
diff changeset
94 (eq_attr "type" "imul3,pop,clz"))
kono
parents: 0
diff changeset
95 "octeon_pipe1 + octeon_mult")
kono
parents: 0
diff changeset
96
kono
parents: 0
diff changeset
97 (define_insn_reservation "octeon_imul_o1" 2
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 (and (eq_attr "cpu" "octeon")
111
kono
parents: 0
diff changeset
99 (eq_attr "type" "imul,mthi,mtlo"))
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 "(octeon_pipe0 | octeon_pipe1) + octeon_mult, octeon_mult")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101
111
kono
parents: 0
diff changeset
102 (define_insn_reservation "octeon_imul_o2" 1
kono
parents: 0
diff changeset
103 (and (eq_attr "cpu" "octeon2,octeon3")
kono
parents: 0
diff changeset
104 (eq_attr "type" "imul,mthi,mtlo"))
kono
parents: 0
diff changeset
105 "octeon_pipe1 + octeon_mult")
kono
parents: 0
diff changeset
106
kono
parents: 0
diff changeset
107 (define_insn_reservation "octeon_mfhilo_o1" 5
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 (and (eq_attr "cpu" "octeon")
111
kono
parents: 0
diff changeset
109 (eq_attr "type" "mfhi,mflo"))
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 "(octeon_pipe0 | octeon_pipe1) + octeon_mult")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111
111
kono
parents: 0
diff changeset
112 (define_insn_reservation "octeon_mfhilo_o2" 6
kono
parents: 0
diff changeset
113 (and (eq_attr "cpu" "octeon2,octeon3")
kono
parents: 0
diff changeset
114 (eq_attr "type" "mfhi,mflo"))
kono
parents: 0
diff changeset
115 "octeon_pipe1 + octeon_mult")
kono
parents: 0
diff changeset
116
kono
parents: 0
diff changeset
117 (define_insn_reservation "octeon_imadd_o1" 4
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 (and (eq_attr "cpu" "octeon")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 (eq_attr "type" "imadd"))
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 "(octeon_pipe0 | octeon_pipe1) + octeon_mult, octeon_mult*3")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121
111
kono
parents: 0
diff changeset
122 (define_insn_reservation "octeon_imadd_o2" 1
kono
parents: 0
diff changeset
123 (and (eq_attr "cpu" "octeon2,octeon3")
kono
parents: 0
diff changeset
124 (eq_attr "type" "imadd"))
kono
parents: 0
diff changeset
125 "octeon_pipe1 + octeon_mult")
kono
parents: 0
diff changeset
126
kono
parents: 0
diff changeset
127 (define_insn_reservation "octeon_idiv_o1" 72
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 (and (eq_attr "cpu" "octeon")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 (eq_attr "type" "idiv"))
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 "(octeon_pipe0 | octeon_pipe1) + octeon_mult, octeon_mult*71")
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131
111
kono
parents: 0
diff changeset
132 (define_insn_reservation "octeon_idiv_o2_si" 18
kono
parents: 0
diff changeset
133 (and (eq_attr "cpu" "octeon2,octeon3")
kono
parents: 0
diff changeset
134 (eq_attr "mode" "SI")
kono
parents: 0
diff changeset
135 (eq_attr "type" "idiv"))
kono
parents: 0
diff changeset
136 "octeon_pipe1 + octeon_mult, octeon_mult*17")
kono
parents: 0
diff changeset
137
kono
parents: 0
diff changeset
138 (define_insn_reservation "octeon_idiv_o2_di" 35
kono
parents: 0
diff changeset
139 (and (eq_attr "cpu" "octeon2,octeon3")
kono
parents: 0
diff changeset
140 (eq_attr "mode" "DI")
kono
parents: 0
diff changeset
141 (eq_attr "type" "idiv"))
kono
parents: 0
diff changeset
142 "octeon_pipe1 + octeon_mult, octeon_mult*34")
kono
parents: 0
diff changeset
143
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 ;; Assume both pipes are needed for unknown and multiple-instruction
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 ;; patterns.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 (define_insn_reservation "octeon_unknown" 1
111
kono
parents: 0
diff changeset
148 (and (eq_attr "cpu" "octeon,octeon2,octeon3")
kono
parents: 0
diff changeset
149 (eq_attr "type" "unknown,multi,atomic,syncloop"))
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 "octeon_pipe0 + octeon_pipe1")
111
kono
parents: 0
diff changeset
151
kono
parents: 0
diff changeset
152 ;; Octeon3 FPU
kono
parents: 0
diff changeset
153
kono
parents: 0
diff changeset
154 (define_insn_reservation "octeon3_faddsubcvt" 4
kono
parents: 0
diff changeset
155 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
156 (eq_attr "type" "fadd, fcvt"))
kono
parents: 0
diff changeset
157 "octeon_pipe1 + octeon_fpu")
kono
parents: 0
diff changeset
158
kono
parents: 0
diff changeset
159 (define_insn_reservation "octeon3_fmul" 5
kono
parents: 0
diff changeset
160 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
161 (eq_attr "type" "fmul"))
kono
parents: 0
diff changeset
162 "octeon_pipe1 + octeon_fpu")
kono
parents: 0
diff changeset
163
kono
parents: 0
diff changeset
164 (define_insn_reservation "octeon3_fmadd" 9
kono
parents: 0
diff changeset
165 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
166 (eq_attr "type" "fmadd"))
kono
parents: 0
diff changeset
167 "octeon_pipe1 + octeon_fpu, octeon_fpu")
kono
parents: 0
diff changeset
168
kono
parents: 0
diff changeset
169 (define_insn_reservation "octeon3_div_sf" 12
kono
parents: 0
diff changeset
170 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
171 (eq_attr "type" "fdiv, frdiv")
kono
parents: 0
diff changeset
172 (eq_attr "mode" "SF"))
kono
parents: 0
diff changeset
173 "octeon_pipe1 + octeon_fpu, octeon_fpu*8")
kono
parents: 0
diff changeset
174
kono
parents: 0
diff changeset
175 (define_insn_reservation "octeon3_div_df" 22
kono
parents: 0
diff changeset
176 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
177 (eq_attr "type" "fdiv, frdiv")
kono
parents: 0
diff changeset
178 (eq_attr "mode" "SF"))
kono
parents: 0
diff changeset
179 "octeon_pipe1 + octeon_fpu, octeon_fpu*18")
kono
parents: 0
diff changeset
180
kono
parents: 0
diff changeset
181 (define_insn_reservation "octeon3_sqrt_sf" 16
kono
parents: 0
diff changeset
182 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
183 (eq_attr "type" "fsqrt")
kono
parents: 0
diff changeset
184 (eq_attr "mode" "SF"))
kono
parents: 0
diff changeset
185 "octeon_pipe1 + octeon_fpu, octeon_fpu*12")
kono
parents: 0
diff changeset
186
kono
parents: 0
diff changeset
187 (define_insn_reservation "octeon3_sqrt_df" 30
kono
parents: 0
diff changeset
188 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
189 (eq_attr "type" "fsqrt")
kono
parents: 0
diff changeset
190 (eq_attr "mode" "DF"))
kono
parents: 0
diff changeset
191 "octeon_pipe1 + octeon_fpu, octeon_fpu*26")
kono
parents: 0
diff changeset
192
kono
parents: 0
diff changeset
193 (define_insn_reservation "octeon3_rsqrt_sf" 27
kono
parents: 0
diff changeset
194 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
195 (eq_attr "type" "frsqrt")
kono
parents: 0
diff changeset
196 (eq_attr "mode" "SF"))
kono
parents: 0
diff changeset
197 "octeon_pipe1 + octeon_fpu, octeon_fpu*23")
kono
parents: 0
diff changeset
198
kono
parents: 0
diff changeset
199 (define_insn_reservation "octeon3_rsqrt_df" 51
kono
parents: 0
diff changeset
200 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
201 (eq_attr "type" "frsqrt")
kono
parents: 0
diff changeset
202 (eq_attr "mode" "DF"))
kono
parents: 0
diff changeset
203 "octeon_pipe1 + octeon_fpu, octeon_fpu*47")
kono
parents: 0
diff changeset
204
kono
parents: 0
diff changeset
205 (define_insn_reservation "octeon3_fabsnegmov" 2
kono
parents: 0
diff changeset
206 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
207 (eq_attr "type" "fabs, fneg, fmove"))
kono
parents: 0
diff changeset
208 "octeon_pipe1 + octeon_fpu")
kono
parents: 0
diff changeset
209
kono
parents: 0
diff changeset
210 (define_insn_reservation "octeon_fcond" 1
kono
parents: 0
diff changeset
211 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
212 (eq_attr "type" "fcmp"))
kono
parents: 0
diff changeset
213 "octeon_pipe1 + octeon_fpu")
kono
parents: 0
diff changeset
214
kono
parents: 0
diff changeset
215 (define_insn_reservation "octeon_fcondmov" 2
kono
parents: 0
diff changeset
216 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
217 (eq_attr "type" "condmove")
kono
parents: 0
diff changeset
218 (eq_attr "mode" "SF,DF"))
kono
parents: 0
diff changeset
219 "octeon_pipe1 + octeon_fpu")
kono
parents: 0
diff changeset
220
kono
parents: 0
diff changeset
221 (define_insn_reservation "octeon_fpmtc1" 2
kono
parents: 0
diff changeset
222 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
223 (eq_attr "type" "mtc"))
kono
parents: 0
diff changeset
224 "octeon_pipe1 + octeon_fpu")
kono
parents: 0
diff changeset
225
kono
parents: 0
diff changeset
226 (define_insn_reservation "octeon_fpmfc1" 6
kono
parents: 0
diff changeset
227 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
228 (eq_attr "type" "mtc"))
kono
parents: 0
diff changeset
229 "octeon_pipe1 + octeon_fpu")
kono
parents: 0
diff changeset
230
kono
parents: 0
diff changeset
231 (define_insn_reservation "octeon_fpload" 3
kono
parents: 0
diff changeset
232 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
233 (eq_attr "type" "fpload,fpidxload"))
kono
parents: 0
diff changeset
234 "octeon_pipe0 + octeon_fpu")
kono
parents: 0
diff changeset
235
kono
parents: 0
diff changeset
236 (define_insn_reservation "octeon_fpstore" 3
kono
parents: 0
diff changeset
237 (and (eq_attr "cpu" "octeon3")
kono
parents: 0
diff changeset
238 (eq_attr "type" "fpstore,fpidxstore"))
kono
parents: 0
diff changeset
239 "octeon_pipe0 + octeon_pipe1")