1 2010-01-02 Doug Evans <dje@sebabeach.org>
3 * sh-desc.h, * sh2-cpu.h, * sh2-decode.cxx, * sh2-decode.h,
4 * sh2-defs.h, * sh2-model.cxx, * sh2-model.h, * sh2-sem.cxx,
5 * sh2-write.cxx, * sh2a-fpu-cpu.h, * sh2a-fpu-decode.cxx,
6 * sh2a-fpu-decode.h, * sh2a-fpu-defs.h, * sh2a-fpu-model.cxx,
7 * sh2a-fpu-model.h, * sh2a-fpu-sem.cxx, * sh2a-fpu-write.cxx,
8 * sh2a-nofpu-cpu.h, * sh2a-nofpu-decode.cxx, * sh2a-nofpu-decode.h,
9 * sh2a-nofpu-defs.h, * sh2a-nofpu-model.cxx, * sh2a-nofpu-model.h,
10 * sh2a-nofpu-sem.cxx, * sh2a-nofpu-write.cxx, * sh2e-cpu.h,
11 * sh2e-decode.cxx, * sh2e-decode.h, * sh2e-defs.h, * sh2e-model.cxx,
12 * sh2e-model.h, * sh2e-sem.cxx, * sh2e-write.cxx, * sh3-cpu.h,
13 * sh3-decode.cxx, * sh3-decode.h, * sh3-defs.h, * sh3-model.cxx,
14 * sh3-model.h, * sh3-sem.cxx, * sh3-write.cxx, * sh3e-cpu.h,
15 * sh3e-decode.cxx, * sh3e-decode.h, * sh3e-defs.h, * sh3e-model.cxx,
16 * sh3e-model.h, * sh3e-sem.cxx, * sh3e-write.cxx, * sh4-cpu.h,
17 * sh4-decode.cxx, * sh4-decode.h, * sh4-defs.h, * sh4-model.cxx,
18 * sh4-model.h, * sh4-nofpu-cpu.h, * sh4-nofpu-decode.cxx,
19 * sh4-nofpu-decode.h, * sh4-nofpu-defs.h, * sh4-nofpu-model.cxx,
20 * sh4-nofpu-model.h, * sh4-nofpu-sem.cxx, * sh4-nofpu-write.cxx,
21 * sh4-sem.cxx, * sh4-write.cxx, * sh4a-cpu.h, * sh4a-decode.cxx,
22 * sh4a-decode.h, * sh4a-defs.h, * sh4a-model.cxx, * sh4a-model.h,
23 * sh4a-nofpu-cpu.h, * sh4a-nofpu-decode.cxx, * sh4a-nofpu-decode.h,
24 * sh4a-nofpu-defs.h, * sh4a-nofpu-model.cxx, * sh4a-nofpu-model.h,
25 * sh4a-nofpu-sem.cxx, * sh4a-nofpu-write.cxx, * sh4a-sem.cxx,
26 * sh4a-write.cxx, * sh4al-cpu.h, * sh4al-decode.cxx, * sh4al-decode.h,
27 * sh4al-defs.h, * sh4al-model.cxx, * sh4al-model.h, * sh4al-sem.cxx,
28 * sh4al-write.cxx, * sh5-compact-decode.cxx, * sh5-compact-decode.h,
29 * sh5-compact-defs.h, * sh5-compact-model.cxx, * sh5-compact-model.h,
30 * sh5-compact-sem.cxx, * sh5-compact-write.cxx, * sh5-cpu.h,
31 * sh5-media-decode.cxx, * sh5-media-decode.h, * sh5-media-defs.h,
32 * sh5-media-model.cxx, * sh5-media-model.h, * sh5-media-sem.cxx,
33 * sh5-media-write.cxx: Regenerate.
35 2009-11-23 Doug Evans <dje@sebabeach.org>
37 * sh2-decode.cxx: Regenerate.
38 * sh2a-fpu-decode.cxx: Regenerate.
39 * sh2a-nofpu-decode.cxx: Regenerate.
40 * sh2e-decode.cxx: Regenerate.
41 * sh3-decode.cxx: Regenerate.
42 * sh3e-decode.cxx: Regenerate.
43 * sh4-decode.cxx: Regenerate.
44 * sh4-nofpu-decode.cxx: Regenerate.
45 * sh4a-decode.cxx: Regenerate.
46 * sh4a-nofpu-decode.cxx: Regenerate.
47 * sh4al-decode.cxx: Regenerate.
48 * sh5-compact-decode.cxx: Regenerate.
49 * sh5-media-decode.cxx: Regenerate.
51 2009-10-23 Doug Evans <dje@sebabeach.org>
53 * sh-desc.h: Regenerate.
54 * sh2-decode.cxx: Regenerate.
55 * sh2a-fpu-decode.cxx: Regenerate.
56 * sh2a-nofpu-decode.cxx: Regenerate.
57 * sh2e-decode.cxx: Regenerate.
58 * sh3-decode.cxx: Regenerate.
59 * sh3e-decode.cxx: Regenerate.
60 * sh4-decode.cxx: Regenerate.
61 * sh4-nofpu-decode.cxx: Regenerate.
62 * sh4a-decode.cxx: Regenerate.
63 * sh4a-nofpu-decode.cxx: Regenerate.
64 * sh4al-decode.cxx: Regenerate.
65 * sh5-compact-decode.cxx: Regenerate.
66 * sh5-media-decode.cxx: Regenerate.
68 2007-08-13 Frank Ch. Eigler <fche@redhat.com>
70 * sh.h: Protect CGEN_CPU_FPU macro against multiple definitions.
71 * common_model.h: Change #include guard name.
73 2006-10-18 Dave Brolley <brolley@redhat.com>
75 * Contribute the following changes:
77 2006-06-26 Dave Brolley <brolley@redhat.com>
79 * sh5.h (get_pc_hi): New method of sh5_cpu.
80 * sh.h (set_pc): New method of sh_cpu.
82 2006-06-20 Dave Brolley <brolley@redhat.com>
84 * sh_vliw.cxx (step_insns): After catching fp::error,
85 use insn_size and h_ism_get to compute the new pc.
86 * sh5.cxx (prefetch): Use GETIMEMHI.
87 * common_model.cxx: Add missing template instantiations.
88 * sh2a-fpu-decode.cxx: Regenerated.
89 * sh2a-nofpu-decode.cxx: Regenerated.
90 * sh4-decode.cxx: Regenerated.
91 * sh4-nofpu-decode.cxx: Regenerated.
92 * sh5-compact-decode.cxx: Regenerated.
93 * sh5-compact-decode.h: Regenerated.
94 * sh5-compact-model.cxx: Regenerated.
95 * sh5-compact-model.h: Regenerated.
96 * sh5-compact-sem.cxx: Regenerated.
98 2006-06-14 Dave Brolley <brolley@redhat.com>
100 * sh_compact.h: (step_insns): Moved from sh_cpu.
101 (step_one_insn): Likewise.
102 (model_insn_before, model_step_latency, model_before)
103 (model_after, model_insn_after): Moved to sh5.cxx.
104 (cfg_address,branch_prediction,branch_optimization):
105 Moved lower in the class heirarchy.
107 * sh_compact.cxx: Don't #include "config.h".
108 (step_insns): Moved from sh_cpu.
109 (step_one_insn): Likewise.
110 * sh5.h (SH5_CPU_BASE): New macro.
111 (SH5_CPU_NON_VLIW_BASE): New macro.
112 (execute_insn): New method takes scache argument.
113 (prefetch): New method.
114 (trace_counter): New method.
115 (model_insn_before, model_step_latency, model_before)
116 (model_after, model_insn_after): New methods.
117 (sh64_save_cfg_address,sh64_get_cfg_address)
118 (save_branch_predication,get_branch_predication)
119 (save_branch_optimization,get_branch_optimization)
120 (prefetch,compact_insn_pending,fetch_insn): New methods.
121 (model_insn_before, model_step_latency, model_before)
122 (model_after, model_insn_after): Moved to sh5.cxx.
123 (cfg_address,branch_prediction,branch_optimization):
125 * sh5.cxx: Don't #include "config.h".
126 (decode_insn): Check compact_insn_pending.
127 (fetch_insn): Check compact_p.
128 (execute_insn): New method takes scache argument.
129 (prefetch): New method.
130 (trace_counter): New method.
131 (model_insn_before, model_step_latency, model_before)
132 (model_after, model_insn_after): Moved from sh5.h.
133 * sh2a_model.cxx: Don't #include "config.h".
134 #include "sh4*.h". Add additional explicit template
136 (sh2a_model): Initialize vbr_busy.
137 (model_u_memory_access_after): Use exec_cycles.
138 (model_u_macw_after): Use exec_cycles. Use add_multiply_busy.
139 (model_u_macl_after): New method.
140 (model_u_branch_after): New method.
141 (branch_stall): New method.
142 (model_u_dmul_after): Use add_multiply_busy.
143 (model_u_mulr_after, model_u_mull_after): New methods.
144 (model_u_multiply_after): Don't check for mull.
145 (model_u_mulr_gr_after): Use UNIT_U_MULR.
146 (model_u_tas_after): 3 additional cycles.
147 (model_u_set_sr_after): Removed.
148 (model_u_ldcl_after): 1 Additional cycle.
149 (model_u_load_mac_after): Use exec_cycles.
150 (step_latency): Update gbr_busy, vbr_busy, current_branch_stall.
151 (parallel_possible): Always true.
152 (sh2a_fpu_model): Now a template.
153 (model_u_use_fpul_before): Check for sts vs stsl.
154 (model_u_lds_fpscr_before): New method.
155 (model_u_fpu_memory_access_after): Use exec_cycles.
156 (model_u_ldsl_fpscr_after): New method.
157 (model_u_load_fr_after): Use unit_cycles.
158 (model_u_fpu_load_gr_after): Use exec_cycles.
159 * sh2a_model.h (model_u_macl_after): New method.
160 (model_u_branch_after): New method.
161 (branch_stall): New method.
162 (model_u_mulr_after, model_u_mull_after): New methods.
163 (model_u_lds_fpscr_before): New method.
164 (model_u_ldsl_fpscr_after): New method.
165 (model_u_set_sr_after): Removed.
166 (insn_is_macl,insn_is_mull): Removed.
167 (sh2a_fpu_model): Now a template.
168 (insn_is_stsl_fpul): New methods.
169 * sh2a_fpu.h (SH2A_FPU_BASE): Update template specification.
170 * sh2a.cxx (sh2a_cpu_base): Now inherits from sh_vliw_cpu.
171 (reset,reset_vliw): Removed.
172 (is_cti_insn,is_32_bit_insn): Removed.
173 (model_step_latency,save_pre_fetch_latency,model_insn_before)
174 (model_before,trace_counter,disassemble,execute_insn)
175 (model_after,model_insn_after,next_pc): Removed.
176 (parallel_possible): Now takes insn_info<SCACHE>*.
177 (fetch_insn): New method.
178 * sh2a.h: insn_info now a file scope class.
179 (sh2a_cpu_base): Now inherits from sh_vliw_cpu.
180 (reset,reset_vliw): Removed.
181 (is_cti_insn,is_32_bit_insn): Removed.
182 (model_step_latency,save_pre_fetch_latency,model_insn_before)
183 (model_before,trace_counter,disassemble,execute_insn)
184 (model_after,model_insn_after,next_pc): Removed.
185 (branch_taken,model_branch_taken,model_branch_taken_p)
186 (model_reduce_latency,cpu,next_insn_in_delay_slot_p): Removed.
187 (vliw_insns): Removed.
188 (parallel_possible): Now takes insn_info<SCACHE>*.
189 (fetch_insn): New method.
190 * sh3.h: Update sh_compact_cpu template specification.
191 * sh3e.h: Update sh_compact_cpu template specification.
192 * sh4.cxx: Don't #include "config.h".
193 (execute_insn): Now takes scache argument.
194 (parallel_allowed): New table.
195 (parallel_allowed): New method.
196 * sh4.h (execute_insn): Now takes scache argument.
197 (parallel_allowed): New table.
198 (parallel_allowed): New method.
199 * sh4_nofpu.cxx: Don't #include "config.h".
200 (execute_insn): Now takes scache argument.
201 * sh4_nofpu.h (execute_insn): Now takes scache argument.
202 * sh4a.cxx: Don't #include "config.h".
203 (execute_insn): Now takes scache argument.
204 (parallel_allowed): New table.
205 (parallel_allowed): New method.
206 * sh4a.h (execute_insn): Now takes scache argument.
207 * sh4a_nofpu.cxx: Don't #include "config.h".
208 (execute_insn): Now takes scache argument.
209 * sh4a_nofpu.h (execute_insn): Now takes scache argument.
210 * sh4al.cxx: Don't #include "config.h".
211 (execute_insn): Now takes scache argument.
212 * sh4a.h (execute_insn): Now takes scache argument.
213 * sh2.cxx: Don't #include "config.h".
214 * sh2a_fpu.cxx: Don't #include "config.h".
215 * sh2a_nofpu.cxx: Don't #include "config.h".
216 * sh2e.cxx: Don't #include "config.h".
217 * sh3.cxx: Don't #include "config.h".
218 * sh3.cxx: Don't #include "config.h".
219 * sh3e.cxx: Don't #include "config.h".
220 * sh.h (sh_cpu_cgen): Initialize fpu.
221 (fpu): New member of sh_cpu_cgen.
222 (step_insns): Moved lower in the class heirarchy.
223 (step_one_insn): Likewise.
224 (write_stacks_writeback, update_tick): Likewise.
225 (model_insn_before,model_step_latency,model_before)
226 (model_after,model_insn_after,check_vliw,reset_vliw)
227 (decode_insn,execute_insn,disassemble): Likewise.
228 (model_status): New enumeration.
229 (parallel_possible_p): New member of sh_cpu.
230 (current_insn_sampled,sample_gprof_pin): Removed.
231 (fpu): MOved to sh_cpu_cgen.
232 * sh.cxx: Don't #include "config.h". Removed unused code.
233 (sh_cpu): current_insn_sampled, fpu removed.
234 (reset): Initialize total_latency to 2 if profiling.
235 (step_insns): Moved lower in the class heirarchy.
236 (step_one_insn): Likewise.
237 * common_model.cxx: Don't #include "config.h". Remove vliw_adjust.
238 (sh_common_model): Initialize fpu_busy. Use num_gpr.
239 (set_fpu_busy): New method.
240 (model_before): Don't call check_vliw. Initialize exec_cycles.
241 (model_u_exec_after, model_u_sx_after, model_u_logic_b_after)
242 (model_u_ldcl_after, model_u_ldcl_vbr_after)
243 (model_u_sts_pr_after, model_u_tas_after, model_u_lds_pr_after):
245 (model_u_jmp_after, model_u_jsr_after): New methods.
246 (model_u_load_pr_after): Use exec_cycles, unit_cycles.
247 (model_u_load_gr_after): Use exec_cycles.
248 (model_u_macw_after): Call model_mac_after.
249 (model_u_dmul_after, model_u_mull_after): Likewise.
250 (model_u_macl_after): New method.
251 (sh_common_model::step_latency): Don't call BASE::step_latency.
252 Use num_gr. Update fpu_busy.
253 (model_mac_after): New method.
254 (sh_common_model_with_fp): Initialize fpscr_busy. fpu_busy removed.
256 (set_fpscr_busy): New method.
257 (sh_common_model_with_fp::fpu_busy): Removed.
258 (model_u_maybe_fpu_before): New method.
259 (model_u_flds_fpul_before): Call model_u_maybe_fpu_before.
260 (model_u_lds_fpscr_after, model_u_ldsl_fpscr_after): New methods.
261 (model_u_fpu_after): Set exec_cycles. Call set_fpscr_busy.
262 (model_u_maybe_fpu_after): New method.
263 (model_u_fcnv_after): New method.
264 (model_u_load_fr_after): Use exec_cycles.
265 (model_u_set_fr_after): Likewise.
266 (model_u_set_fpul_after): Likewise.
267 (model_u_load_fpul_after): Likewise.
268 (model_u_set_fr_0_before): Removed.
269 (model_u_set_fr_0_after): Don't call model_u_fpu_after.
270 (model_u_flds_fpul_after): Call model_u_maybe_fpu_after.
271 (step_latency): Use num_fpu.
272 (model_u_shift_after): Use exec_cycles.
273 (sh5_media*): Now based on sh_common_model_with_vliw.
274 * common_model.h: (set_fpu_busy): New method.
275 (model_u_sts_pr_after, model_u_tas_after, model_u_lds_pr_after):
277 (model_u_jmp_after, model_u_jsr_after): New methods.
278 (model_u_macl_after): New method.
279 (model_mac_after): New method.
280 (set_fpscr_busy): New method.
281 (model_u_maybe_fpu_before): New method.
282 (model_u_lds_fpscr_after, model_u_ldsl_fpscr_after): New methods.
283 (model_u_maybe_fpu_after): New method.
284 (model_u_fcnv_after): New method.
285 (reduce_saved_latency): New method.
286 (branch_stall): New method.
287 (num_gpr): New method.
288 (sh_commmon_model::step_latency): Default parameter value now 0.
289 (fpu_busy): Moved to sh_common_Model from sh_common_model_with_fp.
290 (gpr_busy): Now 64 elements.
291 (exec_cycles): New member of sh_common_model.
292 (model_u_set_fr_0_before): Removed.
293 (sh_commmon_model_with_fp::step_latency): Default parameter value now 0.
294 (fpscr_busy): New member.
295 (fpr_busy): now 64 elements.
296 (sh_commmon_model_with_vliw::step_latency): Default parameter value now 0.
297 * Makefile.am (libsh_la_SOURCES): Add sh3_model.cxx, sh4_model.cxx,
298 sh4a_model.cxx, sh5_model.cxx, sh_vliw.cxx.
299 * Makefile.in: Regenerated.
300 * sh3_model.cxx: New file.
301 * sh3_model.h: New file.
302 * sh4_model.cxx: New file.
303 * sh4_model.h: New file.
304 * sh4a_model.cxx: New file.
305 * sh4a_model.h: New file.
306 * sh4al_model.h: New file.
307 * sh5_model.cxx: New file.
308 * sh5_model.h: New file.
309 * sh_vliw.cxx: New file.
310 * sh_vliw.h: New file.
311 * sh*-{cpu,defs,decode,model,sem,write}.{cxx,h}: Regenerated.
313 2006-05-11 Dave Brolley <brolley@redhat.com>