xref: /netbsd/external/gpl3/gdb.old/dist/sim/frv/ChangeLog (revision dc268d07)
12017-09-06  John Baldwin  <jhb@FreeBSD.org>
2
3	* configure: Regenerate.
4
52017-02-13  Mike Frysinger  <vapier@gentoo.org>
6
7	* decode.c (frvbf_init_idesc_table): Use ARRAY_SIZE.
8
92016-01-10  Mike Frysinger  <vapier@gentoo.org>
10
11	* config.in, configure: Regenerate.
12
132016-01-10  Mike Frysinger  <vapier@gentoo.org>
14
15	* configure: Regenerate.
16
172016-01-10  Mike Frysinger  <vapier@gentoo.org>
18
19	* configure.ac (SIM_AC_OPTION_ENVIRONMENT): Delete call.
20	* configure: Regenerate.
21
222016-01-10  Mike Frysinger  <vapier@gentoo.org>
23
24	* configure: Regenerate.
25
262016-01-10  Mike Frysinger  <vapier@gentoo.org>
27
28	* configure: Regenerate.
29
302016-01-10  Mike Frysinger  <vapier@gentoo.org>
31
32	* configure: Regenerate.
33
342016-01-10  Mike Frysinger  <vapier@gentoo.org>
35
36	* configure: Regenerate.
37
382016-01-10  Mike Frysinger  <vapier@gentoo.org>
39
40	* configure: Regenerate.
41
422016-01-09  Mike Frysinger  <vapier@gentoo.org>
43
44	* config.in, configure: Regenerate.
45
462016-01-06  Mike Frysinger  <vapier@gentoo.org>
47
48	* sim-if.c (sim_open): Mark argv const.
49	(sim_create_inferior): Mark argv and env const.
50
512016-01-04  Mike Frysinger  <vapier@gentoo.org>
52
53	* configure: Regenerate.
54
552016-01-03  Mike Frysinger  <vapier@gentoo.org>
56
57	* sim-if.c (sim_open): Update sim_parse_args comment.
58
592016-01-03  Mike Frysinger  <vapier@gentoo.org>
60
61	* TODO: Delete file.
62
632016-01-03  Mike Frysinger  <vapier@gentoo.org>
64
65	* configure.ac (SIM_AC_OPTION_HOSTENDIAN): Delete.
66	* configure: Regenerate.
67	* frv.c (frvbf_h_fr_double_get_handler): Change
68	CURRENT_HOST_BYTE_ORDER to HOST_BYTE_ORDER.
69	(frvbf_h_fr_double_set_handler): Likewise.
70
712016-01-02  Mike Frysinger  <vapier@gentoo.org>
72
73	* arch.h (TARGET_BIG_ENDIAN): Delete.
74	* configure.ac (SIM_AC_OPTION_ENDIAN): Change BIG_ENDIAN to BIG.
75	* configure: Regenerate.
76	* frv.c (frvbf_h_fr_double_get_handler): Change LITTLE_ENDIAN to
77	BFD_ENDIAN_LITTLE.
78	(frvbf_h_fr_double_set_handler): Likewise.
79
802016-01-02  Mike Frysinger  <vapier@gentoo.org>
81
82	* reset.c (frv_term): Change current_state to sd.
83	* sim-if.c (current_state): Delete.
84	(sim_open): Delete current_state assignment.
85
862015-12-27  Mike Frysinger  <vapier@gentoo.org>
87
88	* Makefile.in (SIM_OBJS): Delete sim-hload.o.
89
902015-12-26  Mike Frysinger  <vapier@gentoo.org>
91
92	* config.in, configure: Regenerate.
93
942015-12-26  Mike Frysinger  <vapier@gentoo.org>
95
96	* sim-if.c (sim_create_inferior): Replace old #if 0 code with dupargv.
97
982015-12-25  Mike Frysinger  <vapier@gentoo.org>
99
100	* devices.c: Delete file.
101	* frv-sim.h (MCCR_ADDR, MCCR_CP, MCCR_CM0, MCCR_CM1, frv_devices,
102	struct _device): Delete.
103	* Makefile.in (SIM_OBJS): Delete devices.o.
104	* sim-if.c (sim_open): Delete #if 0 code.
105	* tconfig.h: Delete file.
106
1072015-12-25  Mike Frysinger  <vapier@gentoo.org>
108
109	* Makefile.in (SIM_OBJS): Delete sim-model.o.
110	* tconfig.h (SIM_HAVE_MODEL): Delete.
111
1122015-12-25  Mike Frysinger  <vapier@gentoo.org>
113
114	* arch.c: Rename MACH to SIM_MACH.
115	* cpuall.h: Likewise.
116	* model.c: Rename MACH to SIM_MACH, MACH_IMP_PROPERTIES to
117	SIM_MACH_IMP_PROPERTIES, and MODEL to SIM_MODEL.
118
1192015-12-25  Mike Frysinger  <vapier@gentoo.org>
120
121	* sim-main.h (WITH_SCACHE_PBB): Move from ...
122	* tconfig.h (WITH_SCACHE_PBB): ... here.
123
1242015-12-25  Mike Frysinger  <vapier@gentoo.org>
125
126	* devices.c (device_error): Delete.
127
1282015-12-24  Mike Frysinger  <vapier@gentoo.org>
129
130	* tconfig.h (SIM_HANDLES_LMA): Delete.
131
1322015-12-24  Mike Frysinger  <vapier@gentoo.org>
133
134	* tconfig.h (SIM_HAVE_BREAKPOINTS, SIM_BREAKPOINT,
135	SIM_BREAKPOINT_SIZE): Delete.
136	* traps.c [SIM_HAVE_BREAKPOINTS] (frv_itrap): Delete sim breakpoint
137	code.
138	[SIM_HAVE_BREAKPOINTS] (frv_break): Likewise.
139
1402015-12-24  Mike Frysinger  <vapier@gentoo.org>
141
142	* tconfig.h (WITH_WATCHPOINTS): Delete.
143
1442015-12-24  Mike Frysinger  <vapier@gentoo.org>
145
146	* tconfig.h (SIM_HAVE_MEM_SIZE): Delete.
147
1482015-11-15  Mike Frysinger  <vapier@gentoo.org>
149
150	* Makefile.in (SIM_OBJS): Delete sim-reason.o, sim-reg.o, and
151	sim-stop.o.
152
1532015-11-14  Mike Frysinger  <vapier@gentoo.org>
154
155	* interp.c (sim_close): Rename to ...
156	(frv_sim_close): ... this.  Delete calls to frv_cgen_cpu_close and
157	sim_module_uninstall.
158	* sim-main.h (frv_sim_close): Declare.
159	(SIM_CLOSE_HOOK): Define.
160
1612015-06-23  Mike Frysinger  <vapier@gentoo.org>
162
163	* configure.ac (AC_ARG_ENABLE(sim-trapdump)): Call AS_HELP_STRING.
164	* configure: Regenerate.
165
1662015-06-12  Mike Frysinger  <vapier@gentoo.org>
167
168	* configure: Regenerate.
169
1702015-06-12  Mike Frysinger  <vapier@gentoo.org>
171
172	* configure: Regenerate.
173
1742015-06-12  Mike Frysinger  <vapier@gentoo.org>
175
176	* decode.c (frvbf_decode): Change TRACE_EXTRACT to CGEN_TRACE_EXTRACT.
177	* mloop.in (execute): Change TRACE_INSN_INIT to CGEN_TRACE_INSN_INIT,
178	TRACE_INSN to CGEN_TRACE_INSN, and TRACE_INSN_FINI to CGEN_TRACE_INSN_FINI.
179	* sem.c: Rename TRACE_RESULT to CGEN_TRACE_RESULT.
180
1812015-06-11  Mike Frysinger  <vapier@gentoo.org>
182
183	* sim-main.h (WITH_TRACE): Delete.
184
1852015-04-18  Mike Frysinger  <vapier@gentoo.org>
186
187	* sim-main.h (USING_SIM_BASE_H): Delete.
188
1892015-04-18  Mike Frysinger  <vapier@gentoo.org>
190
191	* sim-main.h (_sim_cpu, SIM_CPU): Delete.
192
1932015-04-18  Mike Frysinger  <vapier@gentoo.org>
194
195	* sim-main.h (sim_cia): Delete.
196	(frv_sim_engine_halt_hook): Move below includes.
197
1982015-04-17  Mike Frysinger  <vapier@gentoo.org>
199
200	* sim-main.h (CIA_GET, CIA_SET): Delete.
201	* traps.c (frv_sim_engine_halt_hook): Change CIA_SET to CPU_PC_SET.
202
2032015-04-15  Mike Frysinger  <vapier@gentoo.org>
204
205	* Makefile.in (SIM_OBJS): Delete sim-cpu.o.
206	* sim-main.h (STATE_CPU): Delete.
207
2082015-04-15  Mike Frysinger  <vapier@gentoo.org>
209
210	* sim-main.h (struct sim_state): Change cpu to an array of pointers.
211	(STATE_CPU): Handle WITH_SMP.
212
2132015-04-13  Mike Frysinger  <vapier@gentoo.org>
214
215	* configure: Regenerate.
216
2172015-04-06  Mike Frysinger  <vapier@gentoo.org>
218
219	* Makefile.in (SIM_OBJS): Delete sim-engine.o and sim-hrw.o.
220
2212015-03-31  Mike Frysinger  <vapier@gentoo.org>
222
223	* config.in, configure: Regenerate.
224
2252015-03-24  Mike Frysinger  <vapier@gentoo.org>
226
227	* configure: Regenerate.
228
2292015-03-24  Mike Frysinger  <vapier@gentoo.org>
230
231	* configure: Regenerate.
232
2332015-03-23  Mike Frysinger  <vapier@gentoo.org>
234
235	* configure: Regenerate.
236
2372015-03-23  Mike Frysinger  <vapier@gentoo.org>
238
239	* devices.c: Delete dv-sockser.h include.
240	(device_io_read_buffer): Delete uart code.
241	(device_io_write_buffer): Likewise.
242
2432015-03-23  Mike Frysinger  <vapier@gentoo.org>
244
245	* configure: Regenerate.
246
2472015-03-16  Mike Frysinger  <vapier@gentoo.org>
248
249	* aclocal.m4, config.in, configure: Regenerate.
250	* tconfig.in: Rename file ...
251	* tconfig.h: ... here.
252
2532015-03-15  Mike Frysinger  <vapier@gentoo.org>
254
255	* tconfig.in [HAVE_DV_SOCKSER]: Delete.
256
2572015-03-14  Mike Frysinger  <vapier@gentoo.org>
258
259	* Makefile.in (SIM_RUN_OBJS): Delete.
260
2612014-08-23  Hans-Peter Nilsson  <hp@axis.com>
262
263	* configure.ac: Default simulator hardware to off again.  Remove
264	dead frv_extra_objs substitution.
265	* configure: Regenerate.
266	* Makefile.in: Remove unused frv_extra_objs.
267
2682014-08-19  Alan Modra  <amodra@gmail.com>
269
270	* configure: Regenerate.
271
2722014-08-15  Roland McGrath  <mcgrathr@google.com>
273
274	* configure: Regenerate.
275	* config.in: Regenerate.
276
2772013-09-23  Alan Modra  <amodra@gmail.com>
278
279	* configure: Regenerate.
280
2812013-06-03  Mike Frysinger  <vapier@gentoo.org>
282
283	* aclocal.m4, configure: Regenerate.
284
2852013-03-30  Joel Sherrill  <joel.sherrill@oarcorp.com>
286	    Mike Frysinger  <vapier@gentoo.org>
287
288	* configure.ac: Add frv_extra_objs. Change simulator hardware
289	from always on to defaulting to yes it is enabled.
290	* Makefile.in: Conditionalize reference to dv-sockser.o.
291	* configure: Regenerated.
292
2932013-03-26  Mike Frysinger  <vapier@gentoo.org>
294
295	* configure: Regenerate.
296
2972013-03-23  Joel Sherrill  <joel.sherrill@oarcorp.com>
298
299	* configure.ac: Fail if dv-sockser.o not available.
300	Error when --disable-sim-hardware is specified.
301	* configure: Regenerated.
302
3032012-06-15  Joel Brobecker  <brobecker@adacore.com>
304
305	* config.in, configure: Regenerate.
306
3072012-03-24  Mike Frysinger  <vapier@gentoo.org>
308
309	* aclocal.m4, config.in, configure: Regenerate.
310
3112011-12-03  Mike Frysinger  <vapier@gentoo.org>
312
313	* aclocal.m4: New file.
314	* configure: Regenerate.
315
3162011-10-17  Mike Frysinger  <vapier@gentoo.org>
317
318	* configure.ac: Change include to common/acinclude.m4.
319
3202011-10-17  Mike Frysinger  <vapier@gentoo.org>
321
322	* configure.ac: Change AC_PREREQ to 2.64.  Delete AC_CONFIG_HEADER
323	call.  Replace common.m4 include with SIM_AC_COMMON.
324	* configure: Regenerate.
325
3262011-07-05  Mike Frysinger  <vapier@gentoo.org>
327
328	* sim-if.c (sim_do_command): Delete.
329
3302010-04-21  Mike Frysinger  <vapier@gentoo.org>
331
332	* profile.c (sim_profile_print_bar): Add cpu argument.
333
3342010-03-30  Mike Frysinger  <vapier@gentoo.org>
335
336	* devices.c (device_error): Add const to message.
337
3382010-02-12  Doug Evans  <dje@sebabeach.org>
339
340	* decode.c, * decode.h: Regenerate.
341
3422010-02-11  Doug Evans  <dje@sebabeach.org>
343
344	* cpu.h, * decode.c, * model.c, * sem.c: Regenerate.
345
3462010-01-24  Doug Evans  <dje@sebabeach.org>
347
348	* sem.c: Regenerate.
349
3502010-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
351
352	* configure: Regenerate.
353
3542010-01-02  Doug Evans  <dje@sebabeach.org>
355
356	* arch.c, * arch.h, * cpu.c, * cpu.h, * cpuall.h, * decode.c,
357	* decode.h, * model.c, * sem.c: Regenerate, update copyright year.
358
3592009-11-22  Doug Evans  <dje@sebabeach.org>
360
361	* cpu.h: Regenerate.
362	* cpuall.h: Regenerate.
363	* decode.c: Regenerate.
364	* decode.h: Regenerate.
365
3662009-11-03  Doug Evans  <dje@sebabeach.org>
367
368	* arch.c: Regenerate.
369	* arch.h: Regenerate.
370	* cpu.c: Regenerate.
371	* cpu.h: Regenerate.
372	* cpuall.h: Regenerate.
373	* decode.c: Regenerate.
374	* decode.h: Regenerate.
375	* model.c: Regenerate.
376	* sem.c: Regenerate.
377
3782009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
379
380	* config.in: Regenerate.
381	* configure: Likewise.
382
383	* configure: Regenerate.
384
3852009-01-07  Hans-Peter Nilsson  <hp@axis.com>
386
387	* sem.c: Regenerate.
388
3892008-12-23  Hans-Peter Nilsson  <hp@axis.com>
390
391	* arch.c, arch.h, cpu.c, cpu.h, cpuall.h, decode.c, decode.h,
392	model.c, sem.c: Regenerate.
393
3942008-07-11  Hans-Peter Nilsson  <hp@axis.com>
395
396	* configure: Regenerate to track ../common/common.m4 changes.
397	* config.in: Ditto.
398
3992008-06-06  Vladimir Prus  <vladimir@codesourcery.com>
400	    Daniel Jacobowitz  <dan@codesourcery.com>
401	    Joseph Myers  <joseph@codesourcery.com>
402
403	* configure: Regenerate.
404
4052006-12-21  Hans-Peter Nilsson  <hp@axis.com>
406
407	* config.in: Regenerate.
408
4092006-06-13  Richard Earnshaw  <rearnsha@arm.com>
410
411	* configure: Regenerated.
412
4132006-06-05  Daniel Jacobowitz  <dan@codesourcery.com>
414
415	* configure: Regenerated.
416
4172006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
418
419	* configure: Regenerated.
420
4212005-10-28  Dave Brolley  <brolley@redhat.com>
422
423	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
424
425	Contribute the following changes:
426	2003-09-29  Dave Brolley  <brolley@redhat.com>
427
428	* frv-sim.h: Use CGEN_ATTR_VALUE_ENUM_TYPE in place of
429	CGEN_ATTR_VALUE_TYPE.
430	* mloop.in: Ditto.
431	* pipeline.c: Ditto.
432	* traps.c: Ditto.
433
4342005-03-23  Mark Kettenis  <kettenis@gnu.org>
435
436	* configure: Regenerate.
437
4382005-01-14  Andrew Cagney  <cagney@gnu.org>
439
440	* configure.ac: Sinclude aclocal.m4 before common.m4.  Add
441	explicit call to AC_CONFIG_HEADER.
442	* configure: Regenerate.
443
4442005-01-12  Andrew Cagney  <cagney@gnu.org>
445
446	* configure.ac: Update to use ../common/common.m4.
447	* configure: Re-generate.
448
4492005-01-11  Andrew Cagney  <cagney@localhost.localdomain>
450
451	* configure: Regenerated to track ../common/aclocal.m4 changes.
452
4532005-01-07  Andrew Cagney  <cagney@gnu.org>
454
455	* configure.ac: Rename configure.in, require autoconf 2.59.
456	* configure: Re-generate.
457
4582004-12-08  Hans-Peter Nilsson  <hp@axis.com>
459
460	* configure: Regenerate for ../common/aclocal.m4 update.
461
4622004-08-27  Richard Sandiford  <rsandifo@redhat.com>
463
464	* cpu.[ch], arch.[ch], decode.[ch]: Regenerated.
465	* cpuall.h, model.c, sem.c: Regenerated.
466
4672004-03-01  Richard Sandiford  <rsandifo@redhat.com>
468
469	* Makefile.in (SIM_OBJS): Add profile-fr450.o.
470	(profile-fr450.o): New dependency.
471	(stamp-cpu): Add fr450 to the list of machs.
472	* sim-frv.h (SPR_IS_ACC): New macro.
473	(H_SPR_ACC4, H_SPR_ACC63, H_SPR_ACCG4, H_SPR_ACCG63): Delete.
474	* cache.c (frv_cache_init, non_cache_access): Handle bfd_mach_fr450.
475	* frv.c (check_register_alignment, check_fr_register_alignment)
476	(check_memory_alignment, do_media_average): Likewise.
477	(frvbf_clear_accumulators): Likewise.  Use a mask of valid registers
478	rather than a consecutive range.
479	* interrupts.c (frv_queue_illegal_instruction_interrupt)
480	(frv_queue_non_implemented_instruction_interrupt): Handle
481	bfd_mach_fr450.
482	* memory.c (check_data_read_address, check_readwrite_address)
483	(check_insn_read_address, check_write_address): Likewise.
484	* mloop.in (@cpu@_simulate_insn_prefetch): Likewise.
485	* profile.c (reset_gr_flags, reset_fr_flags, reset_acc_flags)
486	(frvbf_model_insn_before, frvbf_model_insn_after): Likewise.
487	* profile-fr450.c: New file.
488	* registers.c (fr450_spr): New array.
489	(frv_register_control_init): Check its size.  Use it for fr450.
490	(frv_check_register_access): Handle bfd_mach_fr450.
491	(frv_check_spr_read_access): Likewise. Generalize accumulator check.
492	* traps.c (frv_core_signal, frvbf_media_cr_not_aligned): Likewise.
493	(frvbf_media_acc_not_aligned): Likewise.
494	(frvbf_media_register_not_aligned): Likewise.
495	* arch.c: Regenerate.
496	* arch.h: Regenerate.
497	* cpu.h: Regenerate.
498	* cpuall.h: Regenerate.
499	* decode.h: Regenerate.
500	* model.c: Regenerate.
501
5022004-03-01  Richard Sandiford  <rsandifo@redhat.com>
503
504	* cache.c (frv_cache_init): Change fr400 cache statistics to match
505	the fr405.
506	(non_cache_access): Add missing breaks.
507	* interrupts.c (set_exception_status_registers): Always set EAR15
508	for data_access_errors.
509	* memory.c (fr400_check_write_address): Remove redundant alignment
510	check.
511	* model.c: Regenerate.
512
5132004-03-01  Richard Sandiford  <rsandifo@redhat.com>
514
515	* frv.c (frvbf_iacc_cut): Rework, taking rounding into account.
516
5172004-03-01  Richard Sandiford  <rsandifo@redhat.com>
518
519	* decode.c, decode.h, model.c, sem.c: Regenerate.
520
5212003-11-24  Kevin Buettner  <kevinb@redhat.com>
522
523	* frv-sim.h (GR_REGNUM_MAX, FR_REGNUM_MAX, PC_REGNUM, SPR_REGNUM_MIN)
524	(SPR_REGNUM_MAX): Delete.
525	* frv.c (gdb/sim-frv.h): Include.
526	(frvbf_fetch_register, frvbf_store_register): Use register number
527	constants from gdb/sim-frv.h.  Check availability of general
528	purpose and float registers.
529
5302003-11-03  Dave Brolley  <brolley@redhat.com>
531
532	* cache.c (address_interference): Check for higher priority requests
533	in the same pipeline.
534
5352003-10-31  Dave Brolley  <brolley@redhat.com>
536
537	* frv-sim.h (LR_REGNUM): Removed.
538	(SPR_REGNUM_MIN,SPR_REGNUM_MAX): New macros.
539	* frv.c (frvbf_fetch_register): Fetch SPR registers based on
540	SPR_REGNUM_MIN and SPR_REGNUM_MAX. Check whether SPRs are implemented.
541	Return 0 for an unimplemented register. Return the length of the data
542	for an implemented register.
543	(frvbf_store_register): Ditto.
544
5452003-10-30  Andrew Cagney  <cagney@redhat.com>
546
547	* traps.c: Replace "struct symbol_cache_entry" with "struct
548	bfd_symbol".
549
5502003-10-10  Dave Brolley  <brolley@redhat.com>
551
552	* cpu.h, sem.c: Regenerate.
553
5542003-10-06  Dave Brolley  <brolley@redhat.com>
555
556	* profile-fr550.[ch]: New files.
557	* configure.in: Move frv handling to alphabetically correct placement.
558	* Makefile.in: Add fr550 support.
559	* frv-sim.h,frv.c,interrups.c,memory.c,mloop.in,pipeline.c,
560	profile.[ch],registers.c,traps.c: Add fr550 support.
561	* arch.c,arch.h,cpu.c,cpu.h,cpuall.h,model.h,decode.c,decode.h,sem.c:
562	Regenerate.
563
5642003-09-25  Dave Brolley  <brolley@redhat.com>
565
566	* reset.c (frv_initialize): Call frv_register_control_init first.
567
5682003-09-24  Dave Brolley  <brolley@redhat.com>
569
570	* profile.h (update_FR_ptime): New prototype.
571	(update_FRdouble_ptime): Ditto.
572	(update_SPR_ptime): Ditto.
573	(increase_ACC_busy): Ditto.
574	(enforce_full_acc_latency): Ditto.
575	(post_wait_for_SPR): Ditto.
576	* profile.c (update_FR_ptime): Moved here from profile-fr500.c.
577	(update_FRdouble_ptime): Ditto.
578	(update_SPR_ptime): New function.
579	(increase_ACC_busy): Ditto.
580	(enforce_full_acc_latency): Ditto.
581	(vliw_wait_for_fdiv_resource): Correct resource name.
582	(vliw_wait_for_fsqrt_resource): Ditto.
583	(post_wait_for_SPR): New function.
584	* profile-fr500.c (frvbf_model_fr500_u_commit): New function.
585	(frvbf_model_fr500_u_gr2fr): Pass out_FRk as output register to
586	adjust_float_register_busy.
587	(frvbf_model_fr500_u_gr_load): Record latency of SPR registers.
588	(frvbf_model_fr500_u_fr_load): Wait for and record latency of SPR
589	registers.
590	(frvbf_model_fr500_u_float_arith): Ditto.
591	(frvbf_model_fr500_u_float_dual_arith): Ditto.
592	(frvbf_model_fr500_u_float_div): Ditto.
593	(frvbf_model_fr500_u_float_sqrt): Ditto.
594	(frvbf_model_fr500_u_float_convert): Ditto.
595	(update_FR_ptime): Moved to profile.c
596	(update_FRdouble_ptime): Moved to profile.c
597	* profile-fr400.c (update_FR_ptime): Removed. Identical to functions
598	for other machines.
599	(update_FRdouble_ptime): Ditto.
600	* arch.h,cpu.h,sem.c,decode.[ch],model.c,sem.c: Regenerated.
601
6022003-09-12  Dave Brolley  <brolley@redhat.com>
603
604	* registers.c (frv_check_spr_read_access): Check for access to
605	ACC4-ACC63 and ACCG4-ACCG63.
606	* profile.h (frv-desc.h): #include it.
607	(spr_busy): New member of FRV_PROFILE_STATE.
608	(spr_latency): Ditto.
609	(GNER_FOR_GR): New macro.
610	(FNER_FOR_FR): New maccro.
611	(update_SPR_latency): New function.
612	(vliw_wait_for_SPR): New function.
613	* profile.c (update_latencies): Update SPR latencies.
614	(update_target_latencies): Ditto.
615	(update_SPR_latency): New function.
616	(vliw_wait_for_SPR): New function.
617	* profile-fr500.c (frvbf_model_fr500_u_idiv): Record GNER latency.
618	(frvbf_model_fr500_u_trap): Removed unused variable, ps.
619	(frvbf_model_fr500_u_check): Ditto.
620	(frvbf_model_fr500_u_clrgr): New unit modeller for fr500.
621	(frvbf_model_fr500_u_clrfr): Ditto.
622	(frvbf_model_fr500_u_spr2gr): Wait for SPR.
623	(frvbf_model_fr500_u_gr2spr): Ditto.
624	* frv-sim.h (H_SPR_ACC4): New macro.
625	(H_SPR_ACCG4): New macro;
626	(H_SPR_ACC0): Removed.
627	(H_SPR_ACCG0): Removed.
628	* arch.h,model.c,sem[ch],decode.[ch]: Regenerated.
629
6302003-09-10  Dave Brolley  <brolley@redhat.com>
631
632	* profile.c (slot_names): FM1 was listed twice. Changed first
633	instance to FM0. Added IALL, FMALL and FMLOW.
634	(print_parallel): Don't examine slots with no insns.
635
6362003-09-09  Dave Brolley  <brolley@redhat.com>
637
638	* frv.c (do_media_average): Select machine using a switch.
639
6402003-09-08  Dave Brolley  <brolley@redhat.com>
641
642	On behalf of Doug Evans <dje@sebabeach.org>
643	* Makefile.in (stamp-arch,stamp-cpu): Pass archfile to cgen.
644	Remove copying of .cpu file to cgen/cpu, no longer needed.
645
6462003-09-03  Dave Brolley  <brolley@redhat.com>
647
648	* cpu.h, model.c, sem.c, decode.h, decode.c: Regenerated.
649
6502003-08-29  Dave Brolley  <brolley@redhat.com>
651
652	* Makefile.in (stamp-arch): Copy frv.cpu from $(srcdir)../../cpu
653	temporarily when regenerating files.
654	(stamp-cpu): Ditto.
655
6562003-08-20  Micheal Snyder  <msnyder@redhat.com>
657
658	* All generated files: Regenerate.
659
6602001-10-11  Dave Brolley  <brolley@redhat.com>
661
662	* cpu.h,decode.c,decode.h,sem.c: Regenerate.
663
6642001-10-09  Dave Brolley  <brolley@redhat.com>
665
666	* traps.c (frv_rett): Halt if PSR.S and PSR.ET are both set or both
667	not set.
668	* reset.c (frv_hardware_reset): Invalidate both caches.
669	* registers.c: Update init, reset and read-only masks for all registers
670	on all machines.
671	* profile.h (cur_gr_complex): New field of FRV_PROFILE_STATE
672	(prev_gr_complex): New field of FRV_PROFILE_STATE
673	(set_use_is_gr_complex): New function.
674	(set_use_not_gr_complex): New function.
675	(use_is_gr_complex): New function.
676	(decrease_GR_busy): New function.
677	* profile.c (reset_gr_flags): New function.
678	(reset_cc_flags): New function.
679	(set_use_is_gr_complex): New function.
680	(set_use_not_gr_complex): New function.
681	(use_is_gr_complex): New function.
682	(update_latencies): Reset gr and cc flags when latency reaches 0.
683	(decrease_GR_busy): New function.
684	* profile-fr400.h (fr500_reset_acc_flags): Removed.
685	(fr500_reset_cc_flags): New function.
686	* profile-fr500.c (frvbf_model_fr400_u_*): Reflect latencies from fr500
687	LSI version 1.41.
688	* profile-fr400.h (fr400_reset_gr_flags): New function.
689	(fr400_reset_fr_flags): New function.
690	(fr400_reset_acc_flags): New function.
691	* profile-fr400.c (set_use_not_media_p4): New function.
692	(set_use_not_media_p6): New function.
693	(set_acc_use_not_media_p2): New function.
694	(set_acc_use_not_media_p4): New function.
695	(fr400_reset_gr_flags): New function.
696	(fr400_reset_fr_flags): New function.
697	(fr400_reset_acc_flags): New function.
698	(frvbf_model_fr400_u_*): Reflect latencies from fr400 LSI version 1.1.
699	(frvbf_model_fr400_u_media_hilo): New function.
700	* pipeline.c (frv_vliw_setup_insn): Don't clear MSR0.MTT.
701	* memory.c (fr400_check_data_read_address): Check address range only
702	for double word loads. Don't check alignment here.
703	(fr400_check_readwrite_address): New function.
704	(fr500_check_readwrite_address): New function.
705	(check_readwrite_address): New function.
706	(fr500_check_insn_read_address): Correct address ranges.
707	(frvbf_read_mem_*): Check address range here.
708	(frv_address_forbidden): Removed.
709	(fr400_check_write_address): New function.
710	(check_write_address): New function.
711	(frvbf_write_mem_*): Don't check address range here.
712	(frvbf_mem_set_*): Check address range here.
713	* interrupts.c (frv_queue_data_access_error_interrupt): Now takes an
714	address as second argument.
715	(frv_queue_data_access_exception_interrupt): New function.
716	(frv_queue_illegal_instruction_interrupt): Generate fp_exception for
717	media insns on fr400.
718	(frv_queue_non_implemented_instruction_interrupt): Generate mp_exception
719	for media insns on fr400.
720	(frv_detect_insn_access_interrupts): Don't check for illegal addresses
721	of insns here.  Check for MTRAP insn if PSR.EM is not set.
722	(frv_set_mp_exception_registers): Only set MSR0.MTT if it is not already
723	set.
724	(set_exception_status_registers): Do not always set EPCR. Set EAR for
725	data_acess_error only if not fr400.
726	* frv.c (do_media_average): New function.
727	(frvbf_media_average): New function.
728	(frvbf_insn_cache_invalidate): Check for illegal invocation.
729	(frvbf_data_cache_invalidate): Ditto.
730	(frvbf_data_cache_flush): Ditto.
731	* frv-sim.h (GET_FSR_QNE): New macro.
732	(frv_msr_mtt): Remove MTT_SEQUENCE_ERROR.
733	(GET_MSR_SRDAV): New macro.
734	(GET_MSR_RDAV): New macro.
735	(GET_MSR_RD): New macro.
736	(frv_queue_data_access_error_interrupt): Now takes an address as second
737	argument.
738	(frv_address_forbidden): Removed.
739	* cache.c (non_cache_access): Correct address ranges. Now takes cache
740	as first argument.
741	* arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
742
7432001-08-20  Dave Brolley  <brolley@redhat.com>
744
745	* sim-main.h (_sim_cpu): New field 'elf_flags'.
746	* sim-if.c (sim_open): Extract the elf_flags from the input file and
747	save them with each cpu.
748	* mloop.in (main loop): Pass elf flags to frv_vliw_reset.  Set
749	last_insn_p before executing the insn.
750	* cache.c (frv_cache_invalidate): Flush scache if this is the cpu's
751	insn cache.
752	(frv_cache_invalidate_all): Ditto.
753
7542001-08-20  Richard Sandiford  <rsandifo@redhat.com>
755
756	* traps.c (syscall_read_mem): Flush the data cache before reading.
757	(syscall_write_mem): Flush the data cache before writing.
758	Invalidate both caches.
759
7602001-07-05  Ben Elliston  <bje@redhat.com>
761
762	* Makefile.in (stamp-arch): Use $(CGEN_CPU_DIR).
763	(stamp-cpu): Likewise.
764
7652001-05-23  Dave Brolley  <brolley@redhat.com>
766
767	* profile-fr400.c (acc_use_is_media_p2): New function.
768	(frvbf_model_fr400_u_media_2): Account for latency of output
769	accumulators.
770	(frvbf_model_fr400_u_media_2_quad): Ditto.
771	(frvbf_model_fr400_u_media_2_acc): New function.
772	(frvbf_model_fr400_u_media_2_acc_dual): New function.
773	(frvbf_model_fr400_u_media_2_add_sub): New function.
774	(frvbf_model_fr400_u_media_2_add_sub_dual): New function.
775	(frvbf_model_fr400_u_media_3_dual): New function.
776	(frvbf_model_fr400_u_media_4_acc_dual): New function.
777	* arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
778
7792001-05-15  Dave Brolley  <brolley@redhat.com>
780
781	* registers.c (fr400_spr): Enable write access to HSR0.CBM.
782	* profile.h (FRV_PROFILE_STATE): New field 'all_cache_entries'.
783	* profile.c (CACHE_QUEUE_ELEMENT): New 'all' field.
784	(request_cache_flush): Save 'all' argument.
785	(request_cache_invalidate): Save all_cache_entries from profile state
786	to 'all' field of the request.
787	(submit_cache_request): Pass the 'all' field of the request to
788	frv_cache_request_invalidate.
789	* frv.c (frv_insn_cache_invalidate): Add new 'all' parameter. Perform
790	operation even if HSR0.ICE is not set.
791	(frv_data_cache_invalidate): Add new 'all' parameter. Perform
792	operation even if HSR0.DCE is not set.
793	(frv_data_cache_flush): Ditto.
794	* frv-sim.h (frv_insn_cache_invalidate): Add new 'all' parameter.
795	(frv_data_cache_invalidate): Add new 'all' parameter.
796	(frv_data_cache_flush): Add new 'all' parameter.
797	* cache.h (FRV_CACHE_INVALIDATE_REQUEST): Add new 'all' field.
798	(frv_cache_request_invalidate): Add new 'all' parameter.
799	* cache.c (frv_cache_request_invalidate): Add new 'all' parameter. Save
800	its value in the invalidate request.
801	(address_interference): Accept the value '-1' for the address argument
802	to mean 'any address'.
803	(handle_req_invalidate): Handle request to invalidate all cache lines.
804	* cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
805
8062001-05-14  Dave Brolley  <brolley@redhat.com>
807
808	* profile.h (past_first_p): New field of profiling state.
809	(branch_penalty): Ditto.
810	(branch_hint): Ditto.
811	(update_branch_penalty): New function.
812	* profile.c (frvbf_model_insn_after): Reset past_first_p and
813	branch_address fields of the profiling state.
814	(frvbf_model_branch): New function.
815	(update_branch_penalty): New function.
816	* profile-fr500.c (frvbf_model_fr500_u_branch): Remove ICCi_3 and
817	FCCi_3 inputs.
818	(frvbf_model_fr500_u_trap): New function.
819	(frvbf_model_fr500_u_check): New function.
820	(frvbf_model_fr500_u_media_dual_htob): post-processing latency is 3
821	cycles.
822	* profile-fr400.c (frvbf_model_fr400_u_branch): Set branch penalties
823	as documented in the fr400 LSI. Remove ICCi_3 and FCCi_3 inputs.
824	(frvbf_model_fr400_u_media_dual_expand): Check resource usage as
825	documented in teh fr400 LSI.
826	(frvbf_model_fr400_u_media_dual_htob): Ditto.
827	(frvbf_model_fr400_u_media_dual_unpack): Removed.
828	(frvbf_model_fr500_u_trap): New function.
829	(frvbf_model_fr500_u_check): New function.
830	* mloop.in (simulate_dual_insn_prefetch): New function.
831	(@cpu@_simulate_insn_prefetch): Call simulate_dual_insn_prefetch with
832	arguments for each machine type.
833	* arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
834
8352001-05-09  Dave Brolley  <brolley@redhat.com>
836
837	* Makefile.in (profile.o): Add profile-fr400.h as a dependency.
838	(profile-fr400.o): New target.
839	* profile.c: New file.
840	* profile.h: New file.
841	* profile-fr400.c: New file.
842	* profile-fr400.h: New file.
843	* profile-fr500.c: New file.
844	* profile-fr500.h: New file.
845	* arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
846
8472001-05-02  Dave Brolley  <brolley@redhat.com>
848
849	* sim-main.h (profile.h): #include it.
850	(CPU_PROFILE_STATE): New macro.
851	(profile_state): New frv specific cpu field.
852	* reset.c (frv_initialize): insn_fetch_address and branch_address now
853	part of global profiling state.
854	* Makefile.in (SIM_OBJS): Add profile.o and profile-fr500.o.
855	(SIM_EXTRA_DEPS): Add profile.h.
856	(registers.o): Correct name of source file.
857	(profile.o): New target.
858	(profile-fr500.o): New target.
859	* frv-sim.h: Move profile related data structures to profile.h.
860	* frv.c: Move fr500 specific functions to profile-fr500.c.
861	* cpu.h: Regenerated.
862
8632001-04-27  Dave Brolley  <brolley@redhat.com>
864
865	* sim-main.h (CPU_PIPELINE): Renamed to CPU_VLIW.
866	* interrupts.c: Rename FRV_PIPELINE to FRV_VLIW.
867	Rename pipeline to vliw. Rename CPU_PIPELINE to CPU_VLIW.
868	Rename PIPE_* to UNIT_*.
869	(frv_queue_illegal_instruction_interrupt): Use
870	frv_is_float_insn and frv_is_media_insn.
871	(frv_queue_non_implemented_instruction_interrupt): Ditto.
872	(frv_detect_insn_access_interrupts): Ditto.
873	* frv.c: Rename FRV_PIPELINE to FRV_VLIW. Rename pipeline to vliw.
874	Rename CPU_PIPELINE to CPU_VLIW. Rename PIPE_* to UNIT_*.
875	* memory.c: Ditto.
876	* pipeline.c: Ditto.
877	* mloop.in: Ditto.
878	* frv-sim.h (frv_pipeline_setup_insn): Renamed to frv_vliw_setup_insn.
879	* cache.c: Rename PIPE_* to UNIT_*.
880
8812001-04-24  Dave Brolley  <brolley@redhat.com>
882
883	* frv.c (frvbf_load_quad_GR): Delete have_data and hsr0.
884	(frvbf_load_quad_FRint): Ditto.
885	(frvbf_load_quad_CPR): Ditto.
886	* cache.c (frv_cache_init): Initialize cache for fr400 vs other
887	machines.
888	(bfd.h): #include it.
889	(non_cache_access): Update for revised fr500 and for fr400.
890	* registers.c (frv_spr): Don't reset PSR.PS.
891	(fr500_spr): Ditto.
892	(frv_reset_spr): Set PSR.PS to the former value of PSR.S.
893
8942001-04-23  Dave Brolley  <brolley@redhat.com>
895
896	* traps.c (frv_core_signal): On fr400, generate data_access_error.
897	(frvbf_media_cr_not_aligned): On fr400, generate illegal_instruction.
898	(frvbf_media_acc_not_aligned): Ditto.
899	(frvbf_media_register_not_aligned): Ditto.
900	(frvbf_division_exception): Use GET_ISR_EDE.
901	* registers.c (frv_check_spr_read_access): New function.
902	(frv_check_spr_write_access): New function.
903	(frv_check_spr_access): Deleted.
904	(frv_check_register_access): On fr400, generate illegal_instruction.
905	* memory.c (fr400_check_data_read_address): New function.
906	(fr500_check_data_read_address): Ditto.
907	(check_data_read_address): Ditto.
908	(fr400_check_insn_read_address): Ditto.
909	(fr500_check_insn_read_address): Ditto.
910	(check_insn_read_address): Ditto.
911	(frvbf_read_mem_QI): Call check_data_read_access.
912	(frvbf_read_mem_UQI): Ditto.
913	(frvbf_read_mem_HI): Ditto.
914	(frvbf_read_mem_UHI): Ditto.
915	(frvbf_read_mem_SI): Ditto.
916	(frvbf_read_mem_DI): Ditto.
917	(frvbf_read_mem_DF): Ditto.
918	(frvbf_read_imem_USI): Call check_insn_read_access.
919	(frv_address_forbidden): Now takes cpu as first argument. Check based
920	on machine type.
921	(fr400_mem_address_unaligned): New function.
922	(fr500_mem_address_unaligned): Ditto.
923	(check_write_address): Ditto.
924	(frvbf_mem_set_QI): Call check_write_address.
925	(frvbf_mem_set_HI): Ditto.
926	(frvbf_mem_set_SI): Ditto.
927	(frvbf_mem_set_DI): Ditto.
928	(frvbf_mem_set_DF): Ditto.
929	(frvbf_mem_set_XI): Ditto.
930	* interrupts.c (bfd.h): #include it.
931	(frv_queue_data_access_error_interrupt): New function.
932	(frv_queue_instruction_access_error_interrupt): New function.
933	(frv_queue_instruction_access_exception_interrupt): New function.
934	(frv_queue_illegal_instruction_interrupt): No fp_exception on fr400.
935	(frv_queue_non_implemented_instruction_interrupt): Ditto.
936	(frv_detect_insn_access_interrupts): Reorder tests to match priority
937	from the LSI manual.
938	(set_isr_exception_fields): Accumulate dtt bits.
939	* frv.c (check_register_alignment): New function.
940	(check_fr_register_alignment): New function.
941	(check_memory_alignment): New function.
942	(frvbf_h_gr_double_get_handler): Call check_register_alignment.
943	(frvbf_h_gr_double_set_handler): Ditto.
944	(frvbf_h_cpr_double_get_handler): Ditto.
945	(frvbf_h_cpr_double_set_handler): Ditto.
946	(frvbf_h_gr_quad_set_handler): Ditto.
947	(frvbf_h_cpr_quad_set_handler): Ditto.
948	(frvbf_h_fr_double_get_handler): Call check_fr_register_alignment.
949	(frvbf_h_fr_double_set_handler): Ditto.
950	(frvbf_h_fr_quad_set_handler): Ditto.
951	(frvbf_h_spr_get_handler): Call frv_check_spr_read_access.
952	(frvbf_h_spr_set_handler): Call frv_check_spr_write_access.
953	(frvbf_load_quad_GR): Call check_memory_aligment.
954	(frvbf_load_quad_FRint): Ditto.
955	(frvbf_load_quad_CPR): Ditto.
956	(frvbf_store_quad_GR): Call check_memory_aligment and
957	check_register_alignment.
958	(frvbf_store_quad_FRint): Ditto.
959	(frvbf_store_quad_CPR): Ditto.
960	(frvbf_signed_integer_divide: Use GET_ISR_EDEM.
961	* frv-sim.h (H_SPR_ACC0): New macro.
962	(H_SPR_ACC63): New macro.
963	(H_SPR_ACCG0): New macro.
964	(H_SPR_ACCG63): New macro.
965	(frv_dtt): New enumerator.
966	(GET_ISR_EDE): Renamed from GET_ISR_EDEM.
967	(GET_ISR_DTT): New macro.
968	(frv_queue_data_access_error_interrupt): New function.
969	(frv_queue_instruction_access_error_interrupt): New function.
970	(frv_queue_instruction_access_exception_interrupt): New function.
971	(frv_address_forbidden): Now takes cpu as first argument.
972	* cpu.h: Regenerate.
973
9742001-04-10  Dave Brolley  <brolley@redhat.com>
975
976	* registers.c (fr500_spr): Add new fields to fr500 PSR register.
977	(fr500_spr): Add STBAR and MMCR unimplemented registers for fr500.
978	(fr400_spr): Implement SPR registers for fr400.
979	(frv_register_control_init): Handle bfd_mach_fr400 properly.
980	* frv.c (spr_bpsr_get_handler): Mask field before shifting.
981	(spr_psr_get_handler): Ditto.
982	(spr_ccr_get_handler): Ditto.
983	(spr_cccr_get_handler): Ditto.
984	(frvbf_clear_accumulators): Only 4 accumulators on fr400.
985	* frv-sim.h: Update comment about MCCR_* macros.
986	* cpu.c,cpu.h: Regenerate.
987
9882001-04-05  Dave Brolley  <brolley@redhat.com>
989
990	* cpu.h,decode.c,model.c,sem.c:	Regenerate.
991
9922001-04-05  Dave Brolley  <brolley@redhat.com>
993
994	* reset.c: Update copyright.
995	* registers.c (frv_register_control_init): Handle bfd_mach_fr400.
996	* frv.c (frvbf_model_fr400_u_exec): New function.
997	* Makefile.in (stamp-cpu): Add fr400 to list of machines.
998	* arch.c,arch.h,cpu.c,cpu.h,cpuall.h,model.h,decode.c,decode.h,sem.c:
999	Regenerate.
1000
10012000-11-22  Dave Brolley  <brolley@redhat.com>
1002
1003	* arch.c,arch.h,cpu.c,cpu.h,cpuall.h,model.h,decode.c,decode.h,sem.c:
1004	Regenerate.
1005
10062000-11-10  Dave Brolley  <brolley@redhat.com>
1007
1008	* decode.c: Regenerate.
1009
10102000-09-12  Dave Brolley  <brolley@redhat.com>
1011
1012	* traps.c (frv_sim_engine_halt_hook): New function.
1013	(frv_itrap): Caches now invalidated in sim_engine_halt via
1014	SIM_ENGINE_HALT_HOOK.
1015	(frv_break): Ditto.
1016	* sim-main.h (frv_sim_engine_halt_hook): New function.
1017	(SIM_ENGINE_HALT_HOOK): New macro.
1018	(SIM_ENGINE_RESTART_HOOK): New macro.
1019	* interrupts.c: Call to frv_term now done within sim_engine_halt via
1020	SIM_ENGINE_HALT_HOOK.
1021
10222000-09-08  Dave Brolley  <brolley@redhat.com>
1023
1024	* traps.c (frv_itrap): Invalidate and flush the data and insn caches
1025	respectively when stopping for a breakpoint.
1026	(frv_break): Ditto.
1027	* cache.h (frv_cache_invalidate_all): New function.
1028	* cache.c (frv_cache_invalidate_all): New function.
1029
10302000-09-05  Dave Brolley  <brolley@redhat.com>
1031
1032	* traps.c (frv_break): If SIM_HAVE_BREAKPOINTS, call
1033	sim_handle_breakpoint. Otherwise if environment != operating call
1034	sim_engine_halt. Otherwise handle normally.
1035	* interrupts.c (frv_queue_break_interrupt): Don't handle debugger
1036	breakpoints here. Moved to frv_break in traps.c.
1037
1038	* sem.c: Regenerate.
1039
10402000-09-01  Dave Brolley  <brolley@redhat.com>
1041
1042	* interrupts.c (frv_queue_break_interrupt): Call sim_handle_breakpoint
1043	before queuing an interrupt in order to allow 'break' to be used as
1044	the breakpoint insn.
1045
10462000-08-29  Dave Brolley  <brolley@redhat.com>
1047
1048	* traps.c (frv_itrap): Invalidate the insn cache at a breakpoint.
1049
10502000-07-27  Dave Brolley  <brolley@redhat.com>
1051
1052	* cpu.h,decode.c: Rebuild.
1053
10542000-07-26  Dave Brolley  <brolley@redhat.com>
1055
1056	* frv.c (spr_cccr_get_handler): Change CRx to CCx.
1057	(spr_cccr_set_handler): Change CRx to CCx.
1058	* cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
1059
10602000-07-24  Dave Brolley  <brolley@redhat.com>
1061
1062	* sem.c: Regenerate.
1063	* frv.c (frvbf_unsigned_integer_divide): Queue a write for the result.
1064	Don't write it directly.
1065
1066Thu Jul  6 13:51:12 2000  Dave Brolley  <brolley@topaz>
1067
1068	* configure: Regenerated to track ../common/aclocal.m4 changes.
1069
10702000-07-05  Ben Elliston  <bje@redhat.com>
1071
1072	* configure: Regenerated to track ../common/aclocal.m4 changes.
1073
10742000-06-28  Dave Brolley  <brolley@redhat.com>
1075
1076	* cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
1077
10782000-06-21  Dave Brolley  <brolley@redhat.com>
1079
1080	* pipeline.c: All code except frv_pipeline_setup_insn moved to
1081	frv.opc.
1082	* mloop.in (main loop): frv_pipeline_add_insn broken up into
1083	frv_pipeline_add_insn and frv_pipeline_setup_insn.
1084	* frv-sim.h: Move pipeline status code to frv.opc.
1085	* model.c: Regenerate.
1086
10872000-06-12  Dave Brolley  <brolley@redhat.com>
1088
1089	* options.c (frv_option_handler): --profile-parallel implies
1090	--profile-model.
1091	* mloop.in (fetch_buffer): Removed.
1092	(@cpu@_simulate_insn_prefetch): Monitoring of fetch buffer moved to
1093	run_caches.  Use cache directly if not counting cycles.  Don't use
1094	cache at all if not counting cycles and cache not enabled.
1095	* frv.c (frv_insn_fetch_buffer): New global variable.
1096	(run_caches): Monitor the status of insn prefetch requests.
1097	* frv-sim.h (FRV_INSN_FETCH_BUFFER): New struct type.
1098	(frv_insn_fetch_buffer): New global variable.
1099
11002000-06-12  Dave Brolley  <brolley@redhat.com>
1101
1102	* mloop.in (fetch_buffer): New static struct.
1103	(@cpu@_simulate_insn_prefetch): Rewritten.
1104	* cache.c (frv_cache_request_invalidate): Don't invalidate return
1105	buffer.
1106	(address_interference): Defer to any WAR request in either pipeline.
1107
11082000-06-09  Dave Brolley  <brolley@redhat.com>
1109
1110	* pipeline.c (insns_in_slot): New Array.
1111	(frv_pipeline_add_insn): Call COUNT_INSNS_IN_SLOT.
1112	* options.c (frv_options): Remove 'NONBLOCK' argument from data-cache
1113	option.
1114	(parse_cache_option): New function.
1115	(frv_option_handler): Call parse_cache_option.
1116	* frv.c (vliw_branch_taken): New variable.
1117	(vliw_load_stall): New variable.
1118	(handle_resource_wait): Update vliw_load_stall.
1119	(frvbf_model_insn_before): Initialize vliw_branch_taken and
1120	vliw_load_stall.
1121	(frvbf_model_insn_after): Increment PROFILE_MODEL_LOAD_STALL_CYCLES.
1122	(load_wait_for_FR): Update vliw_load_stall.
1123	(load_wait_for_GR): Update vliw_load_stall.
1124	(load_wait_for_FRdouble): Update vliw_load_stall.
1125	(load_wait_for_GRdouble): Update vliw_load_stall.
1126	(frvbf_model_fr500_u_branch): Count branches taken and not taken.
1127	(slot_names): New static array.
1128	(print_parallel): Now takes second argument 'verbose'. Print cycles per
1129	VLIW insn and instructions per cycle. Also tabulate the number of insns
1130	in each type of VLIW slot.
1131	(frv_profile_info): Call print_parallel with new second argument.
1132	* frv-sim.h (insn_in_slot): New array.
1133	(COUNT_INSNS_IN_SLOT): New macro.
1134	(INSNS_IN_SLOT): New macro.
1135	* cache.c: Remove references to non_blocking_count. Remove references to
1136	last_was_hit. Remove references to req_none.
1137	(handle_req_store): Adjust statistics before requeuing the store
1138	request.
1139	(handle_req_WAR): Don't let the WAR request affect the cache statistics.
1140	* cache.h: Remove references to non_blocking_count. Remove references to
1141	last_was_hit. Remove references to req_none.
1142	* model.c: Regenerate.
1143
11442000-06-08  Dave Brolley  <brolley@redhat.com>
1145
1146	* frv.c (request_complete): Copy load data from the correct return
1147	buffer.
1148
11492000-06-07  Dave Brolley  <brolley@redhat.com>
1150
1151	* traps.c (frv_core_signal): Call frv_term before exiting.
1152	(frv_itrap): Call frv_term before exiting.
1153	(next_available_nesr): Make sure NECR is implemented before reading it.
1154	(next_valid_nesr): Ditto.
1155	(frvbf_check_non_excepting_load): Ditto.
1156	(frvbf_clear_ne_flags): Ditto.
1157	(frvbf_commit): Ditto.
1158	(frvbf_check_recovering_store): Delay cache operation if 'model_insn'.
1159	* sim-main.h (_sim_cpu): Add load_address, load_length, load_flag and
1160	store_flag members.
1161	(CPU_LOAD_ADDRESS): New macro.
1162	(CPU_LOAD_LENGTH): New macro.
1163	(CPU_LOAD_SIGNED): New macro.
1164	(CPU_LOAD_LOCK): New macro.
1165	* reset.c (frv_term): New function.
1166	(frv_power_on_reset): Use SETMEMSI if the cache is not enabled.
1167	(frv_hardware_reset): Use SETMEMSI if the cache is not enabled.
1168	(frv_software_reset): Use SETMEMSI if the cache is not enabled.
1169	* mloop.in (execute): Call FRV_COUNT_CYCLES to decide whether to model
1170	the insn. Model the insn in two passes. One before and one after
1171	execution.
1172	(cache_reqno): new static variable.
1173	(@cpu@_simulate_insn_prefetch): Model fetch latency by waiting for the
1174	cache rather than assuming a fixed latency.
1175	(xinit): Turn on PROFILE_MODEL_P before each vliw insn if the timer is
1176	enabled so that modeling data is collected by cgen during execution.
1177	(full-exec): Restore PROFILE_MODEL_P after each vliw insn.
1178	* memory.c (data_non_cache_access): Removed.
1179	(insn_non_cache_access): Removed.
1180	(frvbf_read_mem_QI): Delay read operation if 'model_insn'.
1181	(frvbf_read_mem_UQI): Delay read operation if 'model_insn'.
1182	(frvbf_read_mem_HI): Delay read operation if 'model_insn'.
1183	(frvbf_read_mem_UHI): Delay read operation if 'model_insn'.
1184	(frvbf_read_mem_SI): Delay read operation if 'model_insn'.
1185	(frvbf_read_mem_DI): Delay read operation if 'model_insn'.
1186	(frvbf_read_mem_DF): Delay read operation if 'model_insn'.
1187	(frvbf_read_imem_USI): Read the cache or ememory passively.
1188	(frvbf_write_mem_QI): Don't check for non-cache access here.
1189	(frvbf_write_mem_UQI): Call frvbf_write_mem_QI.
1190	(frvbf_write_mem_HI): Don't check for non-cache access here.
1191	(frvbf_write_mem_UHI): Call frvbf_write_mem_QI.
1192	(frvbf_write_mem_SI): Don't check for non-cache access here.
1193	(frvbf_write_mem_DI): Don't check for non-cache access here.
1194	(frvbf_write_mem_DF): Don't check for non-cache access here.
1195	(frvbf_mem_set_QI): Use cycle-accurate cache write if 'model_insn'.
1196	(frvbf_mem_set_HI): Use cycle-accurate cache write if 'model_insn'.
1197	(frvbf_mem_set_SI): Use cycle-accurate cache write if 'model_insn'.
1198	(frvbf_mem_set_DI): Use cycle-accurate cache write if 'model_insn'.
1199	(frvbf_mem_set_DF): Use cycle-accurate cache write if 'model_insn'.
1200	(frvbf_mem_set_XI): Use cycle-accurate cache write if 'model_insn'.
1201	* interrupts.c (check_reset): Read the cache and memory passively.
1202	(frv_program_or_software_interrupt): Call frv_term before calling
1203	sim_engine_halt.
1204	* frv.c (all modeling functions): Break into two passes. One before
1205	execuetion and one after. call load_wait_for_* for all GR and FR
1206	registers.
1207	(frvbf_load_quad_GR): Delay performing the load if 'model_insn'.
1208	(frvbf_load_quad_FRint): Delay performing the load if 'model_insn'.
1209	(frvbf_load_quad_CPR): Delay performing the load if 'model_insn'.
1210	(frvbf_insn_cache_preload): Delay cache operation if 'model_insn'.
1211	(frvbf_data_cache_preload): Delay cache operation if 'model_insn'.
1212	(frvbf_insn_cache_unlock): Delay cache operation if 'model_insn'.
1213	(frvbf_data_cache_unlock): Delay cache operation if 'model_insn'.
1214	(frvbf_insn_cache_invalidate): Delay cache operation if 'model_insn'.
1215	(frvbf_data_cache_invalidate): Delay cache operation if 'model_insn'.
1216	(frvbf_data_cache_flush): Delay cache operation if 'model_insn'.
1217	(model_insn): New global variable.
1218	(fr_ptime): New array.
1219	(cache_request): New enumeration.
1220	(CACHE_QUEUE_ELEMENT): New struct type.
1221	(CACHE_QUEUE_SIZE): New macro.
1222	(cache_queue): New static struct.
1223	(request_cache_load): New function.
1224	(request_cache_flush): New function.
1225	(request_cache_invalidate): New function.
1226	(request_cache_preload): New function.
1227	(request_cache_unlock): New function.
1228	(submit_cache_request): New function.
1229	(activate_cache_requests): New function.
1230	(load_pending_for_register): New function.
1231	(flush_pending_for_address): New function.
1232	(remove_cache_queue_element): New function.
1233	(copy_load_data): New function.
1234	(request_complete): New function.
1235	(run_caches): New function.
1236	(frv_model_trace_wait_cycles): New function.
1237	(wait_for_flush): New function.
1238	(frvbf_model_insn_before): Insn prefect wait now modeled in
1239	frvbf_simulate_insn_prefetch. Incremement vliw_insns here. Call
1240	wait_for_flush.
1241	(frvbf_model_insn_after): Call activate_cache_requests. Don't increment
1242	vliw_insns here anymore.
1243	(update_FR_latency_for_load): New function.
1244	(update_FRdouble_latency_for_load): New function.
1245	(update_FR_ptime): New function.
1246	(update_FRdouble_ptime): New function.
1247	(update_GR_latency_for_swap): New function.
1248	(load_wait_for_GR): New function.
1249	(load_wait_for_FR): New function.
1250	(load_wait_for_GRdouble): New function.
1251	(load_wait_for_FRdouble): New function.
1252	(frvbf_model_fr500_u_ici): New function.
1253	(frvbf_model_fr500_u_dci): New function.
1254	(frvbf_model_fr500_u_dcf): New function.
1255	(frvbf_model_fr500_u_icpl): New function.
1256	(frvbf_model_fr500_u_dcpl): New function.
1257	(frvbf_model_fr500_u_icul): New function.
1258	(frvbf_model_fr500_u_dcul): New function.
1259	* frv-sim.h (frv_term): New function.
1260	(insn_non_cache_access): Removed.
1261	(FRV_COUNT_CYCLES): New macro.
1262	(frv_save_peofile_model_p): New global variable.
1263	(model_insn): New enumerated global variable.
1264	(frv_model_advance_cycles): New function.
1265	(frv_model_trace_wait_cycles): New function.
1266	* cache.h (FRV_CACHE_REQUEST_KIND): New enumeration.
1267	(FRV_CACHE_WAR_REQUEST): New struct type.
1268	(FRV_CACHE_STORE_REQUEST): New struct type.
1269	(FRV_CACHE_INVALIDATE_REQUEST): New struct type.
1270	(FRV_CACHE_PRELOAD_REQUEST): New struct type.
1271	(FRV_CACHE_REQUEST): New struct type.
1272	(FRV_CACHE_RETURN_BUFFER): New struct type.
1273	(FRV_CACHE_FLUSH_STATUS): New struct type.
1274	(FRV_CACHE_STATUS): New struct type.
1275	(FRV_CACHE_STAGE): New struct type.
1276	(FRV_CACHE_STAGES): New enumeration.
1277	(FRV_CACHE_WAR): New struct type.
1278	(FRV_CACHE_PIPELINE): New struct type.
1279	(FRV_CACHE_ARS): New struct type.
1280	(FRV_CACHE_STATISTICS): New struct type.
1281	(FRV_CACHE): Add pipeline, statistics, BARS and NARS.
1282	(CACHE_RETURN_DATA): 'return_buffer' is now within 'status'.
1283	(CACHE_RETURN_DATA_ADDRESS): New macro.
1284	(frv_cache_read): Now takes pipe index as second argument.
1285	(frv_cache_enabled): New function.
1286	(frv_cache_request_load): New function.
1287	(frv_cache_request_store): New function.
1288	(frv_cache_request_invalidate): New function.
1289	(frv_cache_request_preload): New function.
1290	(frv_cache_request_unlock): New function.
1291	(frv_cache_run): New function.
1292	(frv_cache_read_passive_SI): New function.
1293	(frv_cache_data_in_buffer): New function.
1294	(frv_cache_data_flushed): New function.
1295	* cache.c (frv_cache_init): Initialize pipelines and xARS registers.
1296	(frv_cache_enabled): New function.
1297	(non_cache_access): New function.
1298	(write_data_to_memory): Count write accesses for each mode. Write to
1299	memory using sim_core_write_unaligned_1;
1300	(read_data_from_memory): New function.
1301	(fill_line_from_memory): Use read_data_from_memory.
1302	(copy_line_to_return_buffer): New function.
1303	(copy_memory_to_return_buffer): New function.
1304	(set_return_buffer_reqno): New function.
1305	(frv_cache_read): Now takes pipe index as second argument. Check for
1306	non-cache access.
1307	(frv_cache_preload): Check for non-cache access.
1308	(frv_cache_unlock): Check for non-cache access.
1309	(invalidate_return_buffer): New function.
1310	(frv_cache_invalidate): Check for non-cache access.
1311	(convert_slot_to_index): New function.
1312	(FREE_CHAIN_SIZE): New macro.
1313	(frv_cache_request_free_chain): New static variable.
1314	(frv_store_request_free_chain): New static variable.
1315	(allocate_new_cache_requests): New function.
1316	(new_cache_request): New function.
1317	(free_cache_request): New function.
1318	(new_store_request): New function.
1319	(pipeline_remove_request): New function.
1320	(pipeline_add_request): New function.
1321	(pipeline_requeue_request): New function.
1322	(next_priority): New function.
1323	(add_WAR_request): New function.
1324	(pipeline_next_request): New function.
1325	(pipeline_stage_request): New function.
1326	(advance_pipelines): New function.
1327	(frv_cache_request_load): New function.
1328	(frv_cache_request_store): New function.
1329	(frv_cache_request_invalidate): New function.
1330	(frv_cache_request_preload): New function.
1331	(frv_cache_request_unlock): New function.
1332	(address_interference): New function.
1333	(wait_for_WAR): New function.
1334	(wait_in_WAR): New function.
1335	(handle_req_load): New function.
1336	(handle_req_preload): New function.
1337	(handle_req_store): New function.
1338	(handle_req_invalidate): New function.
1339	(handle_req_unlock): New function.
1340	(handle_req_WAR): New function.
1341	(arbitrate_requests): New function.
1342	(move_ARS_to_WAR): New function.
1343	(decrease_latencies): New function.
1344	(frv_cache_run): New function.
1345	(frv_cache_read_passive_SI): New function.
1346	(frv_cache_data_in_buffer): New function.
1347	(frv_cache_data_flushed): New function.
1348	* arch.h,decode.c,decode.h,model.c,sem.c: Rebuild.
1349
1350Wed May 24 14:40:34 2000  Andrew Cagney  <cagney@b1.cygnus.com>
1351
1352	* configure: Regenerated to track ../common/aclocal.m4 changes.
1353
13542000-05-19  Dave Brolley  <brolley@redhat.com>
1355
1356	* traps.c (frv_rett): Check for exceptions in the order specified in the
1357	architecture spec. Allow privileged_instruction interrrupt to be handled
1358	normally.
1359	* registers.c (frv_register_control_init): Handle bfd_mach_frvtomcat.
1360	* frv.c (frvbf_signed_integer_divide): Use updated dtt to decide whether
1361	to clear the NE flag.
1362	(frvbf_model_tomcat_u_exec): New function.
1363	* frv-sim.h (frvbf_division_exception): Now returns updated dtt.
1364	* Makefile.in (stamp-cpu): Add 'tomcat' to 'mach' value.
1365	* arch.c,arch.h,cpu.h,cpuall.h,model.h,decode.c,sem.c: Regenerate.
1366
13672000-05-18  Dave Brolley  <brolley@redhat.com>
1368
1369	* sim-if.c (elf-bfd.h): #include it.
1370	(sim_open): Set machine amd architecture based on elf flags.
1371
13722000-04-04  Dave Brolley  <brolley@redhat.com>
1373
1374	* frv-sim.h (frv_h_psr_esr_set_handler): Removed.
1375	Delete '#if 0' blocks.
1376	* frv.c: Delete '#if 0' blocks.
1377	(spr_psr_set_handler): Remove special handling for circular referencing of handlers for
1378	PSR.S and PSR.ESR.
1379	(frv_h_psr_esr_set_handler): Removed.
1380	* interrupts.c: Delete '#if 0' blocks.
1381	* memory.c: Delete '#if 0' blocks.
1382	* cpu.c,cpu.h: Regenerate.
1383
13842000-04-03  Dave Brolley  <brolley@redhat.com>
1385
1386	* traps.c (frvbf_check_recovering_store): Invalidate data cache line
1387	containing the target address.
1388	(clear_nesr_neear): No longer takes hi_available and lo_available.
1389	Remove bogus check for available GR registers.
1390	(frvbf_clear_ne_flags): Update call to clear_nesr_neear.
1391	(frvbf_commit): Update call to clear_nesr_neear.
1392	* interrupts.c (next_available_esr): Removed.
1393	(next_available_edr): Removed.
1394	(next_available_fq): Removed.
1395	* frv.c (frvbf_fetch_register): Remove "FIXME" comment.
1396	(frvbf_store_register): Remove "FIXME" comment.
1397	* frv-sim.h (UART_INCHAR_ADDR): Removed.
1398	(UART_OUTCHAR_ADDR):  Removed.
1399	(UART_STATUS_ADDR):  Removed.
1400	(UART_INPUT_READY):  Removed.
1401	(UART_OUTPUT_READY):  Removed.
1402	(FRV_DEVICE_ADDR):  Removed.
1403	(FRV_DEVICE_LEN):  Removed.
1404	(SET_NESR): Call frvbf_force_update.
1405	(SET_NEEAR): Call frvbf_force_update.
1406	(SET_NE_FLAGS): Call frvbf_force_update.
1407
14082000-03-30  Dave Brolley  <brolley@redhat.com>
1409
1410	* configure: Regenerated.
1411
14122000-03-30  Dave Brolley  <brolley@redhat.com>
1413
1414	* registers.c (fr500_spr): Define ESR14-15 and EPCSR14-15 for fr500.
1415	* memory.c (frvbf_write_mem_*): Save slot containing the insn
1416	performing the write.
1417	(frvbf_mem_set_*): Overwrite the slot information of the interrupt
1418	queue element with the information in the interrupt state.
1419	* interrupts.c (frv_queue_interrupt): Call frv_set_interrupt_queue_slot.
1420	(frv_queue_fp_exception_interrupt): Initialize 'new_element'.
1421	(frv_set_interrupt_queue_slot): New function.
1422	(esr_for_data_access_exception): New function.
1423	(set_edr_register): edr_index is now passed in.
1424	(fq_for_exception): New function.
1425	(set_fp_exception_registers): Call fq_for_exception. Interrupt queue
1426	element now passed in.
1427	(set_exception_status_registers): Obtain slot from interrupt queue
1428	element. Call esr_for_data_access_exception. Use ESR14
1429	for data_store_error. Use ESR15 for data_access_error. Use EDR0.
1430	(frv_save_data_written_for_interrupts): Save slot containing the insn
1431	performing the write.
1432	* frv-sim.h (struct frv_fp_exception_info): Use frv_fsr_traps and
1433	frv_fsr_ftt.
1434	(struct frv_interrupt_state): Add 'slot' field.
1435	(frv_set_interrupt_queue_slot): New function.
1436	(frv_set_write_queue_slot): New function.
1437
14382000-03-24  Dave Brolley  <brolley@redhat.com>
1439
1440	* mloop.in (_parallel_write_init): Initialize
1441	frv_interrupt_state.imprecise_interrupt.
1442	(_parallel_write_queued): After an imprecise interrupt, only perform
1443	forced writes and floating point writes (for certain exceptions).
1444	* interrupts.c (handle_interrupt): Set
1445	frv_interrupt_state.imprecise_interrupt for writeback after an imprecise
1446	interrupt.
1447	(frv_process_interrupts): No need to clear f_ne_flags.
1448	* frv.c (frvbf_signed_integer_divide): Queue writes to GR registers and
1449	force them to happen even if there is an overflow exception.
1450	(frvbf_force_update): New function.
1451	* frv-sim.h (frvbf_force_update): New function.
1452	(struct frv_interrupt_state): Add imprecise_interrupt.
1453	(FRV_WRITE_QUEUE_FORCE_WRITE): New macro.
1454	* sem.c: Regenerate.
1455
14562000-03-23  Dave Brolley  <brolley@redhat.com>
1457
1458	* traps.c (frv_rett): Queue FRV_ILLEGAL_INSTRUCTION directly.
1459	* registers.c (frv_spr): MCIRL -> MCILR.
1460	* interrupts.c (frv_queue_non_implemented_instruction_interrupt):
1461	New function.
1462	(frv_detect_insn_access_interrupts):
1463	Call frv_queue_non_implemented_instruction_interrupt.
1464	(frv_process_interrupts): Clear accumulated NE flags.
1465	* frv.c (frvbf_media_cop): New function.
1466	(frvbf_set_ne_index): Now takes (SIM_CPU *) as first argument.  Clear
1467	the NE flag of the given target register.
1468	(frvbf_model_fr500_u_float_arith): Account for FRdouble registers.
1469	(frvbf_model_fr500_u_float_dual_arith): Account for FRdouble registers.
1470	(frvbf_model_fr500_u_float_dual_sqrt): New function.
1471	(frvbf_model_fr500_u_float_convert): Account for FRdouble registers.
1472	(frvbf_model_fr500_u_float_dual_convert): New function.
1473	* frv-sim.h (frvbf_media_cop): New function.
1474	(GET_FQ): Use H_SPR_FQST0.
1475	(SET_FQ): Use H_SPR_FQST0.
1476	(SET_FQ_OPC): Use J_SPR_FQOP0.
1477	(GET_MSR_EMCI): New macro.
1478	(frv_queue_non_implemented_instruction_interrupt): New function.
1479	* arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1480
14812000-03-08  Dave Brolley  <brolley@redhat.com>
1482
1483	* traps.c (frv_rett): Align new_pc.
1484	* memory.c (frvbf_read_mem_HI): Align address.
1485	(frvbf_read_mem_UHI): Align address.
1486	(frvbf_read_mem_SI): Align address.
1487	(frvbf_read_mem_DI): Align address.
1488	(frvbf_read_mem_DF): Align address.
1489	(frvbf_read_imem_USI): Align address.
1490	(frvbf_mem_set_HI): Align address.
1491	(frvbf_mem_set_SI): Align address.
1492	(frvbf_mem_set_DI): Align address.
1493	(frvbf_mem_set_DF): Align address.
1494	(frvbf_mem_set_XI): Align address.
1495	* registers.c (frv_spr): Initialize FSR0.NS to 1.
1496	(fr500_spr): Initialize FSR0.NS to 1.
1497	* interrupts.c (frv_queue_mem_address_not_aligned_interrupt): Check
1498	whether the exception is masked.
1499	* frv.c (frvbf_load_quad_GR): Align address.
1500	(frvbf_store_quad_GR): Align address.
1501	(frvbf_load_quad_FRint): Align address.
1502	(frvbf_store_quad_FRint): Align address.
1503	(frvbf_load_quad_CPR): Align address.
1504	(frvbf_store_quad_CPR): Align address.
1505	* frv-sim.h (GET_ISR_EMAM): New macro.
1506
15072000-03-08  Dave Brolley  <brolley@redhat.com>
1508
1509	* traps.c (frvbf_division_exception): Check for masked overflow and
1510	set NE flags, if necessary.
1511	(frvbf_check_recovering_store): Queue writes to the hardware.
1512	(check_registers_available): Removed.
1513	(which_registers_available): Call frv_{fr,gr}_registers_available.
1514	(frvbf_clear_ne_flags): Call check_register_access.
1515	(frvbf_commit): Call check_register_access.
1516	* registers.h (frv_fr_registers_available): New function.
1517	(frv_gr_registers_available): New function.
1518	(frv_check_register_access): New function.
1519	(frv_check_gr_access): New function.
1520	(frv_check_fr_access): New function.
1521	* registers.c (frv_spr): Correct initial value of ISR.
1522	(fr500_spr): Correct initial value of ISR.
1523	(frv_fr_registers_available): New function.
1524	(frv_gr_registers_available): New function.
1525	(frv_check_register_access): New function.
1526	(frv_check_gr_access): New function.
1527	(frv_check_fr_access): New function.
1528	* interrupts.c (frv_queue_division_exception_interrupt): New function.
1529	(set_isr_exception_fields): New function.
1530	(set_exception_status_registers): Set ISR fields for division exception.
1531	(frv_save_data_written_for_interrupts): Handle CGEN_FN_SF_WRITE.
1532	* frv.c (frvbf_h_gr_get_handler): New function.
1533	(frvbf_h_gr_set_handler): New function.
1534	(frvbf_h_fr_get_handler): New function.
1535	(frvbf_h_fr_set_handler): New function.
1536	(frvbf_h_spr_get_handler): Remove special handling for ISR.
1537	(frvbf_h_spr_set_handler): Remove special handling for ISR.
1538	(spr_isr_get_handler): Removed.
1539	(spr_isr_set_handler): Removed.
1540	(frvbf_signed_integer_divide): New funciton.
1541	(frvbf_unsigned_integer_divide): New funciton.
1542	* frv-sim.h (frvbf_h_gr_get_handler): New function.
1543	(frvbf_h_gr_set_handler): New function.
1544	(frvbf_h_fr_get_handler): New function.
1545	(frvbf_h_fr_set_handler): New function.
1546	(frvbf_signed_integer_divide): New funciton.
1547	(frvbf_unsigned_integer_divide): New funciton.
1548	(frv_dtt): New enumeration.
1549	(struct frv_interrupt_queue_element): Add dtt member.
1550	(GET_ISR): New macro.
1551	(SET_ISR): New macro.
1552	(GET_ISR_EDEM): New macro.
1553	(SET_ISR_DTT): New macro.
1554	(SET_ISR_AEXC): New macro.
1555	(frvbf_division_exception): Add 2 'int' arguments.
1556	(frvbf_check_non_excepting_divide): Removed.
1557	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1558
15592000-02-29  Dave Brolley  <brolley@redhat.com>
1560
1561	* traps.c (frv_itrap): Use GET_H_GR, SET_H_GR, GET_H_FR.
1562	(frv_rett): Use hardware access macros. Write PSR as a whole.
1563	(next_available_nesr): Check that NECR is valid.
1564	(next_valid_nesr): Check that NECR is valid.
1565	(frvbf_check_non_excepting_load): User new NECR access macros. Don't
1566	call hardware access functions. Use cover macros.
1567	(check_registers_available): New function.
1568	(clear_nesr_near): Check register availability.
1569	(clear_ne_flags): Check register availability.
1570	(frvbf_clear_ne_flags): Check register availability.
1571	(frvbf_commit): Check register availability.
1572	(which_registers_available): New function.
1573	* sim-main.h (registers.h): #include it.
1574	(register_control): New cpu field.
1575	(CPU_REGISTER_CONTROL): New macro.
1576	* reset.c (frv_initialize): Set HSR0 fields for cache here.
1577	(frv_power_on_reset): Initialize SPR registers and RSTR.
1578	(frv_hardware_reset): Initialize SPR registers and RSTR.
1579	(frv_software_reset): Reset SPR registers and RSTR.
1580	* options.c (frv_option_handler): Don't set HSR0 fields for cache here.
1581	Call frv_cache_init.
1582	* mloop.in (main loop): Check for insn access interrupts before
1583	executing the insn.
1584	* interrupts.c (frv_queue_external_interrupt): Use GET_H_PSR_ET.
1585	(frv_detect_insn_access_interrupts): Don't call hardware access
1586	functions directly. Use cover macros.
1587	(check_reset): Don't reset RSTR here.
1588	(next_available_esr): ESFR -> ESFR_FLAG.
1589	(next_available_edr): ESFR -> ESFR_FLAG.
1590	(clear_exception_status_registers): Use GET_ESFR and SET_ESFR.
1591	ESFR -> ESFR_FLAG.
1592	(frv_break_interrupt): Don't call hardware access functions directly.
1593	Use cover macros.
1594	(frv_program_or_software_interrupt): Ditto.
1595	(frv_external_interrupt): Ditto.
1596	* frv.c (frvbf_fetch_register): Don't call 'get' functions directly.
1597	(frvbf_store_register): Don't call 'set' functions directly.
1598	(frvbf_h_gr_double_get_handler): Use GET_H_GR.
1599	(frvbf_h_gr_double_set_handler): Use SET_H_GR.
1600	(frvbf_h_fr_double_get_handler): Use GET_H_FR.
1601	(frvbf_h_fr_double_set_handler): Use SET_H_FR.
1602	(frvbf_h_fr_int_get_handler): Use GET_H_FR.
1603	(frvbf_h_fr_int_set_handler): Use SET_H_FR.
1604	(frvbf_h_cpr_double_get_handler): Use GET_H_CPR.
1605	(frvbf_h_cpr_double_set_handler): Use SET_H_CPR.
1606	(frvbf_h_gr_quad_set_handler): Use SET_H_GR.
1607	(frvbf_h_fr_quad_set_handler): Use SET_H_FR.
1608	(frvbf_h_spr_get_handler): Check SPR access. Call renamed functions.
1609	Support shadow registers.
1610	(frvbf_h_spr_set_handler): Check SPR access. Call renamed functions.
1611	Support shadow registers.
1612	(spr_psr_get_handler): Renamed from frvbf_h_psr_get_handler.
1613	(spr_psr_set_handler): Renamed from frvbf_h_psr_set_handler.
1614	(spr_tbr_get_handler): Renamed from frvbf_h_tbr_get_handler.
1615	(spr_tbr_set_handler): Renamed from frvbf_h_tbr_set_handler.
1616	(spr_bpsr_get_handler): Renamed from frvbf_h_bpsr_get_handler.
1617	(spr_bpsr_set_handler): Renamed from frvbf_h_bpsr_set_handler.
1618	(spr_ccr_get_handler): Renamed from frvbf_h_ccr_get_handler.
1619	(spr_ccr_set_handler): Renamed from frvbf_h_ccr_set_handler.
1620	(spr_lr_get_handler): Renamed from frvbf_h_lr_get_handler.
1621	(spr_lr_set_handler): Renamed from frvbf_h_lr_set_handler.
1622	(spr_cccr_get_handler): Renamed from frvbf_h_cccr_get_handler.
1623	(spr_cccr_set_handler): Renamed from frvbf_h_cccr_set_handler.
1624	(spr_isr_get_handler): Renamed from frvbf_h_isr_get_handler.
1625	(spr_isr_set_handler): Renamed from frvbf_h_isr_set_handler.
1626	(spr_sr_get_handler): Renamed from frvbf_h_sr_get_handler.
1627	(spr_sr_set_handler): Renamed from frvbf_h_sr_set_handler.
1628	(frvbf_h_psr_esr_set_handler): Update to conform to FRV architecture
1629	version 1.3a.
1630	(spr_ccr_get_handler): Don't reference the hardware directly.
1631	(spr_ccr_set_handler): Don't reference the hardware directly.
1632	(spr_cccr_get_handler): Don't reference the hardware directly.
1633	(spr_cccr_set_handler): Don't reference the hardware directly.
1634	(spr_sr_get_handler): New function.
1635	(spr_sr_set_handler): New function.
1636	(frvbf_switch_supervisor_user_context): Temporarily switch to
1637	supervisor mode.
1638	(frvbf_store_quad_GR): Don't call handler directly.
1639	(frvbf_store_quad_FRint): Don't call handler directly.
1640	(frvbf_store_quad_CPR): Don't call handler directly.
1641	(frvbf_clear_all_accumulators): Removed.
1642	(frvbf_clear_accumulators): New function.
1643	(frvbf_model_fr500_u_media): Expand busy_adjustment to 8 members.
1644	Account for in_ACCGi and out_ACCGk.
1645	* frv-sim.h (RSTR_HARDWARE_RESET): New macro.
1646	(RSTR_SOFTWARE_RESET): New macro.
1647	(spr_psr_get_handler): Renamed from frvbf_h_psr_get_handler.
1648	(spr_psr_set_handler): Renamed from frvbf_h_psr_set_handler.
1649	(spr_tbr_get_handler): Renamed from frvbf_h_tbr_get_handler.
1650	(spr_tbr_set_handler): Renamed from frvbf_h_tbr_set_handler.
1651	(spr_bpsr_get_handler): Renamed from frvbf_h_bpsr_get_handler.
1652	(spr_bpsr_set_handler): Renamed from frvbf_h_bpsr_set_handler.
1653	(spr_ccr_get_handler): Renamed from frvbf_h_ccr_get_handler.
1654	(spr_ccr_set_handler): Renamed from frvbf_h_ccr_set_handler.
1655	(spr_lr_get_handler): Renamed from frvbf_h_lr_get_handler.
1656	(spr_lr_set_handler): Renamed from frvbf_h_lr_set_handler.
1657	(spr_cccr_get_handler): Renamed from frvbf_h_cccr_get_handler.
1658	(spr_cccr_set_handler): Renamed from frvbf_h_cccr_set_handler.
1659	(spr_isr_get_handler): Renamed from frvbf_h_isr_get_handler.
1660	(spr_isr_set_handler): Renamed from frvbf_h_isr_set_handler.
1661	(spr_sr_get_handler): Renamed from frvbf_h_sr_get_handler.
1662	(spr_sr_set_handler): Renamed from frvbf_h_sr_set_handler.
1663	(frvbf_clear_all_accumulators): Removed.
1664	(frvbf_clear_accumulators): New function.
1665	(GET_HSR0): Use GET_H_SPR.
1666	(SET_HSR0): Use SET_H_SPR.
1667	(CLEAR_HSR0_ICE): New macro.
1668	(CLEAR_HSR0_DCE): New macro.
1669	(GET_IHSR8): Use GET_H_SPR.
1670	(GET_PSR): New macro.
1671	(SET_PSR_ET): New macro.
1672	(GET_PSR_PS): New macro.
1673	(SET_PSR_S): New macro.
1674	(GET_ESFR): Changed to reference entire register.
1675	(SET_ESFR): Changed to reference entire register.
1676	(GET_ESFR_FLAG): New macro.
1677	(SET_ESFR_FLAG): New macro.
1678	(NECR_ELOS): Removed.
1679	(NECR_NEN): Removed.
1680	(NECR_VALID): Removed.
1681	(GET_NECR): New macro.
1682	(GET_NECR_ELOS): New macro.
1683	(GET_NECR_NEN): New macro.
1684	(GET_NECR_VALID): New macro.
1685	(NESR_RANGE): Removed.
1686	(GET_NESR): Use GET_H_SPR.
1687	(GET_NE_FLAGS): Use GET_H_SPR.
1688	* cache.h (CACHE_INITIALIZED): New macro.
1689	* Makefile.in (SIM_OBJS): Add registers.o.
1690	(SIM_EXTRA_DEPS): Add registers.h.
1691	(registers.o): New target.
1692	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1693
16942000-02-17  Dave Brolley  <brolley@redhat.com>
1695
1696	* interrupts.c (frv_interrupt_table): Update priority order and handler
1697	offsets to conform to the architecture version 1.3a.
1698	* frv-sim.h (frv_interrupt_kind): Update priority order to conform
1699	to the architecture version 1.3a.
1700
17012000-02-17  Dave Brolley  <brolley@redhat.com>
1702
1703	* interrupts.c (frv_interrupt_table): Update priority order and handler
1704	offsets to conform to the latest specifications.
1705	(frv_queue_interrupt): Correct comment. Identical interrupts can be
1706	queued. New variable 'iclass' used to test for external interrupts.
1707	* frv-sim.h (frv_interrupt_kind): Update priority order to conform
1708	to the latest specifications.
1709
17102000-01-20  Dave Brolley  <brolley@redhat.com>
1711
1712	* sim-if.c (sim_open): Move frv-specific initialization to
1713	frv_initialize in reset.c.
1714	* interrupts.c (check_reset): Use RSTR_ADDRESS. Check and reset RSTR
1715	status bits for hardware vs software reset.
1716	* reset.c: New file.
1717	* frv-sim.h (frv_initialize): New function.
1718	(frv_power_on_reset): New function.
1719	(frv_hardware_reset): New function.
1720	(frv_software_reset): New function.
1721	(RSTR_ADDRESS): New macro.
1722	(RSTR_INITIAL_VALUE): New macro.
1723	(GET_RSTR_HR): New macro.
1724	(GET_RSTR_SR): New macro.
1725	(SET_RSTR_H): New macro.
1726	(SET_RSTR_S): New macro.
1727	(CLEAR_RSTR_P): New macro.
1728	(CLEAR_RSTR_H): New macro.
1729	(CLEAR_RSTR_S): New macro.
1730	(CLEAR_RSTR_HR): New macro.
1731	(CLEAR_RSTR_SR): New macro.
1732
17332000-01-03  Dave Brolley  <brolley@cygnus.com>
1734
1735	* mloop.in (execute): Only call modeling function if the pointer is not
1736	NULL.
1737	* frv.c (frvbf_model_insn_after): Only access FR500_MODEL_DATA for
1738	fr500.
1739
17402000-01-03  Dave Brolley  <brolley@cygnus.com>
1741
1742	* options.c (OPTION_FRV_MEMORY_LATENCY): New enumerator.
1743	(frv_options): Add --memory-latency.
1744	(frv_option_handler): Handle FRV_OPTION_MEMORY_LATENCY.
1745	* mloop.in (@cpu@_simulate_insn_prefetch): Use cache memory_latency.
1746	* frv.c (SET_ACC_USE_IS_MEDIA_P1): operate on d->curr_acc_p1
1747	(SET_ACC_USE_NOT_MEDIA_P1): operate on d->curr_acc_p1
1748	(SET_ACC_USE_IS_MEDIA_P2): operate on d->curr_acc_p1
1749	(SET_ACC_USE_NOT_MEDIA_P2): operate on d->curr_acc_p1
1750	(update_latencies): Only clear usage flags if the register has no
1751	target latency.
1752	(frvbf_model_insn_before): Update cur_acc_p1 and cur_acc_p2. Use | (or)
1753	not |= (or assgnment).
1754	(frvbf_model_insn_after): Print post processing wait for all insns.
1755	Update prev_acc_p1 and prev_acc_p2.
1756	(frvbf_model_fr500_u_gr_load_store): Use cache memory_latency.
1757	(frvbf_model_fr500_u_fr_load_store): Use cache memory_latency.
1758	(frvbf_model_fr500_u_swap): Use cache memory_latency.
1759	(frvbf_model_fr500_u_media): Use busy_adjustment[4] for out_ACC40Sk.
1760	(frvbf_model_fr500_u_media): Use busy_adjustment[5] for out_ACC40Uk.
1761	(frvbf_model_fr500_u_media_quad_arith): New function.
1762	(frvbf_model_fr500_u_media_dual_mul): New function.
1763	(frvbf_model_fr500_u_media_quad_mul): New function.
1764	(frvbf_model_fr500_u_media_quad_complex): New function.
1765	(frvbf_model_fr500_u_media_dual_expand): New function.
1766	(frvbf_model_fr500_u_media_dual_unpack): New function.
1767	(frvbf_model_fr500_u_media_dual_btoh): New function.
1768	(frvbf_model_fr500_u_media_dual_htob): New function.
1769	(frvbf_model_fr500_u_media_dual_btohe): New function.
1770	(frv_ref_SI): New function.
1771	* cache.h (FRV_CACHE): Add memory_latency field.
1772	* cache.c (frv_cache_init): Initialize memory_latency.
1773	* arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1774
17751999-12-17  Dave Brolley  <brolley@cygnus.com>
1776
1777	* sim-if.c (sim_open): Initialize insn prefetch and reset register.
1778	* options.c (OPTIONS_FRV_PROFILE_CACHE): New enumeration.
1779	(OPTIONS_FRV_PROFILE_PARALLEL): New enumeration.
1780	(OPTIONS_FRV_TIMER): New enumeration.
1781	(frv_options): Add --profile-cache, --profile-parallel, --timer.
1782	(frv_option_handler): Override common implementation of -p. Handle
1783	--profile-cache, --profile-parallel, --timer.
1784	* mloop.in (execute): Call profiling functions if the timer interrupt
1785	is enabled.
1786	(@cpu@_simulate_insn_prefetch): New function.
1787	(main loop): Call @cpu@_simulate_insn_prefetch.
1788	* interrupts.c (frv_queue_interrupt): Don't queue two external
1789	interrupts of the same priority.
1790	(frv_queue_external_interrupt): New function.
1791	(frv_external_interrupt): New function.
1792	(handle_interrupt): Handle external interrupts.
1793	(check_reset): New function.
1794	(frv_process_interrupts): Call check_reset.
1795	* frv.c: Include "bfd.h"
1796	(frvbf_h_psr_get_handler): Set the PIL field.
1797	(frvbf_h_psr_set_handler): Get the PIL field.
1798	(DUAL_REG): New macro.
1799	(DUAL_DOUBLE): New macro.
1800	(SET_USE_IS_FPOP): New macro.
1801	(SET_USE_NOT_FPOP): New macro.
1802	(USE_IS_FPOP): New macro.
1803	(SET_USE_IS_MEDIA): New macro.
1804	(SET_USE_NOT_MEDIA): New macro.
1805	(USE_IS_MEDIA_P1): New macro.
1806	(SET_USE_IS_MEDIA_P1): New macro.
1807	(SET_USE_NOT_MEDIA_P1): New macro.
1808	(SET_USE_IS_MEDIA_P2): New macro.
1809	(SET_USE_NOT_MEDIA_P2): New macro.
1810	(USE_IS_MEDIA_P2): New macro.
1811	(SET_ACC_USE_IS_MEDIA_P1): New macro.
1812	(SET_ACC_USE_NOT_MEDIA_P1): New macro.
1813	(ACC_USE_IS_MEDIA_P1): New macro.
1814	(SET_ACC_USE_IS_MEDIA_P2): New macro.
1815	(SET_ACC_USE_NOT_MEDIA_P2): New macro.
1816	(ACC_USE_IS_MEDIA_P2): New macro.
1817	(RESOURCE_IDIV): New macro.
1818	(RESOURCE_FDIV): New macro.
1819	(RESOURCE_SQRT): New macro.
1820	(fr_busy_adjust): New array.
1821	(acc_busy_adjust): New array.
1822	(apply_latency_adjustments): New function.
1823	(update_latencies): New function.
1824	(handle_wait_cycles): New function.
1825	(handle_resource_wait): New function.
1826	(update_target_latencies): New function.
1827	(frvbf_model_insn_before): Add resource latency to cycle counts.
1828	(frvbf_model_insn_after): Add resource latency to cycle counts.
1829	(update_GR_latency): New function.
1830	(update_GRdouble_latency): New function.
1831	(update_FR_latency): New function.
1832	(update_FRdouble_latency): New function.
1833	(decrease_ACC_busy): New function.
1834	(decrease_FR_busy): New function.
1835	(increase_FR_busy): New function.
1836	(update_ACC_latency): New function.
1837	(update_CCR_latency): New function.
1838	(update_idiv_resource_latency): New function.
1839	(update_fdiv_resource_latency): New function.
1840	(update_fsqrt_resource_latency): New function.
1841	(vliw_wait_for_GR): New function.
1842	(vliw_wait_for_GRdouble): New function.
1843	(vliw_wait_for_FR): New function.
1844	(vliw_wait_for_FRdouble): New function.
1845	(vliw_wait_for_CCR): New function.
1846	(vliw_wait_for_ACC): New function.
1847	(vliw_wait_for_idiv_resource): New function.
1848	(vliw_wait_for_fdiv_resource): New function.
1849	(vliw_wait_for_fsqrt_resource): New function.
1850	(enforce_full_fr_latency): New function.
1851	(frvbf_model_fr500_u_exec): New function.
1852	(frvbf_model_fr500_u_integer): New function.
1853	(frvbf_model_fr500_u_imul): New function.
1854	(frvbf_model_fr500_u_idiv): New function.
1855	(frvbf_model_fr500_u_branch): New function.
1856	(frvbf_model_fr500_u_set_hilo): New function.
1857	(frvbf_model_fr500_u_gr_load_store): New function.
1858	(frvbf_model_fr500_u_fr_load_store): New function.
1859	(frvbf_model_fr500_u_swap): New function.
1860	(frvbf_model_fr500_u_fr2fr): New function.
1861	(frvbf_model_fr500_u_fr2gr): New function.
1862	(frvbf_model_fr500_u_spr2gr): New function.
1863	(frvbf_model_fr500_u_gr2fr): New function.
1864	(frvbf_model_fr500_u_gr2spr): New function.
1865	(post_wait_for_FR): New function.
1866	(post_wait_for_FRdouble): New function.
1867	(post_wait_for_ACC): New function.
1868	(post_wait_for_CCR): New function.
1869	(post_wait_for_fdiv): New function.
1870	(post_wait_for_fsqrt): New function.
1871	(adjust_float_register_busy): New function.
1872	(adjust_double_register_busy): New function.
1873	(restore_float_register_busy): New function.
1874	(restore_double_register_busy): New function.
1875	(frvbf_model_fr500_u_float_arith): New function.
1876	(frvbf_model_fr500_u_float_dual_arith): New function.
1877	(frvbf_model_fr500_u_float_div): New function.
1878	(frvbf_model_fr500_u_float_sqrt): New function.
1879	(frvbf_model_fr500_u_float_compare): New function.
1880	(frvbf_model_fr500_u_float_dual_compare): New function.
1881	(frvbf_model_fr500_u_float_convert): New function.
1882	(frvbf_model_fr500_u_media): New function.
1883	(frvbf_model_fr500_u_barrier): New function.
1884	(frvbf_model_fr500_u_membar): New function.
1885	* frv-sim.h (LEUINT): New macro.
1886	(GET_HSR0_SA): New macro.
1887	(struct frv_interrupt_timer): New struct.
1888	(struct frv_interrupt_state): Add timer fiield.
1889	(frv_queue_external_interrupt): New function.
1890	(frv_external_interrupt): New function.
1891	(frv_profile_info): New function.
1892	(PROFILE_CACHE_IDX): New enumerator.
1893	(PROFILE_PARALLEL_IDX): New enumerator.
1894	(PROFILE_cache): New macro.
1895	(PROFILE_parallel): New macro.
1896	(WITH_PROFILE_CACHE_P): New macro.
1897	(WITH_PROFILE_PARALLEL_P): New macro.
1898	* cache.h (FRV_CACHE): Add last_was_hit field.
1899	* cache.c (get_tag): Use new last_was_hit field.
1900	(frv_cache_read): Ditto.
1901	(frv_cache_write): Ditto.
1902	* arch.h,cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1903
19041999-12-13  Dave Brolley  <brolley@cygnus.com>
1905
1906	* frv.c (frvbf_h_spr_set_handler): Handle accumulator guards.
1907	(frvbf_clear_all_accumulators): Pass frvbf_h_acc40S_set to
1908	sim_queue_fn_di_write.
1909	(frvbf_media_cut_ss): New function.
1910	* frv-sim.h (frvbf_media_cut_ss): New function.
1911	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1912
19131999-12-13  Dave Brolley  <brolley@cygnus.com>
1914
1915	* pipeline.c (check_insn_major_constraints): F-4, F-8 and M-8 have
1916	no constraints.
1917	* interrupts.c (frv_queue_illegal_instruction_interrupt): Use
1918	FRV_IS_FLOAT_INSN and FRV_IS_MEDIA_INSN.
1919	(frv_detect_insn_access_interrupts): Use FRV_IS_FLOAT_INSN and
1920	FRV_IS_MEDIA_INSN.
1921	* frv.c (frvbf_model_simple_u_exec): New function.
1922	* frv-sim.h (FRV_IS_FLOAT_INSN): Range includes F-8.
1923	(FRV_IS_MEDIA_INSN): Range includes M-8.
1924
1925	* Makefile.in (stamp-cpu): add 'simple' to the list of machines.
1926	* arch.c,arch.h,cpu.h,cpuall.h,decode.c,decode.h,model.c,sem.c:
1927	Regenerate.
1928
19291999-12-10  Dave Brolley  <brolley@cygnus.com>
1930
1931	* traps.c (check_registers_available): New function.
1932	(clear_ne_flags): Generate register_exception if register(s) not
1933	available.
1934	(frvbf_commit): Generate register_exception if register(s) not
1935	available.
1936	* interrupts.c (frv_program_or_software_interrupt): No need to copy
1937	GR4-GR7 to SR0-SR4.
1938	* frv.c (frvbf_h_psr_set_handler): Special handling for PSR.S and
1939	PSR.ESR.
1940	(frvbf_h_psr_s_set_handler): New function.
1941	(frvbf_h_psr_esr_set_handler): New function.
1942	(frvbf_switch_supervisor_user_context): New function.
1943	(frvbf_scan_result): Reflect latest ISA.
1944	* frv-sim.h (frvbf_h_psr_s_set_handler): New function.
1945	(frvbf_h_psr_esr_set_handler): New function.
1946	(frvbf_switch_supervisor_user_context): New function.
1947	(GET_HSR0_FRN): New Macro.
1948	(GET_HSR0_GRN): New Macro.
1949	(GET_HSR0_FRHE): New Macro.
1950	(GET_HSR0_FRLE): New Macro.
1951	(GET_HSR0_GRHE): New Macro.
1952	(GET_HSR0_GRLE): New Macro.
1953	(frv_ec): New value for FRV_EC_COMMIT_EXCEPTION.
1954	(GET_ESFR): New bit ordering.
1955	(SET_ESFR): New bit ordering.
1956	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1957
19581999-12-10  Michael Meissner  <meissner@cygnus.com>
1959
1960	* Makefile.in (sim-if.o): Add eng.h dependency.
1961
19621999-12-09  Dave Brolley  <brolley@cygnus.com>
1963
1964	* mloop.in (execute): Pass sc->first_insn_p to @cpu@_model_insn_before.
1965	Pass sc->last_insn_p to @cpu@_model_insn_before.
1966	(main loop): Compute sc->first_insn_p.
1967	* frv.c (frvbf_model_insn_before): Set state variables.
1968	(frvbf_model_insn_after): Count basic cycles. Set state variables.
1969	(frvbf_model_fr500_u_integer): Remove.
1970	* arch.h,cpu.h,decode.h,model.c: Regenerate.
1971
19721999-12-07  Dave Brolley  <brolley@cygnus.com>
1973
1974	* sim-main.h (cache.h): Include it.
1975	(insn_cache): New member.
1976	(data_cache): New member.
1977	(CPU_INSN_CACHE): New macro.
1978	(CPU_DATA_CACHE): New macro.
1979	* sim-if.c (WANT_CPU): New macro.
1980	(WANT_CPU_FRVBF): New macro.
1981	(sim_open): Call sim_add_option_table. Call frv_cache_init for the
1982	data and insn caches for each cpu.
1983	(sim_close): Call frv_cache_term for the insn and data caches of each
1984	cpu.
1985	* mloop.in (extract): Read insn from the cache.
1986	(main loop): Access the insn cache in order to maintain stats.
1987	* memory.c (data_non_cache_access): New function.
1988	(insn_non_cache_access): New function.
1989	(frvbf_read_mem_QI): Attempt to read from the cache first.
1990	(frvbf_read_mem_UQI): Ditto.
1991	(frvbf_read_mem_HI): Ditto.
1992	(frvbf_read_mem_UHI): Ditto.
1993	(frvbf_read_mem_SI): Ditto.
1994	(frvbf_read_mem_DI): Ditto.
1995	(frvbf_read_mem_DF): Ditto.
1996	(frvbf_read_imem_USI): New function.
1997	(frvbf_write_mem_QI): Write through the cache is it is enabled.
1998	(frvbf_write_mem_UQI): Ditto.
1999	(frvbf_write_mem_HI): Ditto.
2000	(frvbf_write_mem_UHI): Ditto.
2001	(frvbf_write_mem_SI): Ditto.
2002	(frvbf_write_mem_DI): Ditto.
2003	(frvbf_write_mem_DF): Ditto.
2004	(frvbf_mem_set_QI): New function.
2005	(frvbf_mem_set_HI): New function.
2006	(frvbf_mem_set_SI): New function.
2007	(frvbf_mem_set_DI): New function.
2008	(frvbf_mem_set_DF): New function.
2009	(frvbf_mem_set_XI): New function.
2010	* interrupts.c (frv_save_data_written_for_interrupts): Handle
2011	CGEN_FN_MEM_QI_WRITE,
2012	CGEN_FN_MEM_HI_WRITE, CGEN_FN_MEM_SI_WRITE, CGEN_FN_MEM_DI_WRITE,
2013	CGEN_FN_MEM_DF_WRITE, CGEN_FN_MEM_XI_WRITE.
2014	* frv.c (frvbf_load_quad_GR): Call frvbf_read_mem_SI.
2015	Call sim_queue_fn_mem_xi_write.
2016	(frvbf_load_quad_FRint): Call frvbf_read_mem_SI.
2017	Call sim_queue_fn_mem_xi_write.
2018	(frvbf_load_quad_CPR): Call frvbf_read_mem_SI.
2019	Call sim_queue_fn_mem_xi_write.
2020	(frvbf_insn_cache_preload): New function.
2021	(frvbf_data_cache_preload): New function.
2022	(frvbf_insn_cache_unlock): New function.
2023	(frvbf_data_cache_unlock): New function.
2024	(frvbf_insn_cache_invalidate): New function.
2025	(frvbf_data_cache_invalidate): New function.
2026	(frvbf_data_cache_flush): New function.
2027	* frv-sim.h (sim-options.h): Include it.
2028	(GET_HSR0): New macro.
2029	(SET_HSR0): New macro.
2030	(GET_HSR0_ICE): New macro.
2031	(SET_HSR0_ICE): New macro.
2032	(GET_HSR0_DCE): New macro.
2033	(SET_HSR0_DCE): New macro.
2034	(GET_HSR0_CBM): New macro.
2035	(GET_HSR0_RME): New macro.
2036	(GET_IHSR8): New macro.
2037	(GET_IHSR8_NBC): New macro.
2038	(frvbf_insn_cache_preload): New function.
2039	(frvbf_data_cache_preload): New function.
2040	(frvbf_insn_cache_unlock): New function.
2041	(frvbf_data_cache_unlock): New function.
2042	(frvbf_insn_cache_invalidate): New function.
2043	(frvbf_data_cache_invalidate): New function.
2044	(frvbf_data_cache_flush): New function.
2045	(insn_non_cache_access): New function.
2046	(frvbf_read_imem_USI): New function.
2047	(frvbf_mem_set_QI): New function.
2048	(frvbf_mem_set_HI): New function.
2049	(frvbf_mem_set_SI): New function.
2050	(frvbf_mem_set_DI): New function.
2051	(frvbf_mem_set_DF): New function.
2052	(frvbf_mem_set_XI): New function.
2053	(frv_options): FRV specific command line options.
2054	* Makefile.in (SIM_OBJS): Add options.o and cache.o.
2055	(SIM_EXTRA_DEPS): Add $(sim-options_h).
2056	(cache.o): New target.
2057	(options.o): New target.
2058	* cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2059	* cache.h: New file.
2060	* cache.c: New file.
2061	* options.c: New file.
2062
20631999-11-29  Dave Brolley  <brolley@cygnus.com>
2064
2065	* traps.c (frvbf_check_non_excepting_load): Use new NE_FLAG macros.
2066	(frvbf_check_non_excepting_divide): Ditto.
2067	(clear_ne_flags): Ditto
2068	(frvbf_commit): Ditto.
2069	* pipeline.c (frv_pipeline_add_insn): Clear the NE index for all insns.
2070	* mloop.in (_parallel_write_init): Clear NE flags here.
2071	* interrupts.c (frv_queue_fp_exception_interrupt): Set NE flags here
2072	for non excepting insns. Also check for masked interrupts here.
2073	(frv_process_interrupts): Write NE flags here.
2074	(set_fp_exception_registers): No longer check for masked interrupts
2075	here.
2076	(check_for_compound_interrupt): No need to worry about masked
2077	interrupts.
2078	* frv-sim.h (frv_interrupt_state): Add f_ne_flags member.
2079	(GET_NE_FLAGS): New macro.
2080	(SET_NE_FLAGS): New macro.
2081	(GET_NE_FLAG): Operate on accumulated argument.
2082	(SET_NE_FLAG): Operate on accumulated argument.
2083	(CLEAR_NE_FLAG): Operate on accumulated argument.
2084	* Makefile.in (FRVBF_INCLUDE_DEPS): Add $(SIM_EXTRA_DEPS)
2085	(frv.o): Correct dependencies.
2086	(traps.o): Ditto.
2087	(pipeline.o): Ditto.
2088	(interrupts.o): Ditto.
2089	(memory.o): Ditto.
2090	* sem.c: Regenerate.
2091
20921999-11-26  Dave Brolley  <brolley@cygnus.com>
2093
2094	* traps.c (frvbf_fpu_error): Only call frv_queue_fp_exception if
2095	there is an exception indicated in the mask.
2096	* pipeline.c (frv_pipeline_add_insn): Clear ne_index in the interrupt
2097	state when adding a floating point insn to the pipeline.
2098	* interrupts.c (set_fp_exception_registers): Set NE flag for
2099	non-excepting insns.
2100	* frv-sim.h (frvbf_h_fr_double_get_handler): Mode of data is DF.
2101	(frvbf_h_fr_double_set_handler): Mode of data is DF.
2102	(frvbf_h_fr_int_get_handler): New function.
2103	(frvbf_h_fr_int_set_handler): New function.
2104	(frvbf_set_ne_index): New function.
2105	(NE_NOFLAG): New macro.
2106	(frv_interrupt_state): Add ne_index member.
2107	* frv.c (frvbf_h_fr_double_get_handler): Mode of data is DF.
2108	(frvbf_h_fr_double_set_handler): Mode of data is DF.
2109	(frvbf_h_fr_int_get_handler): New function.
2110	(frvbf_h_fr_int_set_handler): New function.
2111	(frvbf_set_ne_index): New function.
2112	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2113
21141999-11-24  Dave Brolley  <brolley@cygnus.com>
2115
2116	* cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2117
21181999-11-23  Dave Brolley  <brolley@cygnus.com>
2119
2120	* frv-sim.h (frvbf_media_cut): New function.
2121	* frv.c (frvbf_media_cut): New function.
2122	* cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2123
21241999-11-22  Dave Brolley  <brolley@cygnus.com>
2125
2126	* frv-sim.h (frvbf_clear_all_accumulators): New function.
2127	* frv.c.h (frvbf_clear_all_accumulators): New function.
2128	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2129
21301999-11-18  Dave Brolley  <brolley@cygnus.com>
2131
2132	* pipeline.c (frv_pipeline_add_insn): Only clear MSR0 and FSR0 fields
2133	if this is the first insn of its class in the pipeline.
2134	* frv-sim.h (frvbf_media_register_not_aligned): New function.
2135	* traps.c (frvbf_media_register_not_aligned): New function.
2136	* cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2137
21381999-11-17  Dave Brolley  <brolley@cygnus.com>
2139
2140	* pipeline.c (frv_pipeline_add_insn): Clear MSRx.SIE fields.
2141	* frv-sim.h (OR_MSR_SIE): New macro.
2142	(CLEAR_MSR_SIE): New macro.
2143	(frvbf_media_overflow): Now takes sie argument.
2144	(frv_set_mp_exception_registers): Now takes sie argument.
2145	* interrupts.c (frv_set_mp_exception_registers): Now takes sie argument.
2146	Set MSRx.SIE field.
2147	* cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2148
21491999-11-15  Dave Brolley  <brolley@cygnus.com>
2150
2151	* traps.c (frv_mtrap): New function.
2152	(frvbf_media_cr_not_aligned): New function.
2153	(frvbf_media_acc_not_aligned): New function.
2154	(frvbf_media_overflow): New function.
2155	* pipeline.c (frv_pipeline_add_insn): Clear MSR fields.
2156	* interrupts.c: Call frv_set_mp_exception_registers.
2157	(frv_set_mp_exception_registers): New function.
2158	* frv-sim.h (frv_msr_mtt): New enumeration.
2159	(GET_MSR): New macro.
2160	(SET_MSR): New macro.
2161	(GET_MSR_AOVF): New macro.
2162	(SET_MSR_AOVF): New macro.
2163	(GET_MSR_OVF): New macro.
2164	(SET_MSR_OVF): New macro.
2165	(CLEAR_MSR_OVF): New macro.
2166	(GET_MSR_MTT): New macro.
2167	(SET_MSR_MTT): New macro.
2168	(frv_set_mp_exception_registers): New function.
2169	(frv_mtrap): New function.
2170	(FRV_IS_MEDIA_INSN): New macro.
2171	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2172
21731999-11-10  Dave Brolley  <brolley@cygnus.com>
2174
2175	* sim-main.h (_sim_cpu): Add debug_state member.
2176	* mloop.in (_parallel_write_queued): Clear data_written.length.
2177	* interrupts.c (frv_interrupt_table): Offset of BREAK_EXCEPTION
2178	handler is 0xff.
2179	(frv_queue_break_interrupt): New function.
2180	(frv_break_interrupt): New function.
2181	(handle_interrupt): Handle break_interrupt.
2182	(frv_non_operating_interrupt): Now takes interrupt_kind.
2183	* frv-sim.h (frv_queue_break_interrupt): New function.
2184	(frv_break_interrupt): New function.
2185	(frv_break): New function.
2186	(frv_non_operating_interrupt): Now takes interrupt_kind.
2187	* cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2188
21891999-11-09  Dave Brolley  <brolley@cygnus.com>
2190
2191	* pipeline.c (frv_pipeline_add_insn): Clear FSR0.FTT when adding
2192	a floating point insn.
2193	* traps.c (frvbf_fpu_error): Map fpu status to frv interrupts.
2194	* interrupts.c (frv_queue_illegal_instruction_interrupt): Call
2195	frv_queue_fp_exception_interrupt.
2196	(frv_queue_fp_exception_interrupt): New function.
2197	(next_available_fq): New function.
2198	(set_fp_exception_registers): New function.
2199	(set_exception_status_registers): Now returns 1 if interrupt not masked.
2200	(check_for_compound_interrupt): Now returns NULL if interrupt masked.
2201	(frv_program_interrupt): Don't process interrupt if it is masked.
2202	* frv.c (frvbf_h_fr_double_get_handler): Call
2203	frv_queue_fp_exception_interrupt.
2204	(frvbf_h_fr_double_set_handler): Call frv_queue_fp_exception_interrupt.
2205	(frvbf_h_fr_quad_set_handler): Call frv_queue_fp_exception_interrupt.
2206	(frvbf_store_quad_FRint): Call frv_queue_fp_exception_interrupt.
2207	* frv-sim.h: Get/set hardware directly in GET/SET macros.
2208	(frv_fp_exception_info): New struct type.
2209	(frv_interrupt_queue_element): Add fp_info member.
2210	(frv_fsr_traps): New enumeration.
2211	(frv_fsr_ftt): New enumeration.
2212	(frv_sie): New enumeration.
2213	(frv_miv): New enumeration.
2214	(GET_FSR): New macro.
2215	(SET_FSR): New macro.
2216	(GET_FSR_TEM): New macro.
2217	(SET_FSR_QNE): New macro.
2218	(SET_FSR_FTT): New macro.
2219	(GET_FSR_AEXC): New macro.
2220	(SET_FSR_AEXC): New macro.
2221	(GET_FQ): New macro.
2222	(SET_FQ): New macro.
2223	(SET_FQ_OPC): New macro.
2224	(SET_FQ_MIV): New macro.
2225	(SET_FQ_SIE): New macro.
2226	(SET_FQ_FTT): New macro.
2227	(SET_FQ_CEXC): New macro.
2228	(GET_FQ_VALID): New macro.
2229	(SET_FQ_VALID): New macro.
2230	(frv_queue_fp_exception_interrupt): New function.
2231	(FRV_IS_FLOAT_INSN): New macro.
2232
22331999-11-04  Dave Brolley  <brolley@cygnus.com>
2234
2235	* traps.c (frvbf_fpu_error): No floating point errors need to be
2236	detected.
2237	* interrupts.c (clear_exception_status_registers): Clear 'valid' fields
2238	of the ESR registers too.
2239	(set_exception_status_registers): Don't set EAR for any precise
2240	interrupts. Register index should be 1 for insns in PIPE_I1. Clear
2241	ESR.EAV and ESR.EDV if not setting them. Set ESR.VALID.
2242	(non_operating_interrupt): No need for return code.
2243	(frv_program_or_software_interrupt): Process interrupt regardless
2244	of operating mode. If PSR.ET was not set at the start of processing,
2245	then stop the simulation with a message.
2246	(frv_save_data_written_for_interrupts): Handle CGEN_FN_XI_WRITE and
2247	CGEN_MEM_XI_WRITE.
2248	* frv.c (frvbf_h_gr_quad_set_handler): New function.
2249	(frvbf_h_fr_quad_set_handler): New function.
2250	(frvbf_h_cpr_quad_set_handler): New function.
2251	(frvbf_load_quad_GR): Renamed from frvbf_load_multiple_GR. Use new
2252	sim_queue_fn_xi_write.
2253	(frvbf_load_quad_FRint): Renamed from frvbf_load_multiple_GR. Use new
2254	sim_queue_fn_xi_write.
2255	(frvbf_load_quad_CPR): Renamed from frvbf_load_multiple_GR. Use new
2256	sim_queue_fn_xi_write.
2257	(frvbf_store_quad_GR): Renamed from frvbf_store_multiple_GR. Use new
2258	sim_queue_mem_xi_write.
2259	(frvbf_store_quad_FRint): Renamed from frvbf_store_multiple_GR. Use new
2260	sim_queue_mem_xi_write.
2261	(frvbf_store_quad_CPR): Renamed from frvbf_store_multiple_GR. Use new
2262	sim_queue_mem_xi_write.
2263	* frv-sim.h (frvbf_h_gr_quad_set_handler): New function.
2264	(frvbf_h_fr_quad_set_handler): New function.
2265	(frvbf_h_cpr_quad_set_handler): New function.
2266	(SET_ESR_VALID): New macro.
2267	(CLEAR_ESR_VALID): New macro.
2268	(CLEAR_ESR_EAV): New macro.
2269	(CLEAR_ESR_EDV): New macro.
2270	* sem.c: Regenerate.
2271
22721999-11-02  Dave Brolley  <brolley@cygnus.com>
2273
2274	* traps.c (frv_core_signal): Call
2275	frv_queue_mem_address_not_aligned_interrupt.
2276	* mloop.in (_parallel_write_queued): Call
2277	frv_save_data_written_for_interrupts.
2278	* frv.c (frvbf_h_gr_double_get_handler): Call
2279	frv_queue_register_exception_interrupt.
2280	(frvbf_h_cpr_double_get_handler): Call
2281	frv_queue_register_exception_interrupt.
2282	(frvbf_h_cpr_double_set_handler): Call
2283	frv_queue_register_exception_interrupt.
2284	(frvbf_load_multiple_GR): Call
2285	frv_queue_register_exception_interrupt.
2286	(frvbf_store_multiple_GR): Call
2287	frv_queue_register_exception_interrupt.
2288	(frvbf_load_multiple_CPR): Call
2289	frv_queue_register_exception_interrupt.
2290	(frvbf_store_multiple_CPR): Call
2291	frv_queue_register_exception_interrupt.
2292	(frvbf_h_tbr_get_handler): Fix TBR.TBA mask.
2293	* interrupts.c (frv_queue_software_interrupt): Now returns interrupt
2294	queue element.
2295	(frv_queue_program_interrupt): Now returns interrupt queue element.
2296	(frv_queue_illegal_instruction_interrupt): Now returns interrupt queue
2297	element.
2298	(frv_queue_interrupt): Now returns interrupt queue element.
2299	(frv_queue_register_exception_interrupt): New function.
2300	(frv_queue_mem_address_not_aligned_interrupt): New function.
2301	(frv_save_data_written_for_interrupts): New function.
2302	(next_available_edr): EDR registers available in blocks of 4.
2303	(clear_exception_status_registers): New function.
2304	(set_exception_status_registers): Pass esr to SET_ESR* macros.
2305
2306	* frv-sim.h (struct frv_data_written): New struct type.
2307	(frv_interrupt_queue_element): Add data_written member.
2308	(frv_queue_software_interrupt): Now returns interrupt queue element.
2309	(frv_queue_program_interrupt): Now returns interrupt queue element.
2310	(frv_queue_illegal_instruction_interrupt): Now returns interrupt queue
2311	element.
2312	(frv_queue_interrupt): Now returns interrupt queue element.
2313	(frv_queue_register_exception_interrupt): New function.
2314	(frv_queue_mem_address_not_aligned_interrupt): New function.
2315	(frv_save_data_written_for_interrupts): New function.
2316
23171999-10-27  Dave Brolley  <brolley@cygnus.com>
2318
2319	* interrupts.c (ITABLE_ENTRY): New macro.
2320	(frv_interrupt_table): Add exception codes.
2321	(next_available_esr): New function.
2322	(next_available_edr): New function.
2323	(set_edr_register): New function.
2324	(set_exception_status_registers): New function.
2325	(check_for_compound_interrupt): Record information on all interrupts
2326	found.
2327	(frv_program_interrupt): Always call check_for_compound_interrupt.
2328	* frv.c (frvbf_h_pc_set_handler): Removed.
2329	(frvbf_h_spr_get_handler): Handle LR register.
2330	(frvbf_h_spr_set_handler): Handle LR register.
2331	(frvbf_h_lr_get_handler): New function.
2332	(frvbf_h_lr_set_handler): New function.
2333	* frv-sim.h (frvbf_h_lr_get_handler): New function.
2334	(frvbf_h_lr_set_handler): New function.
2335	(frv_ec): New enumeration.
2336	(frv_interrupt): Add frv_ec field.
2337	(frv_rec): New enumeration.
2338	(frv_daec): New enumeration.
2339	(frv_interrupt_queue_element): Add eaddress, rec, iaec, daec fields.
2340	(SET_ESR_EC): New macro.
2341	(SET_ESR_REC): New macro.
2342	(SET_ESR_IAEC): New macro.
2343	(SET_ESR_DAEC): New macro.
2344	(SET_ESR_EAV): New macro.
2345	(GET_ESR_EDV): New macro.
2346	(SET_ESR_EDV): New macro.
2347	(GET_ESR_EDN): New macro.
2348	(SET_ESR_EDN): New macro.
2349	(GET_ESR): New macro.
2350	(SET_ESR): New macro.
2351	(SET_EPCR): New macro.
2352	(SET_EAR): New macro.
2353	(SET_EDR): New macro.
2354	(GET_ESFR): New macro.
2355	(SET_ESFR): New macro.
2356	* cpu.c,cpu.h,sem.c: Rebuild.
2357
23581999-10-26  Dave Brolley  <brolley@cygnus.com>
2359
2360	* traps.c (frvbf_check_non_excepting_load): Only set NESR, NECR, NEEAR
2361	if mach is frv.
2362	(clear_nesr_neear): Only execute if mach is frv.
2363
23641999-10-22  Dave Brolley  <brolley@cygnus.com>
2365
2366	* sim-main.h (sim_cpu): Add pipeline.
2367	(CPU_PIPELINE): New macro.
2368	* mloop.in (_parallel_write_queued): Maintain pc in cpu during writes.
2369	(main loop): Maintain pc in cpu.
2370	* frv-sim.h (frv_queue_software_interrupt): New interface.
2371	(frv_queue_program_interrupt): New interface.
2372	(frv_queue_illegal_instruction_interrupt: New interface.
2373	(frv_queue_interrupt): New interface.
2374	(frv_detect_insn_access_interrupts): New interface.
2375	(frv_process_interrupts): New interface.
2376	(frv_program_interrupt): New interface.
2377	(frv_software_interrupt): New interface.
2378	(frv_program_or_software_interrupt): New interface.
2379	(FRV_PIPELINE): Moved from pipline.c.
2380	(frv_pipeline_reset): New interface.
2381	(frv_pipeline_add_insn): New interface.
2382	* interrupts.c (frv_queue_software_interrupt): New interface.
2383	(frv_queue_program_interrupt): New interface.
2384	(frv_queue_illegal_instruction_interrupt: New interface.
2385	(frv_queue_interrupt): New interface.
2386	(frv_detect_insn_access_interrupts): New interface.
2387	(frv_process_interrupts): New interface.
2388	(frv_program_interrupt): New interface.
2389	(frv_software_interrupt): New interface.
2390	(frv_program_or_software_interrupt): New interface.
2391	* frv.c: Use new interfaces.
2392	* pipeline.c: Use new interfaces.
2393	* traps.c: Use new interfaces.
2394	* memory.c: Use new interfaces.
2395	(frv_address_forbidden): No longer static.
2396
23971999-10-19  Dave Brolley  <brolley@cygnus.com>
2398
2399	* traps.c (frvbf_check_non_excepting_load): Set NESR.DAEC, NESR.REC and
2400	NESR.EC.
2401	* mloop.in (_parallel_write_queued): Handle CGEN_FN_PC_WRITE.
2402	* frv.c (frvbf_h_pc_set_handler): New function.
2403	* interrupts.c (frv_detect_data_interrupt): Removed.
2404	(address_forbidden): Removed.
2405	* frv-sim.h (frv_detect_data_interrupt): Removed.
2406	(NESR_MEM_ADDRESS_NOT_ALIGNED): New macro.
2407	(NESR_REGISTER_NOT_ALIGNED): New macro.
2408	(NESR_UQI_SIZE): New macro.
2409	(NESR_QI_SIZE): New macro.
2410	(NESR_UHI_SIZE): New macro.
2411	(NESR_HI_SIZE): New macro.
2412	(NESR_SI_SIZE): New macro.
2413	(NESR_DI_SIZE): New macro.
2414	(NESR_XI_SIZE): New macro.
2415	(GET_NESR_DAEC): New macro.
2416	(SET_NESR_DAEC): New macro.
2417	(GET_NESR_REC): New macro.
2418	(SET_NESR_REC): New macro.
2419	(GET_NESR_EC): New macro.
2420	(SET_NESR_EC): New macro.
2421	(frvbf_read_mem_QI): New function.
2422	(frvbf_read_mem_UQI): New function.
2423	(frvbf_read_mem_HI): New function.
2424	(frvbf_read_mem_UHI): New function.
2425	(frvbf_read_mem_SI): New function.
2426	(frvbf_read_mem_WI): New function.
2427	(frvbf_read_mem_DI): New function.
2428	(frvbf_read_mem_DF): New function.
2429	(frvbf_write_mem_QI): New function.
2430	(frvbf_write_mem_UQI): New function.
2431	(frvbf_write_mem_HI): New function.
2432	(frvbf_write_mem_UHI): New function.
2433	(frvbf_write_mem_SI): New function.
2434	(frvbf_write_mem_WI): New function.
2435	(frvbf_write_mem_DI): New function.
2436	(frvbf_write_mem_DF): New function.
2437	* Makefile.in (SIM_OBJS): Add memory.o.
2438	* cpu.c,cpu.h,sem.c: Rebuild.
2439
24401999-10-18  Dave Brolley  <brolley@cygnus.com>
2441
2442	* sim-if.c (sim_open): Use a real fpu error function.
2443	* pipeline.c (frv_pipeline_add_insn): Don't add invalid insns.
2444	* mloop.in (_parallel_write_queued): Clear queue after writing.
2445	* interrupts.c (check_for_compound_interrupt): New function.
2446	(non_operating_interrupt): New function.
2447	* frv-sim.h (frvbf_h_gr_double_get_handler): New function.
2448	(frvbf_h_gr_double_set_handler): New function.
2449	(frvbf_h_fr_double_get_handler): New function.
2450	(frvbf_h_fr_double_set_handler): New function.
2451	(frvbf_h_cpr_double_get_handler): New function.
2452	(frvbf_h_cpr_double_set_handler): New function.
2453	(frv_interrupt_queue_element): New struct type.
2454	(frv_queue_program_interrupt): Now takes pc.
2455	(frv_queue_illegal_instruction_interrupt): Now takes pc.
2456	(frv_queue_interrupt): Now takes pc.
2457	(frv_program_interrupt): Now takes frv_interrupt_queue_element.
2458	(frv_software_interrupt): Now takes frv_interrupt_queue_element.
2459	(frvbf_division_exception): New function.
2460	(frvbf_fpu_error): New function.
2461	(frvbf_load_multiple_GR): New function.
2462	(frvbf_load_multiple_FR): New function.
2463	(frvbf_load_multiple_CPR): New function.
2464	* frv.c (frvbf_h_gr_double_get_handler): New function.
2465	(frvbf_h_gr_double_set_handler): New function.
2466	(frvbf_h_fr_double_get_handler): New function.
2467	(frvbf_h_fr_double_set_handler): New function.
2468	(frvbf_h_cpr_double_get_handler): New function.
2469	(frvbf_h_cpr_double_set_handler): New function.
2470	(frv_interrupt_queue_element): New struct type.
2471	(frv_queue_program_interrupt): Now takes pc.
2472	(frv_queue_illegal_instruction_interrupt): Now takes pc.
2473	(frv_queue_interrupt): Now takes pc.
2474	(frv_program_interrupt): Now takes frv_interrupt_queue_element.
2475	(frv_software_interrupt): Now takes frv_interrupt_queue_element.
2476	(frvbf_fpu_error): New function.
2477	(frvbf_load_multiple_GR): New function.
2478	(frvbf_load_multiple_FR): New function.
2479	(frvbf_load_multiple_CPR): New function.
2480	* traps.c (frvbf_division_exception): New function.
2481	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
2482
24831999-10-12  Dave Brolley  <brolley@cygnus.com>
2484
2485	* mloop.in (new_vpc): New variable.
2486	(main loop): Call frv_detect_insn_access_interrupts. Call
2487	frv_detect_data_interrupts.
2488	* interrupts.c (access_queued_to): New function.
2489	(frv_detect_data_interrupts): New function.
2490	(frv_detect_insn_access_interrupts): New function.
2491	(frv_program_or_software_interrupt): Set PSR.S.
2492	* frv-sim.h (frv_detect_data_interrupts): New function.
2493	(frv_detect_insn_interrupts): New function.
2494
24951999-10-07  Dave Brolley  <brolley@cygnus.com>
2496
2497	* frv-sim.h (frvbf_h_gr_hi_get_handler): New function.
2498	(frvbf_h_gr_hi_set_handler): New function.
2499	(frvbf_h_gr_lo_get_handler): New function.
2500	(frvbf_h_gr_lo.set_handler): New function.
2501	* frv.c (frvbf_h_gr_hi_get_handler): New function.
2502	(frvbf_h_gr_hi_set_handler): New function.
2503	(frvbf_h_gr_lo_get_handler): New function.
2504	(frvbf_h_gr_lo.set_handler): New function.
2505	(frvbf_model_fr500_u_integer): New function.
2506	* arch.h,cpu.h,cpu.c,decode.h,decode.c,model.c,sem.c: Rebuild.
2507
25081999-10-04  Dave Brolley  <brolley@cygnus.com>
2509
2510	* traps.c: Use sim_engine_abort.
2511	* pipeline.c (frv_pipeline): Add field for insn major.
2512	(add_next_to_pipe): Return address of matching pipeline.
2513	(find_major_in_pipeline): New function.
2514	(check_insn_major_constraints: New function.
2515	(frv_pipeline_add_insn): Add checks for insn major constraints.
2516	* interrupts.c (frv_process_interrupts): Use sim_engine_abort.
2517	* frv.c (frvbf_h_spr_get_handler): No need to abort.
2518
2519Thu Sep 30 18:10:25 1999  Dave Brolley  <brolley@cygnus.com>
2520
2521	* pipeline.c: New file.
2522	* mloop.in (main loop): Call frv_pipeline_reset.
2523 	Call frv_pipeline_add_insn.
2524	* frv-sim.h (frv_pipeline_reset): New function.
2525	(frv_pipeline_add_insn): New function.
2526	* Makefile.in (SIM_OBJS): Add pipeline.o
2527
25281999-09-29  Doug Evans  <devans@casey.cygnus.com>
2529
2530	* sem.c: Rebuild.
2531	* traps.c (sim_engine_invalid_insn): New arg `vpc'.  Change type of
2532	result to SEM_PC.  Return vpc.
2533
2534Wed Sep 29 16:01:52 1999  Dave Brolley  <brolley@cygnus.com>
2535
2536	* interrupts.c (frv_interrupt_table): DATA_STORE_ERROR is imprecise.
2537	(frv_queue_interrupt): Don't detect identical interrupts here.
2538
2539Wed Sep 29 14:49:52 1999  Dave Brolley  <brolley@cygnus.com>
2540
2541	* interrupts.c: New file.
2542	* traps.c (sim_engine_invalid_insn): Return PC of next insn.
2543	(frv_software_interrupt): Moved to interrupts.c.
2544	(frv_itrap): New interface. Call frv_queue_software_interrupt.
2545	* mloop.in (@cpu@_parallel_write_init): set previous_vliw_pc.
2546	(@cpu@_perform_writeback): New function.
2547	(main loop): Call frv_process_interrupts.
2548	* frv-sim.h (frvbf_write_next_vliw_addr_to_PCSR): Removed.
2549	(frv_itrap): New interface.
2550	(frv_interrupt_class): New enumeration.
2551	(frv_interrupt_kind): New enumeration.
2552	(struct frv_interrupt): New struct type.
2553	(frv_interrupt_table): New table of interrupt information.
2554	(FRV_INTERRUPT_QUEUE_SIZE): New macro.
2555	(struct frv_interrupt_state): New struct type.
2556	(frv_interrupt_state): New global variable.
2557	(previous_vliw_pc): New global variable.
2558	(frv_queue_software_interrupt): New function.
2559	(frv_queue_program_interrupt): New function.
2560	(frv_queue_interrupt): New function.
2561	(frv_process_interrupts): New function.
2562	(frv_program_interrupt): New function.
2563	(frv_software_interrupt): New function.
2564	(frv_program_or_software_interrupt): New function.
2565	(frv_clear_interrupt_classes): New function.
2566	* frv.c (frvbf_write_next_vliw_addr_to_PCSR): Removed.
2567	* Makefile.in (SIM_OBJS): Add interrupts.o
2568	* sem.c: Rebuild.
2569
25701999-09-25  Doug Evans  <devans@casey.cygnus.com>
2571
2572	* cpu.h,cpuall.h,decode.c,sem.c: Rebuild.
2573
2574Tue Sep 21 17:16:47 1999  Dave Brolley  <brolley@cygnus.com>
2575
2576	* mloop.in (main loop): Determine last insn from scache entry.
2577	* cpu.h: Rebuild.
2578	* cpuall.h: Rebuild.
2579
2580Tue Sep 14 14:21:31 1999  Dave Brolley  <brolley@cygnus.com>
2581
2582	* frv-sim.h (frvbf_write_next_vliw_addr_to_PCSR): New flag.
2583	(NECR_ELOS): Define as unshifted value.
2584	(NECR_NEN): Define as unshifted value.
2585	(NECR_VALID): Define as unshifted value.
2586	(SET_NESR): Rewite to use post-write queue.
2587	(SET_NESR_VALID): Rewite to operate on argument.
2588	(SET_NESR_EAV): Rewite to operate on argument.
2589	(SET_NESR_FR): Rewite to operate on argument.
2590	(CLEAR_NESR_FR): Rewite to operate on argument.
2591	(SET_NESR_DRN): Rewite to operate on argument.
2592	(SET_NESR_SIZE): Rewite to operate on argument.
2593	(SET_NESR_NEAN): Rewite to operate on argument.
2594	(SET_NEEAR): Rewite to use post-write queue.
2595	(SET_NE_FLAG): Rewite to use post-write queue.
2596	(CLEAR_NE_FLAG): Rewite to use post-write queue.
2597	* traps.c (frv_software_interrupt): Rewite to use post-write queue.
2598	(frv_rett): Rewite to use post-write queue.
2599	(next_available_nesr): Rewrite to use new macro interfaces.
2600	(next_valid_nesr): Ditto.
2601	(frvbf_check_non_excepting_load): Ditto.
2602	(frvbf_check_recovering_store): Ditto.
2603	(clear_nesr_neear): Ditto.
2604	(clear_ne_flags): Ditto.
2605	* mloop.in (main loop): Update PCSR with address of next VLIW insn
2606	when flag is set.
2607	* frv.c (frvbf_h_spr_get_handler): Shift register fields here now.
2608	(frvbf_store_multiple_GR): Rewite to use post-write queue.
2609	(frvbf_store_multiple_FRint): Rewite to use post-write queue.
2610	(frvbf_store_multiple_CPR): Rewite to use post-write queue.
2611	* Makefile.in (frv.o): Depend on cgen-par.h.
2612
2613Fri Sep 10 17:03:15 1999  Dave Brolley  <brolley@cygnus.com>
2614
2615	* frv-sim.h (frvbf_set_write_next_vliw_addr_to_LR): New function.
2616	(frvbf_write_next_vliw_addr_to_LR): New flag.
2617	* frv.c (frvbf_set_write_next_vliw_addr_to_LR): New function.
2618	* mloop.in: Only take the first branch in a VLIW insn. Set LR to the
2619	address of the next VLIW insn if flag is set.
2620	* cpu.h,decode.c,sem.c: Rebuild.
2621
2622Tue Sep  7 13:44:23 1999  Dave Brolley  <brolley@cygnus.com>
2623
2624	* mloop.in: Limit parallel insns to MAX_PARALLEL_INSNS.
2625	* sem.c: Rebuild.
2626
26271999-09-02  Doug Evans  <devans@casey.cygnus.com>
2628
2629	* configure: Regenerated to track ../common/aclocal.m4 changes.
2630
26311999-09-01  Doug Evans  <devans@casey.cygnus.com>
2632
2633	* decode.c: Rebuild.
2634
2635Mon Aug 30 17:54:57 1999  Dave Brolley  <brolley@cygnus.com>
2636
2637	* traps.c (frv_rett): New function.
2638	* frv.c (frvbf_h_spr_get_handler): Handle bpsr.
2639	(frvbf_h_spr_set_handler): Handle bpsr.
2640	(frvbf_h_bpsr_get_handler): New function.
2641	(frvbf_h_bpsr_set_handler): New function.
2642	* frv-sim.h (frv_rett): New function.
2643	(frvbf_h_bpsr_get_handler): New function.
2644	(frvbf_h_bpsr_set_handler): New function.
2645	* mloop.in: Read actual packing bit.
2646	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
2647
2648Tue Aug 31 16:04:37 1999  Dave Brolley  <brolley@cygnus.com>
2649
2650	* traps.c (WANT_CPU): New macro.
2651	(WANT_CPU_FRVBF): New macro.
2652	(frvbf_check_recovering_store): Use registers for source and queue
2653 	writes.
2654	* mloop.in: New main loop for parallel support.
2655	(@cpu@_parallel_write_init): New function.
2656	(@cpu@_parallel_write_queued): New function.
2657	* frv-sim.h (set_icc_for_shift_left): New interface.
2658	(set_icc_for_shift_right): New interface.
2659	(frvbf_check_recovering_store): New interface.
2660	* frv.c (set_icc_for_shift_left): Pass and return icc value.
2661	(set_icc_for_shift_right): Pass and return icc value.
2662	(frvbf_check_recovering_store): New interface.
2663	* Makefile.in (FRV_OBJS): Add cgen-par.o.
2664	(stamp-mloop): Add cgen parallel options.
2665	(stamp-arch): Remove with-profile option.
2666	(stamp-cpu): Add cgen parallel options.
2667	* arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
2668
26691999-08-28  Doug Evans  <devans@casey.cygnus.com>
2670
2671	* cpu.h,decode.c,sem.c: Rebuild.
2672
2673Wed Aug 25 12:25:04 1999  Dave Brolley  <brolley@cygnus.com>
2674
2675	* arch.h,cpu.h,decode.h,model.c,sem.c: Rebuild.
2676
2677Thu Aug 19 17:59:00 1999  Dave Brolley  <brolley@cygnus.com>
2678
2679	* configure.in: fr500 now the default model.
2680	* configure: Regenerate.
2681	* frv.c: Change frv-1 to frv-gen.
2682	(frvbf_model_fr500_u_exec): New function.
2683	* Makefile.in (stamp-cpu): Use 'mach=frv,fr500' to build decoder.
2684	* mloop.in: Fix typos in comments.
2685	* arch.c,arch.h,cpu.h,cpuall.h,decode.h,model.c,sem.c: Rebuild.
2686
26871999-08-17  Dave Brolley  <brolley@cygnus.com>
2688
2689	* cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
2690
26911999-08-09  Doug Evans  <devans@casey.cygnus.com>
2692
2693	* cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
2694
26951999-08-04  Doug Evans  <devans@casey.cygnus.com>
2696
2697	* cpu.h,cpuall.h,decode.c,model.c,sem.c: Rebuild.
2698
2699Fri Jul 16 14:50:15 1999  Dave Brolley  <brolley@cygnus.com>
2700
2701	* frv.c (frvbf_fetch_register): Use GDB register number macros.
2702	(frvbf_store_register): Use GDB register number macros.
2703	(frvbf_cut): New function.
2704	* frv-sim.h (GR_REGNUM_MAX): New macro.
2705	(FR_REGNUM_MAX): New macro.
2706	(PC_REGNUM): New macro.
2707	(LR_REGNUM): New macro.
2708	(frvbf_cut): New function.
2709	* cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2710
27111999-07-15  Stan Shebs  <shebs@andros.cygnus.com>
2712
2713	* frv.c (frvbf_fetch_register): Add ability to get LR register,
2714 	add default for unhandled registers.
2715	(frvbf_store_register): Add ability to set LR register.
2716
27171999-07-14  Stan Shebs  <shebs@andros.cygnus.com>
2718
2719	* frv.c (frvbf_fetch_register, frvbf_store_register): Fill in.
2720	(decode_gdb_dr_regnum): Remove, not used.
2721
27221999-07-13  Michael Meissner  <meissner@cygnus.com>
2723
2724	* Makefile.in (SIM_EXTRA_FLAGS): Incorporate @sim_trapdump@.
2725
2726	* configure.in (--enable-sim-trapdump): New switch to make unknown
2727	traps dump the register contents, instead of doing the trap thing.
2728	* configure: Regenerate.
2729
2730	* frv-sim.h (TRAP_BREAKPOINT): Define as 81, so it can be used.
2731	(TRAP_REGDUMP{1,2}): Define to provide register dumping support
2732	temporarily.
2733
2734	* traps.h (toplevel): Include bfd.h, libiberity.h.
2735	(frv_itrap): Add support for --enable-sim-trapdump and traps 2,3
2736	dumping the registers.
2737
2738Thu Jul  8 10:57:39 1999  Dave Brolley  <brolley@cygnus.com>
2739
2740	* Makefile.in (SIM_EXTRA_LIBS): Removed. libm no longer needed.
2741
2742Wed Jul  7 17:01:12 1999  Dave Brolley  <brolley@cygnus.com>
2743
2744	* cpu.c,cpu.h,decode.c,model.c,sem.c: Rebuild.
2745
2746Tue Jul  6 16:12:18 1999  Dave Brolley  <brolley@cygnus.com>
2747
2748	* frv.c (frvbf_square_root_SF): Removed.
2749	(frvbf_square_root_DF): Removed.
2750	(frvbf_h_fr_double_get_handler): Removed.
2751	(frvbf_h_fr_double_set_handler): Removed.
2752	(frvbf_h_fr_int_get_handler): Removed.
2753	(frvbf_h_fr_int_set_handler): Removed.
2754	* frv-sim.h (frvbf_square_root_SF): Removed.
2755	(frvbf_square_root_DF): Removed.
2756	(frvbf_h_fr_double_get_handler): Removed.
2757	(frvbf_h_fr_double_set_handler): Removed.
2758	(frvbf_h_fr_int_get_handler): Removed.
2759	(frvbf_h_fr_int_set_handler): Removed.
2760	* decode.c,decode.h,model.c,sem.c: Rebuild.
2761
27621999-07-05  Doug Evans  <devans@casey.cygnus.com>
2763
2764	* Makefile.in (SIM_OBJS): Add cgen-fpu.o, cgen-accfp.o.
2765	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
2766	* sim-if.c (sim_open): Initialize fpu.
2767	* frv-sim.h (SETMEMSF,SETMEMDF): Delete.
2768	* frv.c (frvbf_store_multiple_FRint): Replace frvbf_h_fr_int_get
2769	with frvbf_h_fr_get.
2770
2771Wed Jun 30 15:56:56 1999  Dave Brolley  <brolley@cygnus.com>
2772
2773	* frv-sim.h (NESR_RANGE): New macro.
2774	(NO_NESR): New macro.
2775	(GET_NESR_VALID): New macro.
2776	(next_ne_index): Removed.
2777	* traps.c (next_available_nesr): New function.
2778	(next_valid_nesr): New function.
2779	(frvbf_check_non_excepting_load): Use next_available_nesr.
2780	(frvbf_check_recovering_store): Use next_available_nesr and
2781	next_valid_nesr.
2782	(clear_nesr_neear): Use next_available_nesr and	next_valid_nesr.
2783	(frvbf_check_recovering_store): Only consider one matching register.
2784	* sem.c: Rebuild.
2785
2786Tue Jun 29 16:54:32 1999  Dave Brolley  <brolley@cygnus.com>
2787
2788	* frv.c (frvbf_square_root_SF): New function.
2789	(frvbf_square_root_DF): New function.
2790	(frvbf_h_fr_double_get_handler): New function.
2791	(frvbf_h_fr_double_set_handler): New function.
2792	* frv-sim.h (frvbf_square_root_SF): New function.
2793	(frvbf_square_root_DF): New function.
2794	(frvbf_h_fr_double_get_handler): New function.
2795	(frvbf_h_fr_double_set_handler): New function.
2796	* cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c: Rebuild.
2797
27981999-06-28  Dave Brolley  <brolley@cygnus.com>
2799
2800	* decode.c,decode.h,model.c,sem.c: Regenerate.
2801
2802Thu Jun 24 17:26:32 1999  Dave Brolley  <brolley@cygnus.com>
2803
2804	* Makefile.in (SIM_EXTRA_LIBS): Add -lm.
2805	* frv-sim.h (frvbf_h_fr_int_get_handler): New function.
2806	(frvbf_h_fr_int_set_handler): New function.
2807	(frvbf_store_multiple_FRint): New function.
2808	(frvbf_square_root_SF): New function.
2809	* frv.c (frvbf_h_fr_int_get_handler): New function.
2810	(frvbf_h_fr_int_set_handler): New function.
2811	(frvbf_store_multiple_FRint): New function.
2812	(frvbf_square_root_SF): New function.
2813	* cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2814
28151999-06-23  Doug Evans  <devans@casey.cygnus.com>
2816
2817	* Makefile.in (stamp-mloop): Delete -fast -pbb -switch args
2818	to genmloop.sh.  Pass -scache instead.
2819	(mloop.o): Delete sem-switch.c dependency.
2820	(sem-switch.c): Delete rule.
2821	(stamp-cpu): Don't build sem-switch.c.
2822	* sem-switch.c: Delete.
2823	* mloop.in (xfull-exec-*): Fix call to execute.
2824	* tconfig.in (WITH_SCACHE_PBB): Define as 0.
2825
2826	* cpu.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild.
2827
2828Tue Jun 22 16:23:57 1999  Dave Brolley  <brolley@cygnus.com>
2829
2830	* cpu.h,decode.c,sem.c,sem-switch.c: Regenerate.
2831
2832Mon Jun 21 17:34:10 1999  Dave Brolley  <brolley@cygnus.com>
2833
2834	* mloop.in (execute): Force gr0 to zero before each insn.
2835	* cpu.h,cpu.c,decode.c,sem.c,sem-switch.c: Regenerate.
2836
28371999-06-18  Doug Evans  <devans@casey.cygnus.com>
2838
2839	* cpu.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild.
2840
2841Fri Jun 18 17:49:23 1999  Dave Brolley  <brolley@cygnus.com>
2842
2843	* frv.c (frvbf_h_gr_get_handler): New function.
2844	(frvbf_h_gr_set_handler): New function:
2845	(frvbf_store-multiple_GR): New function:
2846	(frvbf_store-multiple_FR): New function:
2847	(frvbf_store-multiple_CPR): New function:
2848	* frv-sim.h (frvbf_h_gr_get_handler): New function.
2849	(frvbf_h_gr_set_handler): New function:
2850	(frvbf_store-multiple_GR): New function:
2851	(frvbf_store-multiple_FR): New function:
2852	(frvbf_store-multiple_CPR): New function:
2853	* traps.c (frv_itrap): Implement proper syscalls interface.
2854	* cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2855
2856Fri Jun 18 14:36:23 1999  Dave Brolley  <brolley@cygnus.com>
2857
2858	* traps.c (frvbf_check_non_excepting_divide): New function.
2859	(frvbf_check_recovering_store): New function.
2860	(clear_nesr_neear): New function.
2861	(clear_ne_flags): New function.
2862	(frvbf_commit): New function.
2863
2864	* frv-sim.h (frvbf_check_non_excepting_divide): New function.
2865	(frvbf_check_recovering_store): New function.
2866	(clear_nesr_neear): New function.
2867	(clear_ne_flags): New function.
2868	(frvbf_commit): New function.
2869	* cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2870
28711999-06-16  Dave Brolley  <brolley@cygnus.com>
2872
2873	* frv.c (frvbf_h_spr_get_handler): Handle SPR_NECR.
2874	(frvbf_h_spr_set_handler): Handle SPR_NECR.
2875	* traps.c (next_ne_index): New variable.
2876	(frvbf_check_non_excepting_load): New function.
2877	* frv-sim.h (NECR_ELOS): New macro.
2878	(NECR_NEN): New macro.
2879	(NECR_VALID): New macro.
2880	(SET_NESR_VALID): New macro.
2881	(SET_NESR_EAV): New macro.
2882	(SET_NESR_FR): New macro.
2883	(CLEAR_NESR_FR): New macro.
2884	(SET_NESR_DRN): New macro.
2885	(SET_NESR_SIZE): New macro.
2886	(SET_NESR_NEAN): New macro.
2887	(SET_NEEAR): New macro.
2888	(GET_NE_FLAG): New macro.
2889	(SET_NE_FLAG): New macro.
2890	(CLEAR_NE_FLAG): New macro.
2891	(frvbf_check_non_excepting_load): New function:
2892	* cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2893
2894Wed Jun  9 18:12:49 1999  Dave Brolley  <brolley@cygnus.com>
2895
2896	* cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
2897
2898Tue Jun  8 18:13:51 1999  Dave Brolley  <brolley@cygnus.com>
2899
2900	* frv.c (cr_logic): Correct andcr, nandcr, andncr and nandncr.
2901	* cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2902
2903Mon Jun  7 17:09:15 1999  Dave Brolley  <brolley@cygnus.com>
2904
2905	* cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2906
29071999-06-07  Dave Brolley  <brolley@cygnus.com>
2908
2909	* cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2910
2911Thu Jun  3 17:33:31 1999  Dave Brolley  <brolley@cygnus.com>
2912
2913	* cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2914
2915Wed Jun  2 17:50:21 1999  Dave Brolley  <brolley@cygnus.com>
2916
2917	* cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2918
2919Tue Jun  1 17:58:53 1999  Dave Brolley  <brolley@cygnus.com>
2920
2921	* cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
2922
2923Mon May 31 17:57:25 1999  Dave Brolley  <brolley@cygnus.com>
2924
2925	* traps.c (frv_software_interrupt): Pass current_cpu to
2926	frvbf_h_psr_esr_get.
2927	(frv_software_interrupt): Calculate the new PC based on TBR.
2928	* cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
2929
29301999-05-31  Dave Brolley  <brolley@cygnus.com>
2931
2932	* cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
2933
2934Thu May 27 17:42:00 1999  Dave Brolley  <brolley@cygnus.com>
2935
2936	* frv-sim.h (frvbf_h_cccr_get_handler): New function.
2937	(frvbf_h_cccr_set_handler): New function.
2938	(frvbf_scan_result): New function.
2939	(frvbf_cr_logic): New function.
2940	* frv.c (frvbf_h_cccr_get_handler): New function.
2941	(frvbf_h_cccr_set_handler): New function.
2942	(frvbf_scan_result): New function.
2943	(frvbf_cr_logic): New function.
2944	(cr_ops,cr_result,cr_logic): New table.
2945	* cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
2946
29471999-05-25  Dave Brolley  <brolley@cygnus.com>
2948
2949	* frv.c (frvbf_h_spr_get_handler): Add support for TBR and PSR.
2950	(frvbf_h_spr_set_handler): Add support for TBR and PSR.
2951	(frv_psr_get_handler): New function.
2952	(frv_psr_set_handler): New function.
2953	(frv_tbr_get_handler): New function.
2954	(frv_tbr_set_handler): New function.
2955	(frvbf_h_ccr_get_handler): Add support for fCC.
2956	(frvbf_h_ccr_set_handler): Add support for fCC.
2957	* frv-sim.h (frv_psr_get_handler): New function.
2958	(frv_psr_set_handler): New function.
2959	(frv_tbr_get_handler): New function.
2960	(frv_tbr_set_handler): New function.
2961	* traps.c (frv_software_interrupt): Implement.
2962	* cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2963
2964Thu May 20 16:39:27 1999  Dave Brolley  <brolley@cygnus.com>
2965
2966	* cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2967
29681999-05-18  Dave Brolley  <brolley@cygnus.com>
2969
2970	* frv.c: (frvbf_set_icc_for_shift_left): New function.
2971	(frvbf_set_icc_for_shift_right): New function.
2972	* frv-sim.h (frvbf_set_icc_for_shift_left): New function.
2973	(frvbf_set_icc_for_shift_right): New function.
2974	(SETMEMSF): New Macro.
2975	(SETMEMDF): New Macro.
2976	* cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2977
2978Thu May 13 17:14:49 1999  Dave Brolley  <brolley@cygnus.com>
2979
2980	* frv.c (frvbf_h_ccr_get_handler): New function.
2981	(frvbf_h_ccr_set_handler): New function.
2982	* cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2983
2984Tue May 11 16:13:15 1999  Dave Brolley  <brolley@cygnus.com>
2985
2986	* frv-sim.h (frvbf_h_spr_get_handler,frvbf_h_spr_set_handler,
2987 	frvbf_h_isr_get_handler, frvbf_h_isr_set_handler): New functions.
2988	* frv.c: Likewise.
2989	* cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
2990
29911999-05-10  Dave Brolley  <brolley@cygnus.com>
2992
2993	* cpu.h,cpu.c,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
2994
2995Thu May  6 16:48:21 1999  Dave Brolley  <brolley@cygnus.com>
2996
2997	* cpu.h,decode.c,sem.c,sem-switch.c: Regenerate.
2998	* frv-sim.h (TRAP_SYSCALL): Define as 0x80.
2999
3000Wed May  5 11:52:24 1999  Dave Brolley  <brolley@cygnus.com>
3001
3002	* traps.c (frv_software_interrupt): New function.
3003	(frv_itrap): New function.
3004	* frv-sim.h (TRAP_SYSCALL): define as 0.
3005	* cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3006
3007Mon May  3 13:49:21 1999  Dave Brolley  <brolley@cygnus.com>
3008
3009	* cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3010
3011Thu Apr 29 17:37:06 1999  Dave Brolley  <brolley@cygnus.com>
3012
3013	* Directory created.
3014