Mercurial > hg > CbC > CbC_gcc
annotate gcc/config/rs6000/rios1.md @ 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 |
rev | line source |
---|---|
0 | 1 ;; Scheduling description for IBM POWER processor. |
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) 2003, 2004, 2007, 2009 Free Software Foundation, Inc. |
0 | 3 ;; |
4 ;; This file is part of GCC. | |
5 | |
6 ;; GCC is free software; you can redistribute it and/or modify it | |
7 ;; under the terms of the GNU General Public License as published | |
8 ;; by the Free Software Foundation; either version 3, or (at your | |
9 ;; option) any later version. | |
10 | |
11 ;; GCC is distributed in the hope that it will be useful, but WITHOUT | |
12 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
13 ;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public | |
14 ;; 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 (define_automaton "rios1,rios1fp") | |
21 (define_cpu_unit "iu_rios1" "rios1") | |
22 (define_cpu_unit "fpu_rios1" "rios1fp") | |
23 (define_cpu_unit "bpu_rios1" "rios1") | |
24 | |
25 ;; RIOS1 32-bit IU, FPU, BPU | |
26 | |
27 (define_insn_reservation "rios1-load" 2 | |
28 (and (eq_attr "type" "load,load_ext,load_ext_u,load_ext_ux,load_ux,load_u,\ | |
29 load_l,store_c,sync") | |
30 (eq_attr "cpu" "rios1,ppc601")) | |
31 "iu_rios1") | |
32 | |
33 (define_insn_reservation "rios1-store" 2 | |
34 (and (eq_attr "type" "store,store_ux,store_u") | |
35 (eq_attr "cpu" "rios1,ppc601")) | |
36 "iu_rios1") | |
37 | |
38 (define_insn_reservation "rios1-fpload" 2 | |
39 (and (eq_attr "type" "fpload,fpload_ux,fpload_u") | |
40 (eq_attr "cpu" "rios1")) | |
41 "iu_rios1") | |
42 | |
43 (define_insn_reservation "ppc601-fpload" 3 | |
44 (and (eq_attr "type" "fpload,fpload_ux,fpload_u") | |
45 (eq_attr "cpu" "ppc601")) | |
46 "iu_rios1") | |
47 | |
48 (define_insn_reservation "rios1-fpstore" 3 | |
49 (and (eq_attr "type" "fpstore,fpstore_ux,fpstore_u") | |
50 (eq_attr "cpu" "rios1,ppc601")) | |
51 "iu_rios1+fpu_rios1") | |
52 | |
53 (define_insn_reservation "rios1-integer" 1 | |
54 (and (eq_attr "type" "integer,insert_word,insert_dword,shift,\ | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
55 trap,var_shift_rotate,cntlz,exts,isel") |
0 | 56 (eq_attr "cpu" "rios1,ppc601")) |
57 "iu_rios1") | |
58 | |
59 (define_insn_reservation "rios1-two" 1 | |
60 (and (eq_attr "type" "two") | |
61 (eq_attr "cpu" "rios1,ppc601")) | |
62 "iu_rios1,iu_rios1") | |
63 | |
64 (define_insn_reservation "rios1-three" 1 | |
65 (and (eq_attr "type" "three") | |
66 (eq_attr "cpu" "rios1,ppc601")) | |
67 "iu_rios1,iu_rios1,iu_rios1") | |
68 | |
69 (define_insn_reservation "rios1-imul" 5 | |
70 (and (eq_attr "type" "imul,imul_compare") | |
71 (eq_attr "cpu" "rios1")) | |
72 "iu_rios1*5") | |
73 | |
74 (define_insn_reservation "rios1-imul2" 4 | |
75 (and (eq_attr "type" "imul2") | |
76 (eq_attr "cpu" "rios1")) | |
77 "iu_rios1*4") | |
78 | |
79 (define_insn_reservation "rios1-imul3" 3 | |
80 (and (eq_attr "type" "imul") | |
81 (eq_attr "cpu" "rios1")) | |
82 "iu_rios1*3") | |
83 | |
84 (define_insn_reservation "ppc601-imul" 5 | |
85 (and (eq_attr "type" "imul,imul2,imul3,imul_compare") | |
86 (eq_attr "cpu" "ppc601")) | |
87 "iu_rios1*5") | |
88 | |
89 (define_insn_reservation "rios1-idiv" 19 | |
90 (and (eq_attr "type" "idiv") | |
91 (eq_attr "cpu" "rios1")) | |
92 "iu_rios1*19") | |
93 | |
94 (define_insn_reservation "ppc601-idiv" 36 | |
95 (and (eq_attr "type" "idiv") | |
96 (eq_attr "cpu" "ppc601")) | |
97 "iu_rios1*36") | |
98 | |
99 ; compare executes on integer unit, but feeds insns which | |
100 ; execute on the branch unit. | |
101 (define_insn_reservation "rios1-compare" 4 | |
102 (and (eq_attr "type" "cmp,fast_compare,compare") | |
103 (eq_attr "cpu" "rios1")) | |
104 "iu_rios1,nothing*2,bpu_rios1") | |
105 | |
106 (define_insn_reservation "rios1-delayed_compare" 5 | |
107 (and (eq_attr "type" "delayed_compare,var_delayed_compare") | |
108 (eq_attr "cpu" "rios1")) | |
109 "iu_rios1,nothing*3,bpu_rios1") | |
110 | |
111 (define_insn_reservation "ppc601-compare" 3 | |
112 (and (eq_attr "type" "cmp,compare,delayed_compare,\ | |
113 var_delayed_compare") | |
114 (eq_attr "cpu" "ppc601")) | |
115 "iu_rios1,nothing,bpu_rios1") | |
116 | |
117 (define_insn_reservation "rios1-fpcompare" 9 | |
118 (and (eq_attr "type" "fpcompare") | |
119 (eq_attr "cpu" "rios1")) | |
120 "fpu_rios1,nothing*3,bpu_rios1") | |
121 | |
122 (define_insn_reservation "ppc601-fpcompare" 5 | |
123 (and (eq_attr "type" "fpcompare") | |
124 (eq_attr "cpu" "ppc601")) | |
125 "(fpu_rios1+iu_rios1*2),nothing*2,bpu_rios1") | |
126 | |
127 (define_insn_reservation "rios1-fp" 2 | |
128 (and (eq_attr "type" "fp,dmul") | |
129 (eq_attr "cpu" "rios1")) | |
130 "fpu_rios1") | |
131 | |
132 (define_insn_reservation "ppc601-fp" 4 | |
133 (and (eq_attr "type" "fp") | |
134 (eq_attr "cpu" "ppc601")) | |
135 "fpu_rios1") | |
136 | |
137 (define_insn_reservation "rios1-dmul" 5 | |
138 (and (eq_attr "type" "dmul") | |
139 (eq_attr "cpu" "ppc601")) | |
140 "fpu_rios1*2") | |
141 | |
142 (define_insn_reservation "rios1-sdiv" 19 | |
143 (and (eq_attr "type" "sdiv,ddiv") | |
144 (eq_attr "cpu" "rios1")) | |
145 "fpu_rios1*19") | |
146 | |
147 (define_insn_reservation "ppc601-sdiv" 17 | |
148 (and (eq_attr "type" "sdiv") | |
149 (eq_attr "cpu" "ppc601")) | |
150 "fpu_rios1*17") | |
151 | |
152 (define_insn_reservation "ppc601-ddiv" 31 | |
153 (and (eq_attr "type" "ddiv") | |
154 (eq_attr "cpu" "ppc601")) | |
155 "fpu_rios1*31") | |
156 | |
157 (define_insn_reservation "rios1-mfcr" 2 | |
158 (and (eq_attr "type" "mfcr") | |
159 (eq_attr "cpu" "rios1,ppc601")) | |
160 "iu_rios1,bpu_rios1") | |
161 | |
162 (define_insn_reservation "rios1-mtcr" 4 | |
163 (and (eq_attr "type" "mtcr") | |
164 (eq_attr "cpu" "rios1,ppc601")) | |
165 "iu_rios1,bpu_rios1") | |
166 | |
167 (define_insn_reservation "rios1-crlogical" 4 | |
168 (and (eq_attr "type" "cr_logical,delayed_cr") | |
169 (eq_attr "cpu" "rios1,ppc601")) | |
170 "bpu_rios1") | |
171 | |
172 (define_insn_reservation "rios1-mtjmpr" 5 | |
173 (and (eq_attr "type" "mtjmpr") | |
174 (eq_attr "cpu" "rios1")) | |
175 "iu_rios1,bpu_rios1") | |
176 | |
177 (define_insn_reservation "ppc601-mtjmpr" 4 | |
178 (and (eq_attr "type" "mtjmpr") | |
179 (eq_attr "cpu" "ppc601")) | |
180 "iu_rios1,bpu_rios1") | |
181 | |
182 (define_insn_reservation "rios1-mfjmpr" 2 | |
183 (and (eq_attr "type" "mfjmpr") | |
184 (eq_attr "cpu" "rios1,ppc601")) | |
185 "iu_rios1,bpu_rios1") | |
186 | |
187 (define_insn_reservation "rios1-branch" 1 | |
188 (and (eq_attr "type" "jmpreg,branch,isync") | |
189 (eq_attr "cpu" "rios1,ppc601")) | |
190 "bpu_rios1") | |
191 |