12021-06-30  Mike Frysinger  <vapier@gentoo.org>
2
3          * configure.ac: Removed.
4          * aclocal.m4: Removed.
5          * configure: Removed.
6          * acinclude.m4: New file.
7
82021-06-30  Mike Frysinger  <vapier@gentoo.org>
9
10          * configure.ac: Delete SIM_AC_OPTION_SCACHE call.
11          * aclocal.m4: Regenerate.
12          * configure: Regenerate.
13
142021-06-30  Mike Frysinger  <vapier@gentoo.org>
15
16          * Makefile.in (SIM_EXTRA_CFLAGS): Change to SIM_FRV_TRAPDUMP_FLAGS.
17          * configure.ac: Change sim-trapdump to sim-frv-trapdump.
18          * configure: Regenerate.
19
202021-06-30  Mike Frysinger  <vapier@gentoo.org>
21
22          * configure.ac: Delete SIM_AC_OPTION_DEFAULT_MODEL call.
23          * sim-if.c (sim_open): Set STATE_MODEL_NAME.
24          * aclocal.m4: Regenerate.
25          * configure: Regenerate.
26
272021-06-30  Mike Frysinger  <vapier@gentoo.org>
28
29          * arch.c (sim_machs): Rename to ...
30          (frv_sim_machs): ... this.
31          * sim-if.c (frv_sim_machs): New decl.
32          (sim_open): Set STATE_MACH.
33
342021-06-29  Mike Frysinger  <vapier@gentoo.org>
35
36          * arch.c (sim_machs): Mark const.
37
382021-06-28  Mike Frysinger  <vapier@gentoo.org>
39
40          * cpu.c (frvbf_record_trace_results): Delete function.
41
422021-06-27  Mike Frysinger  <vapier@gentoo.org>
43
44          * sim-if.c (sim_open): Mark backend_data const.
45
462021-06-27  Mike Frysinger  <vapier@gentoo.org>
47
48          * sim-main.h (SIM_ENGINE_RESTART_HOOK): Delete 0.
49
502021-06-27  Mike Frysinger  <vapier@gentoo.org>
51
52          * interrupts.c: Include cgen-mem.h.
53          * profile-fr400.c (acc_use_is_media_p4): Disable function.
54          * reset.c: Include cgen-mem.h.
55          * sim-if.c (print_frv_misc_cpu): Delete.
56          * sim-main.h (FRV_SIM_MAIN_H): Add ifdef guard.
57          (frvbf_model_branch): New prototype.
58          (frvbf_perform_writeback): Likewise.
59
602021-06-27  Mike Frysinger  <vapier@gentoo.org>
61
62          * profile.c (wait_for_flush): Change %p to %x.
63          * sim-if.c (sim_open): Change %lx to %x.
64
652021-06-27  Mike Frysinger  <vapier@gentoo.org>
66
67          * traps.c (frv_break): Delete pc and pass down NULL_CIA.
68
692021-06-27  Mike Frysinger  <vapier@gentoo.org>
70
71          * profile.c (frvbf_model_insn_after): Change return to void.
72          (enforce_full_fr_latency, post_wait_for_FR, post_wait_for_FRdouble,
73          post_wait_for_ACC, post_wait_for_CCR, post_wait_for_SPR,
74          post_wait_for_fdiv, post_wait_for_fsqrt,
75          post_wait_for_float): Likewise.
76          * profile.h (post_wait_for_FR, post_wait_for_FRdouble,
77          post_wait_for_ACC, post_wait_for_CCR, post_wait_for_SPR,
78          post_wait_for_fdiv, post_wait_for_fsqrt, post_wait_for_float,
79          post_wait_for_media): Likewise.
80
812021-06-27  Mike Frysinger  <vapier@gentoo.org>
82
83          * frv.c (frvbf_shift_left_arith_saturate): Add braces to if statement.
84          * profile-fr500.c (adjust_float_register_busy): Likewise.
85          * profile-fr550.c (adjust_float_register_busy): Likewise.
86
872021-06-22  Mike Frysinger  <vapier@gentoo.org>
88
89          * configure: Regenerate.
90
912021-06-21  Mike Frysinger  <vapier@gentoo.org>
92
93          * aclocal.m4: Regenerate.
94          * configure: Regenerate.
95
962021-06-21  Mike Frysinger  <vapier@gentoo.org>
97
98          * configure: Regenerate.
99
1002021-06-20  Mike Frysinger  <vapier@gentoo.org>
101
102          * configure.ac (SIM_AC_COMMON): Delete.
103          * aclocal.m4, configure: Regenerate.
104
1052021-06-20  Mike Frysinger  <vapier@gentoo.org>
106
107          * aclocal.m4: Regenerate.
108          * configure: Regenerate.
109
1102021-06-20  Mike Frysinger  <vapier@gentoo.org>
111
112          * Makefile.in (CGEN_MAINT): Delete.
113          * configure.ac: Delete SIM_AC_OPTION_CGEN_MAINT call.
114          * aclocal.m4, configure: Regenerate.
115
1162021-06-20  Mike Frysinger  <vapier@gentoo.org>
117
118          * aclocal.m4: Regenerate.
119          * configure: Regenerate.
120
1212021-06-19  Mike Frysinger  <vapier@gentoo.org>
122
123          * aclocal.m4: Regenerate.
124          * configure: Regenerate.
125
1262021-06-19  Mike Frysinger  <vapier@gentoo.org>
127
128          * configure: Regenerate.
129
1302021-06-18  Mike Frysinger  <vapier@gentoo.org>
131
132          * aclocal.m4, configure: Regenerate.
133
1342021-06-18  Mike Frysinger  <vapier@gentoo.org>
135
136          * Makefile.in (SIM_WERROR_CFLAGS): New variable.
137          * configure.ac: Delete call to SIM_AC_OPTION_WARNINGS.
138          * configure: Regenerate.
139
1402021-06-18  Mike Frysinger  <vapier@gentoo.org>
141
142          * interrupts.c: Include sim-signal.h.
143          * traps.c: Likewise.
144
1452021-06-17  Mike Frysinger  <vapier@gentoo.org>
146
147          * configure.ac: Delete SIM_AC_OPTION_ENDIAN call.
148          * sim-if.c (sim_open): Set current_target_byte_order.
149          * aclocal.m4, configure: Regenerate.
150
1512021-06-17  Mike Frysinger  <vapier@gentoo.org>
152
153          * traps.c: Include sim/callback.h.
154
1552021-06-16  Mike Frysinger  <vapier@gentoo.org>
156
157          * configure: Regenerate.
158
1592021-06-16  Mike Frysinger  <vapier@gentoo.org>
160
161          * configure: Regenerate.
162          * config.in: Removed.
163
1642021-06-15  Mike Frysinger  <vapier@gentoo.org>
165
166          * config.in, configure: Regenerate.
167
1682021-06-12  Mike Frysinger  <vapier@gentoo.org>
169
170          * configure.ac: Delete call to SIM_AC_OPTION_ALIGNMENT.
171          * sim-if.c (sim_open): Set current_alignment.
172
1732021-06-12  Mike Frysinger  <vapier@gentoo.org>
174
175          * aclocal.m4, config.in, configure: Regenerate.
176
1772021-06-12  Mike Frysinger  <vapier@gentoo.org>
178
179          * config.in, configure: Regenerate.
180
1812021-06-09  Mike Frysinger  <vapier@gentoo.org>
182
183          * sim-if.c (sim_open): Delete cgen_init call.
184
1852021-05-29  Mike Frysinger  <vapier@gentoo.org>
186
187          * cache.h (frv_cache_unlock): New prototype.
188          * frv-sim.h (frvbf_media_average): Likewise.
189          (frv_queue_data_access_exception_interrupt): Likewise.
190          (frv_queue_division_exception_interrupt): Likewise.
191          (frvbf_check_acc_range): Likewise.
192          (frvbf_check_swap_address): Likewise.
193          (frvbf_*_multiple_*): Rename prototypes to ...
194          (frvbf_*_quad_*): ... these.
195          * profile-fr500.c (use_is_cc_complex): Put #if 0 around.
196          * profile-fr550.c (use_is_ccr_complex): Likewise.
197          * profile.h (frv_ref_SI): New prototype.
198          * registers.h (frv_check_spr_read_access): Likewise.
199          (frv_check_spr_write_access): Likewise.
200
2012021-05-29  Mike Frysinger  <vapier@gentoo.org>
202
203          * cache.c (non_cache_access): Add parentheses.
204          * memory.c (fr500_check_data_read_address): Likewise.
205          (fr550_check_data_read_address): Likewise.
206          (fr500_check_readwrite_address): Likewise.
207          (fr550_check_readwrite_address): Likewise.
208          (fr500_check_insn_read_address): Likewise.
209          (fr500_check_write_address): Likewise.
210          (fr550_check_write_address): Likewise.
211          * traps.c (frv_mtrap): Likewise.
212          (frvbf_commit): Likewise.
213
2142021-05-17  Mike Frysinger  <vapier@gentoo.org>
215
216          * sim-main.h (struct sim_state): Delete.
217
2182021-05-16  Mike Frysinger  <vapier@gentoo.org>
219
220          * cache.c, frv.c, interrupts.c, memory.c, options.c, pipeline.c,
221          profile-fr400.c, profile-fr450.c, profile-fr500.c, profile-fr550.c,
222          profile.c, registers.c, reset.c, sim-if.c, traps.c: Include defs.h.
223          * sim-main.h: Delete config.h include.
224
2252021-05-16  Mike Frysinger  <vapier@gentoo.org>
226
227          * config.in, configure: Regenerate.
228
2292021-05-04  Mike Frysinger  <vapier@gentoo.org>
230
231          * configure: Regenerate.
232
2332021-05-01  Mike Frysinger  <vapier@gentoo.org>
234
235          * config.in, configure: Regenerate.
236
2372021-04-26  Mike Frysinger  <vapier@gentoo.org>
238
239          * Makefile.in (NL_TARGET): Delete.
240
2412021-04-26  Mike Frysinger  <vapier@gentoo.org>
242
243          * configure.ac (SIM_AC_OPTION_HARDWARE): Delete call.
244          * configure: Regenerate.
245
2462021-04-23  Mike Frysinger  <vapier@gentoo.org>
247
248          * configure.ac (SIM_AC_OPTION_HARDWARE): Delete arguments.
249          * configure: Regenerate.
250
2512021-04-22  Tom Tromey  <tom@tromey.com>
252
253          * configure, config.in: Rebuild.
254
2552021-04-22  Tom Tromey  <tom@tromey.com>
256
257          * Makefile.in (arch.o, devices.o, frv.o, traps.o, pipeline.o)
258          (interrupts.o, memory.o, cache.o, options.o, reset.o)
259          (registers.o, profile.o, profile-fr400.o, profile-fr450.o)
260          (profile-fr500.o, profile-fr550.o, sim-if.o, mloop.o, cpu.o)
261          (decode.o, sem.o, model.o): Remove.
262          (SIM_EXTRA_DEPS): Add eng.h.
263
2642021-04-22  Tom Tromey  <tom@tromey.com>
265
266          * configure: Rebuild.
267
2682021-04-21  Mike Frysinger  <vapier@gentoo.org>
269
270          * aclocal.m4: Regenerate.
271
2722021-04-21  Simon Marchi  <simon.marchi@polymtl.ca>
273
274          * configure: Regenerate.
275
2762021-04-18  Mike Frysinger  <vapier@gentoo.org>
277
278          * configure: Regenerate.
279
2802021-04-15  John Baldwin  <jhb@FreeBSD.org>
281
282          * traps.c (frvbf_check_acc_range): Add missing return value.
283
2842021-04-12  Mike Frysinger  <vapier@gentoo.org>
285
286          * sim-if.c (sim_open): Delete 3rd arg to sim_cpu_alloc_all.
287
2882021-04-08  Tom Tromey  <tom@tromey.com>
289
290          * traps.c: Include stdlib.h.
291          * registers.c: Include stdlib.h.
292          * profile.c: Include stdlib.h.
293          * memory.c: Include stdlib.h.
294          * interrupts.c: Include stdlib.h.
295          * frv.c: Include stdlib.h.
296          * cache.c: Include stdlib.h.
297
2982021-04-08  Tom Tromey  <tom@tromey.com>
299
300          * sim-if.c (sim_open, frv_sim_close, sim_create_inferior): Use
301          new-style declaration.
302
3032021-04-02  Mike Frysinger  <vapier@gentoo.org>
304
305          * aclocal.m4, configure: Regenerate.
306
3072021-02-28  Mike Frysinger  <vapier@gentoo.org>
308
309          * configure: Regenerate.
310
3112021-02-21  Mike Frysinger  <vapier@gentoo.org>
312
313          * configure.ac (AC_CONFIG_MACRO_DIRS): Replace common with m4.
314          * aclocal.m4, configure: Regenerate.
315
3162021-02-13  Mike Frysinger  <vapier@gentoo.org>
317
318          * configure.ac: Replace sinclude with AC_CONFIG_MACRO_DIRS.
319          * aclocal.m4, configure: Regenerate.
320
3212021-02-06  Mike Frysinger  <vapier@gentoo.org>
322
323          * sim-if.c (sim_open): Delete call to STATE_WATCHPOINTS.
324
3252021-02-06  Mike Frysinger  <vapier@gentoo.org>
326
327          * configure: Regenerate.
328
3292021-01-30  Mike Frysinger  <vapier@gentoo.org>
330
331          * sim-if.c (sim_open): Delete STATE_WATCHPOINTS (sd)->sizeof_pc.
332
3332021-01-11  Mike Frysinger  <vapier@gentoo.org>
334
335          * configure.ac: Call SIM_AC_OPTION_WARNINGS.
336          * configure: Regenerate.
337
3382021-01-11  Mike Frysinger  <vapier@gentoo.org>
339
340          * config.in, configure: Regenerate.
341          * options.c, sim-if.c: Delete HAVE_STRING_H, HAVE_STRINGS_H,
342          HAVE_STDLIB_H, and strings.h include.
343
3442021-01-09  Mike Frysinger  <vapier@gentoo.org>
345
346          * configure: Regenerate.
347
3482021-01-08  Mike Frysinger  <vapier@gentoo.org>
349
350          * configure: Regenerate.
351
3522021-01-04  Mike Frysinger  <vapier@gentoo.org>
353
354          * configure: Regenerate.
355
3562017-09-06  John Baldwin  <jhb@FreeBSD.org>
357
358          * configure: Regenerate.
359
3602017-02-13  Mike Frysinger  <vapier@gentoo.org>
361
362          * decode.c (frvbf_init_idesc_table): Use ARRAY_SIZE.
363
3642016-01-10  Mike Frysinger  <vapier@gentoo.org>
365
366          * config.in, configure: Regenerate.
367
3682016-01-10  Mike Frysinger  <vapier@gentoo.org>
369
370          * configure: Regenerate.
371
3722016-01-10  Mike Frysinger  <vapier@gentoo.org>
373
374          * configure.ac (SIM_AC_OPTION_ENVIRONMENT): Delete call.
375          * configure: Regenerate.
376
3772016-01-10  Mike Frysinger  <vapier@gentoo.org>
378
379          * configure: Regenerate.
380
3812016-01-10  Mike Frysinger  <vapier@gentoo.org>
382
383          * configure: Regenerate.
384
3852016-01-10  Mike Frysinger  <vapier@gentoo.org>
386
387          * configure: Regenerate.
388
3892016-01-10  Mike Frysinger  <vapier@gentoo.org>
390
391          * configure: Regenerate.
392
3932016-01-10  Mike Frysinger  <vapier@gentoo.org>
394
395          * configure: Regenerate.
396
3972016-01-09  Mike Frysinger  <vapier@gentoo.org>
398
399          * config.in, configure: Regenerate.
400
4012016-01-06  Mike Frysinger  <vapier@gentoo.org>
402
403          * sim-if.c (sim_open): Mark argv const.
404          (sim_create_inferior): Mark argv and env const.
405
4062016-01-04  Mike Frysinger  <vapier@gentoo.org>
407
408          * configure: Regenerate.
409
4102016-01-03  Mike Frysinger  <vapier@gentoo.org>
411
412          * sim-if.c (sim_open): Update sim_parse_args comment.
413
4142016-01-03  Mike Frysinger  <vapier@gentoo.org>
415
416          * TODO: Delete file.
417
4182016-01-03  Mike Frysinger  <vapier@gentoo.org>
419
420          * configure.ac (SIM_AC_OPTION_HOSTENDIAN): Delete.
421          * configure: Regenerate.
422          * frv.c (frvbf_h_fr_double_get_handler): Change
423          CURRENT_HOST_BYTE_ORDER to HOST_BYTE_ORDER.
424          (frvbf_h_fr_double_set_handler): Likewise.
425
4262016-01-02  Mike Frysinger  <vapier@gentoo.org>
427
428          * arch.h (TARGET_BIG_ENDIAN): Delete.
429          * configure.ac (SIM_AC_OPTION_ENDIAN): Change BIG_ENDIAN to BIG.
430          * configure: Regenerate.
431          * frv.c (frvbf_h_fr_double_get_handler): Change LITTLE_ENDIAN to
432          BFD_ENDIAN_LITTLE.
433          (frvbf_h_fr_double_set_handler): Likewise.
434
4352016-01-02  Mike Frysinger  <vapier@gentoo.org>
436
437          * reset.c (frv_term): Change current_state to sd.
438          * sim-if.c (current_state): Delete.
439          (sim_open): Delete current_state assignment.
440
4412015-12-27  Mike Frysinger  <vapier@gentoo.org>
442
443          * Makefile.in (SIM_OBJS): Delete sim-hload.o.
444
4452015-12-26  Mike Frysinger  <vapier@gentoo.org>
446
447          * config.in, configure: Regenerate.
448
4492015-12-26  Mike Frysinger  <vapier@gentoo.org>
450
451          * sim-if.c (sim_create_inferior): Replace old #if 0 code with dupargv.
452
4532015-12-25  Mike Frysinger  <vapier@gentoo.org>
454
455          * devices.c: Delete file.
456          * frv-sim.h (MCCR_ADDR, MCCR_CP, MCCR_CM0, MCCR_CM1, frv_devices,
457          struct _device): Delete.
458          * Makefile.in (SIM_OBJS): Delete devices.o.
459          * sim-if.c (sim_open): Delete #if 0 code.
460          * tconfig.h: Delete file.
461
4622015-12-25  Mike Frysinger  <vapier@gentoo.org>
463
464          * Makefile.in (SIM_OBJS): Delete sim-model.o.
465          * tconfig.h (SIM_HAVE_MODEL): Delete.
466
4672015-12-25  Mike Frysinger  <vapier@gentoo.org>
468
469          * arch.c: Rename MACH to SIM_MACH.
470          * cpuall.h: Likewise.
471          * model.c: Rename MACH to SIM_MACH, MACH_IMP_PROPERTIES to
472          SIM_MACH_IMP_PROPERTIES, and MODEL to SIM_MODEL.
473
4742015-12-25  Mike Frysinger  <vapier@gentoo.org>
475
476          * sim-main.h (WITH_SCACHE_PBB): Move from ...
477          * tconfig.h (WITH_SCACHE_PBB): ... here.
478
4792015-12-25  Mike Frysinger  <vapier@gentoo.org>
480
481          * devices.c (device_error): Delete.
482
4832015-12-24  Mike Frysinger  <vapier@gentoo.org>
484
485          * tconfig.h (SIM_HANDLES_LMA): Delete.
486
4872015-12-24  Mike Frysinger  <vapier@gentoo.org>
488
489          * tconfig.h (SIM_HAVE_BREAKPOINTS, SIM_BREAKPOINT,
490          SIM_BREAKPOINT_SIZE): Delete.
491          * traps.c [SIM_HAVE_BREAKPOINTS] (frv_itrap): Delete sim breakpoint
492          code.
493          [SIM_HAVE_BREAKPOINTS] (frv_break): Likewise.
494
4952015-12-24  Mike Frysinger  <vapier@gentoo.org>
496
497          * tconfig.h (WITH_WATCHPOINTS): Delete.
498
4992015-12-24  Mike Frysinger  <vapier@gentoo.org>
500
501          * tconfig.h (SIM_HAVE_MEM_SIZE): Delete.
502
5032015-11-15  Mike Frysinger  <vapier@gentoo.org>
504
505          * Makefile.in (SIM_OBJS): Delete sim-reason.o, sim-reg.o, and
506          sim-stop.o.
507
5082015-11-14  Mike Frysinger  <vapier@gentoo.org>
509
510          * interp.c (sim_close): Rename to ...
511          (frv_sim_close): ... this.  Delete calls to frv_cgen_cpu_close and
512          sim_module_uninstall.
513          * sim-main.h (frv_sim_close): Declare.
514          (SIM_CLOSE_HOOK): Define.
515
5162015-06-23  Mike Frysinger  <vapier@gentoo.org>
517
518          * configure.ac (AC_ARG_ENABLE(sim-trapdump)): Call AS_HELP_STRING.
519          * configure: Regenerate.
520
5212015-06-12  Mike Frysinger  <vapier@gentoo.org>
522
523          * configure: Regenerate.
524
5252015-06-12  Mike Frysinger  <vapier@gentoo.org>
526
527          * configure: Regenerate.
528
5292015-06-12  Mike Frysinger  <vapier@gentoo.org>
530
531          * decode.c (frvbf_decode): Change TRACE_EXTRACT to CGEN_TRACE_EXTRACT.
532          * mloop.in (execute): Change TRACE_INSN_INIT to CGEN_TRACE_INSN_INIT,
533          TRACE_INSN to CGEN_TRACE_INSN, and TRACE_INSN_FINI to CGEN_TRACE_INSN_FINI.
534          * sem.c: Rename TRACE_RESULT to CGEN_TRACE_RESULT.
535
5362015-06-11  Mike Frysinger  <vapier@gentoo.org>
537
538          * sim-main.h (WITH_TRACE): Delete.
539
5402015-04-18  Mike Frysinger  <vapier@gentoo.org>
541
542          * sim-main.h (USING_SIM_BASE_H): Delete.
543
5442015-04-18  Mike Frysinger  <vapier@gentoo.org>
545
546          * sim-main.h (_sim_cpu, SIM_CPU): Delete.
547
5482015-04-18  Mike Frysinger  <vapier@gentoo.org>
549
550          * sim-main.h (sim_cia): Delete.
551          (frv_sim_engine_halt_hook): Move below includes.
552
5532015-04-17  Mike Frysinger  <vapier@gentoo.org>
554
555          * sim-main.h (CIA_GET, CIA_SET): Delete.
556          * traps.c (frv_sim_engine_halt_hook): Change CIA_SET to CPU_PC_SET.
557
5582015-04-15  Mike Frysinger  <vapier@gentoo.org>
559
560          * Makefile.in (SIM_OBJS): Delete sim-cpu.o.
561          * sim-main.h (STATE_CPU): Delete.
562
5632015-04-15  Mike Frysinger  <vapier@gentoo.org>
564
565          * sim-main.h (struct sim_state): Change cpu to an array of pointers.
566          (STATE_CPU): Handle WITH_SMP.
567
5682015-04-13  Mike Frysinger  <vapier@gentoo.org>
569
570          * configure: Regenerate.
571
5722015-04-06  Mike Frysinger  <vapier@gentoo.org>
573
574          * Makefile.in (SIM_OBJS): Delete sim-engine.o and sim-hrw.o.
575
5762015-03-31  Mike Frysinger  <vapier@gentoo.org>
577
578          * config.in, configure: Regenerate.
579
5802015-03-24  Mike Frysinger  <vapier@gentoo.org>
581
582          * configure: Regenerate.
583
5842015-03-24  Mike Frysinger  <vapier@gentoo.org>
585
586          * configure: Regenerate.
587
5882015-03-23  Mike Frysinger  <vapier@gentoo.org>
589
590          * configure: Regenerate.
591
5922015-03-23  Mike Frysinger  <vapier@gentoo.org>
593
594          * devices.c: Delete dv-sockser.h include.
595          (device_io_read_buffer): Delete uart code.
596          (device_io_write_buffer): Likewise.
597
5982015-03-23  Mike Frysinger  <vapier@gentoo.org>
599
600          * configure: Regenerate.
601
6022015-03-16  Mike Frysinger  <vapier@gentoo.org>
603
604          * aclocal.m4, config.in, configure: Regenerate.
605          * tconfig.in: Rename file ...
606          * tconfig.h: ... here.
607
6082015-03-15  Mike Frysinger  <vapier@gentoo.org>
609
610          * tconfig.in [HAVE_DV_SOCKSER]: Delete.
611
6122015-03-14  Mike Frysinger  <vapier@gentoo.org>
613
614          * Makefile.in (SIM_RUN_OBJS): Delete.
615
6162014-08-23  Hans-Peter Nilsson  <hp@axis.com>
617
618          * configure.ac: Default simulator hardware to off again.  Remove
619          dead frv_extra_objs substitution.
620          * configure: Regenerate.
621          * Makefile.in: Remove unused frv_extra_objs.
622
6232014-08-19  Alan Modra  <amodra@gmail.com>
624
625          * configure: Regenerate.
626
6272014-08-15  Roland McGrath  <mcgrathr@google.com>
628
629          * configure: Regenerate.
630          * config.in: Regenerate.
631
6322013-09-23  Alan Modra  <amodra@gmail.com>
633
634          * configure: Regenerate.
635
6362013-06-03  Mike Frysinger  <vapier@gentoo.org>
637
638          * aclocal.m4, configure: Regenerate.
639
6402013-03-30  Joel Sherrill  <joel.sherrill@oarcorp.com>
641              Mike Frysinger  <vapier@gentoo.org>
642
643          * configure.ac: Add frv_extra_objs. Change simulator hardware
644          from always on to defaulting to yes it is enabled.
645          * Makefile.in: Conditionalize reference to dv-sockser.o.
646          * configure: Regenerated.
647
6482013-03-26  Mike Frysinger  <vapier@gentoo.org>
649
650          * configure: Regenerate.
651
6522013-03-23  Joel Sherrill  <joel.sherrill@oarcorp.com>
653
654          * configure.ac: Fail if dv-sockser.o not available.
655          Error when --disable-sim-hardware is specified.
656          * configure: Regenerated.
657
6582012-06-15  Joel Brobecker  <brobecker@adacore.com>
659
660          * config.in, configure: Regenerate.
661
6622012-03-24  Mike Frysinger  <vapier@gentoo.org>
663
664          * aclocal.m4, config.in, configure: Regenerate.
665
6662011-12-03  Mike Frysinger  <vapier@gentoo.org>
667
668          * aclocal.m4: New file.
669          * configure: Regenerate.
670
6712011-10-17  Mike Frysinger  <vapier@gentoo.org>
672
673          * configure.ac: Change include to common/acinclude.m4.
674
6752011-10-17  Mike Frysinger  <vapier@gentoo.org>
676
677          * configure.ac: Change AC_PREREQ to 2.64.  Delete AC_CONFIG_HEADER
678          call.  Replace common.m4 include with SIM_AC_COMMON.
679          * configure: Regenerate.
680
6812011-07-05  Mike Frysinger  <vapier@gentoo.org>
682
683          * sim-if.c (sim_do_command): Delete.
684
6852010-04-21  Mike Frysinger  <vapier@gentoo.org>
686
687          * profile.c (sim_profile_print_bar): Add cpu argument.
688
6892010-03-30  Mike Frysinger  <vapier@gentoo.org>
690
691          * devices.c (device_error): Add const to message.
692
6932010-02-12  Doug Evans  <dje@sebabeach.org>
694
695          * decode.c, * decode.h: Regenerate.
696
6972010-02-11  Doug Evans  <dje@sebabeach.org>
698
699          * cpu.h, * decode.c, * model.c, * sem.c: Regenerate.
700
7012010-01-24  Doug Evans  <dje@sebabeach.org>
702
703          * sem.c: Regenerate.
704
7052010-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
706
707          * configure: Regenerate.
708
7092010-01-02  Doug Evans  <dje@sebabeach.org>
710
711          * arch.c, * arch.h, * cpu.c, * cpu.h, * cpuall.h, * decode.c,
712          * decode.h, * model.c, * sem.c: Regenerate, update copyright year.
713
7142009-11-22  Doug Evans  <dje@sebabeach.org>
715
716          * cpu.h: Regenerate.
717          * cpuall.h: Regenerate.
718          * decode.c: Regenerate.
719          * decode.h: Regenerate.
720
7212009-11-03  Doug Evans  <dje@sebabeach.org>
722
723          * arch.c: Regenerate.
724          * arch.h: Regenerate.
725          * cpu.c: Regenerate.
726          * cpu.h: Regenerate.
727          * cpuall.h: Regenerate.
728          * decode.c: Regenerate.
729          * decode.h: Regenerate.
730          * model.c: Regenerate.
731          * sem.c: Regenerate.
732
7332009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
734
735          * config.in: Regenerate.
736          * configure: Likewise.
737
738          * configure: Regenerate.
739
7402009-01-07  Hans-Peter Nilsson  <hp@axis.com>
741
742          * sem.c: Regenerate.
743
7442008-12-23  Hans-Peter Nilsson  <hp@axis.com>
745
746          * arch.c, arch.h, cpu.c, cpu.h, cpuall.h, decode.c, decode.h,
747          model.c, sem.c: Regenerate.
748
7492008-07-11  Hans-Peter Nilsson  <hp@axis.com>
750
751          * configure: Regenerate to track ../common/common.m4 changes.
752          * config.in: Ditto.
753
7542008-06-06  Vladimir Prus  <vladimir@codesourcery.com>
755              Daniel Jacobowitz  <dan@codesourcery.com>
756              Joseph Myers  <joseph@codesourcery.com>
757
758          * configure: Regenerate.
759
7602006-12-21  Hans-Peter Nilsson  <hp@axis.com>
761
762          * config.in: Regenerate.
763
7642006-06-13  Richard Earnshaw  <rearnsha@arm.com>
765
766          * configure: Regenerated.
767
7682006-06-05  Daniel Jacobowitz  <dan@codesourcery.com>
769
770          * configure: Regenerated.
771
7722006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
773
774          * configure: Regenerated.
775
7762005-10-28  Dave Brolley  <brolley@redhat.com>
777
778          * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
779
780          Contribute the following changes:
781          2003-09-29  Dave Brolley  <brolley@redhat.com>
782
783          * frv-sim.h: Use CGEN_ATTR_VALUE_ENUM_TYPE in place of
784          CGEN_ATTR_VALUE_TYPE.
785          * mloop.in: Ditto.
786          * pipeline.c: Ditto.
787          * traps.c: Ditto.
788
7892005-03-23  Mark Kettenis  <kettenis@gnu.org>
790
791          * configure: Regenerate.
792
7932005-01-14  Andrew Cagney  <cagney@gnu.org>
794
795          * configure.ac: Sinclude aclocal.m4 before common.m4.  Add
796          explicit call to AC_CONFIG_HEADER.
797          * configure: Regenerate.
798
7992005-01-12  Andrew Cagney  <cagney@gnu.org>
800
801          * configure.ac: Update to use ../common/common.m4.
802          * configure: Re-generate.
803
8042005-01-11  Andrew Cagney  <cagney@localhost.localdomain>
805
806          * configure: Regenerated to track ../common/aclocal.m4 changes.
807
8082005-01-07  Andrew Cagney  <cagney@gnu.org>
809
810          * configure.ac: Rename configure.in, require autoconf 2.59.
811          * configure: Re-generate.
812
8132004-12-08  Hans-Peter Nilsson  <hp@axis.com>
814
815          * configure: Regenerate for ../common/aclocal.m4 update.
816
8172004-08-27  Richard Sandiford  <rsandifo@redhat.com>
818
819          * cpu.[ch], arch.[ch], decode.[ch]: Regenerated.
820          * cpuall.h, model.c, sem.c: Regenerated.
821
8222004-03-01  Richard Sandiford  <rsandifo@redhat.com>
823
824          * Makefile.in (SIM_OBJS): Add profile-fr450.o.
825          (profile-fr450.o): New dependency.
826          (stamp-cpu): Add fr450 to the list of machs.
827          * sim-frv.h (SPR_IS_ACC): New macro.
828          (H_SPR_ACC4, H_SPR_ACC63, H_SPR_ACCG4, H_SPR_ACCG63): Delete.
829          * cache.c (frv_cache_init, non_cache_access): Handle bfd_mach_fr450.
830          * frv.c (check_register_alignment, check_fr_register_alignment)
831          (check_memory_alignment, do_media_average): Likewise.
832          (frvbf_clear_accumulators): Likewise.  Use a mask of valid registers
833          rather than a consecutive range.
834          * interrupts.c (frv_queue_illegal_instruction_interrupt)
835          (frv_queue_non_implemented_instruction_interrupt): Handle
836          bfd_mach_fr450.
837          * memory.c (check_data_read_address, check_readwrite_address)
838          (check_insn_read_address, check_write_address): Likewise.
839          * mloop.in (@cpu@_simulate_insn_prefetch): Likewise.
840          * profile.c (reset_gr_flags, reset_fr_flags, reset_acc_flags)
841          (frvbf_model_insn_before, frvbf_model_insn_after): Likewise.
842          * profile-fr450.c: New file.
843          * registers.c (fr450_spr): New array.
844          (frv_register_control_init): Check its size.  Use it for fr450.
845          (frv_check_register_access): Handle bfd_mach_fr450.
846          (frv_check_spr_read_access): Likewise. Generalize accumulator check.
847          * traps.c (frv_core_signal, frvbf_media_cr_not_aligned): Likewise.
848          (frvbf_media_acc_not_aligned): Likewise.
849          (frvbf_media_register_not_aligned): Likewise.
850          * arch.c: Regenerate.
851          * arch.h: Regenerate.
852          * cpu.h: Regenerate.
853          * cpuall.h: Regenerate.
854          * decode.h: Regenerate.
855          * model.c: Regenerate.
856
8572004-03-01  Richard Sandiford  <rsandifo@redhat.com>
858
859          * cache.c (frv_cache_init): Change fr400 cache statistics to match
860          the fr405.
861          (non_cache_access): Add missing breaks.
862          * interrupts.c (set_exception_status_registers): Always set EAR15
863          for data_access_errors.
864          * memory.c (fr400_check_write_address): Remove redundant alignment
865          check.
866          * model.c: Regenerate.
867
8682004-03-01  Richard Sandiford  <rsandifo@redhat.com>
869
870          * frv.c (frvbf_iacc_cut): Rework, taking rounding into account.
871
8722004-03-01  Richard Sandiford  <rsandifo@redhat.com>
873
874          * decode.c, decode.h, model.c, sem.c: Regenerate.
875
8762003-11-24  Kevin Buettner  <kevinb@redhat.com>
877
878          * frv-sim.h (GR_REGNUM_MAX, FR_REGNUM_MAX, PC_REGNUM, SPR_REGNUM_MIN)
879          (SPR_REGNUM_MAX): Delete.
880          * frv.c (gdb/sim-frv.h): Include.
881          (frvbf_fetch_register, frvbf_store_register): Use register number
882          constants from gdb/sim-frv.h.  Check availability of general
883          purpose and float registers.
884
8852003-11-03  Dave Brolley  <brolley@redhat.com>
886
887          * cache.c (address_interference): Check for higher priority requests
888          in the same pipeline.
889
8902003-10-31  Dave Brolley  <brolley@redhat.com>
891
892          * frv-sim.h (LR_REGNUM): Removed.
893          (SPR_REGNUM_MIN,SPR_REGNUM_MAX): New macros.
894          * frv.c (frvbf_fetch_register): Fetch SPR registers based on
895          SPR_REGNUM_MIN and SPR_REGNUM_MAX. Check whether SPRs are implemented.
896          Return 0 for an unimplemented register. Return the length of the data
897          for an implemented register.
898          (frvbf_store_register): Ditto.
899
9002003-10-30  Andrew Cagney  <cagney@redhat.com>
901
902          * traps.c: Replace "struct symbol_cache_entry" with "struct
903          bfd_symbol".
904
9052003-10-10  Dave Brolley  <brolley@redhat.com>
906
907          * cpu.h, sem.c: Regenerate.
908
9092003-10-06  Dave Brolley  <brolley@redhat.com>
910
911          * profile-fr550.[ch]: New files.
912          * configure.in: Move frv handling to alphabetically correct placement.
913          * Makefile.in: Add fr550 support.
914          * frv-sim.h,frv.c,interrups.c,memory.c,mloop.in,pipeline.c,
915          profile.[ch],registers.c,traps.c: Add fr550 support.
916          * arch.c,arch.h,cpu.c,cpu.h,cpuall.h,model.h,decode.c,decode.h,sem.c:
917          Regenerate.
918
9192003-09-25  Dave Brolley  <brolley@redhat.com>
920
921          * reset.c (frv_initialize): Call frv_register_control_init first.
922
9232003-09-24  Dave Brolley  <brolley@redhat.com>
924
925          * profile.h (update_FR_ptime): New prototype.
926          (update_FRdouble_ptime): Ditto.
927          (update_SPR_ptime): Ditto.
928          (increase_ACC_busy): Ditto.
929          (enforce_full_acc_latency): Ditto.
930          (post_wait_for_SPR): Ditto.
931          * profile.c (update_FR_ptime): Moved here from profile-fr500.c.
932          (update_FRdouble_ptime): Ditto.
933          (update_SPR_ptime): New function.
934          (increase_ACC_busy): Ditto.
935          (enforce_full_acc_latency): Ditto.
936          (vliw_wait_for_fdiv_resource): Correct resource name.
937          (vliw_wait_for_fsqrt_resource): Ditto.
938          (post_wait_for_SPR): New function.
939          * profile-fr500.c (frvbf_model_fr500_u_commit): New function.
940          (frvbf_model_fr500_u_gr2fr): Pass out_FRk as output register to
941          adjust_float_register_busy.
942          (frvbf_model_fr500_u_gr_load): Record latency of SPR registers.
943          (frvbf_model_fr500_u_fr_load): Wait for and record latency of SPR
944          registers.
945          (frvbf_model_fr500_u_float_arith): Ditto.
946          (frvbf_model_fr500_u_float_dual_arith): Ditto.
947          (frvbf_model_fr500_u_float_div): Ditto.
948          (frvbf_model_fr500_u_float_sqrt): Ditto.
949          (frvbf_model_fr500_u_float_convert): Ditto.
950          (update_FR_ptime): Moved to profile.c
951          (update_FRdouble_ptime): Moved to profile.c
952          * profile-fr400.c (update_FR_ptime): Removed. Identical to functions
953          for other machines.
954          (update_FRdouble_ptime): Ditto.
955          * arch.h,cpu.h,sem.c,decode.[ch],model.c,sem.c: Regenerated.
956
9572003-09-12  Dave Brolley  <brolley@redhat.com>
958
959          * registers.c (frv_check_spr_read_access): Check for access to
960          ACC4-ACC63 and ACCG4-ACCG63.
961          * profile.h (frv-desc.h): #include it.
962          (spr_busy): New member of FRV_PROFILE_STATE.
963          (spr_latency): Ditto.
964          (GNER_FOR_GR): New macro.
965          (FNER_FOR_FR): New maccro.
966          (update_SPR_latency): New function.
967          (vliw_wait_for_SPR): New function.
968          * profile.c (update_latencies): Update SPR latencies.
969          (update_target_latencies): Ditto.
970          (update_SPR_latency): New function.
971          (vliw_wait_for_SPR): New function.
972          * profile-fr500.c (frvbf_model_fr500_u_idiv): Record GNER latency.
973          (frvbf_model_fr500_u_trap): Removed unused variable, ps.
974          (frvbf_model_fr500_u_check): Ditto.
975          (frvbf_model_fr500_u_clrgr): New unit modeller for fr500.
976          (frvbf_model_fr500_u_clrfr): Ditto.
977          (frvbf_model_fr500_u_spr2gr): Wait for SPR.
978          (frvbf_model_fr500_u_gr2spr): Ditto.
979          * frv-sim.h (H_SPR_ACC4): New macro.
980          (H_SPR_ACCG4): New macro;
981          (H_SPR_ACC0): Removed.
982          (H_SPR_ACCG0): Removed.
983          * arch.h,model.c,sem[ch],decode.[ch]: Regenerated.
984
9852003-09-10  Dave Brolley  <brolley@redhat.com>
986
987          * profile.c (slot_names): FM1 was listed twice. Changed first
988          instance to FM0. Added IALL, FMALL and FMLOW.
989          (print_parallel): Don't examine slots with no insns.
990
9912003-09-09  Dave Brolley  <brolley@redhat.com>
992
993          * frv.c (do_media_average): Select machine using a switch.
994
9952003-09-08  Dave Brolley  <brolley@redhat.com>
996
997          On behalf of Doug Evans <dje@sebabeach.org>
998          * Makefile.in (stamp-arch,stamp-cpu): Pass archfile to cgen.
999          Remove copying of .cpu file to cgen/cpu, no longer needed.
1000
10012003-09-03  Dave Brolley  <brolley@redhat.com>
1002
1003          * cpu.h, model.c, sem.c, decode.h, decode.c: Regenerated.
1004
10052003-08-29  Dave Brolley  <brolley@redhat.com>
1006
1007          * Makefile.in (stamp-arch): Copy frv.cpu from $(srcdir)../../cpu
1008          temporarily when regenerating files.
1009          (stamp-cpu): Ditto.
1010
10112003-08-20  Micheal Snyder  <msnyder@redhat.com>
1012
1013          * All generated files: Regenerate.
1014
10152001-10-11  Dave Brolley  <brolley@redhat.com>
1016
1017          * cpu.h,decode.c,decode.h,sem.c: Regenerate.
1018
10192001-10-09  Dave Brolley  <brolley@redhat.com>
1020
1021          * traps.c (frv_rett): Halt if PSR.S and PSR.ET are both set or both
1022          not set.
1023          * reset.c (frv_hardware_reset): Invalidate both caches.
1024          * registers.c: Update init, reset and read-only masks for all registers
1025          on all machines.
1026          * profile.h (cur_gr_complex): New field of FRV_PROFILE_STATE
1027          (prev_gr_complex): New field of FRV_PROFILE_STATE
1028          (set_use_is_gr_complex): New function.
1029          (set_use_not_gr_complex): New function.
1030          (use_is_gr_complex): New function.
1031          (decrease_GR_busy): New function.
1032          * profile.c (reset_gr_flags): New function.
1033          (reset_cc_flags): New function.
1034          (set_use_is_gr_complex): New function.
1035          (set_use_not_gr_complex): New function.
1036          (use_is_gr_complex): New function.
1037          (update_latencies): Reset gr and cc flags when latency reaches 0.
1038          (decrease_GR_busy): New function.
1039          * profile-fr400.h (fr500_reset_acc_flags): Removed.
1040          (fr500_reset_cc_flags): New function.
1041          * profile-fr500.c (frvbf_model_fr400_u_*): Reflect latencies from fr500
1042          LSI version 1.41.
1043          * profile-fr400.h (fr400_reset_gr_flags): New function.
1044          (fr400_reset_fr_flags): New function.
1045          (fr400_reset_acc_flags): New function.
1046          * profile-fr400.c (set_use_not_media_p4): New function.
1047          (set_use_not_media_p6): New function.
1048          (set_acc_use_not_media_p2): New function.
1049          (set_acc_use_not_media_p4): New function.
1050          (fr400_reset_gr_flags): New function.
1051          (fr400_reset_fr_flags): New function.
1052          (fr400_reset_acc_flags): New function.
1053          (frvbf_model_fr400_u_*): Reflect latencies from fr400 LSI version 1.1.
1054          (frvbf_model_fr400_u_media_hilo): New function.
1055          * pipeline.c (frv_vliw_setup_insn): Don't clear MSR0.MTT.
1056          * memory.c (fr400_check_data_read_address): Check address range only
1057          for double word loads. Don't check alignment here.
1058          (fr400_check_readwrite_address): New function.
1059          (fr500_check_readwrite_address): New function.
1060          (check_readwrite_address): New function.
1061          (fr500_check_insn_read_address): Correct address ranges.
1062          (frvbf_read_mem_*): Check address range here.
1063          (frv_address_forbidden): Removed.
1064          (fr400_check_write_address): New function.
1065          (check_write_address): New function.
1066          (frvbf_write_mem_*): Don't check address range here.
1067          (frvbf_mem_set_*): Check address range here.
1068          * interrupts.c (frv_queue_data_access_error_interrupt): Now takes an
1069          address as second argument.
1070          (frv_queue_data_access_exception_interrupt): New function.
1071          (frv_queue_illegal_instruction_interrupt): Generate fp_exception for
1072          media insns on fr400.
1073          (frv_queue_non_implemented_instruction_interrupt): Generate mp_exception
1074          for media insns on fr400.
1075          (frv_detect_insn_access_interrupts): Don't check for illegal addresses
1076          of insns here.  Check for MTRAP insn if PSR.EM is not set.
1077          (frv_set_mp_exception_registers): Only set MSR0.MTT if it is not already
1078          set.
1079          (set_exception_status_registers): Do not always set EPCR. Set EAR for
1080          data_acess_error only if not fr400.
1081          * frv.c (do_media_average): New function.
1082          (frvbf_media_average): New function.
1083          (frvbf_insn_cache_invalidate): Check for illegal invocation.
1084          (frvbf_data_cache_invalidate): Ditto.
1085          (frvbf_data_cache_flush): Ditto.
1086          * frv-sim.h (GET_FSR_QNE): New macro.
1087          (frv_msr_mtt): Remove MTT_SEQUENCE_ERROR.
1088          (GET_MSR_SRDAV): New macro.
1089          (GET_MSR_RDAV): New macro.
1090          (GET_MSR_RD): New macro.
1091          (frv_queue_data_access_error_interrupt): Now takes an address as second
1092          argument.
1093          (frv_address_forbidden): Removed.
1094          * cache.c (non_cache_access): Correct address ranges. Now takes cache
1095          as first argument.
1096          * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1097
10982001-08-20  Dave Brolley  <brolley@redhat.com>
1099
1100          * sim-main.h (_sim_cpu): New field 'elf_flags'.
1101          * sim-if.c (sim_open): Extract the elf_flags from the input file and
1102          save them with each cpu.
1103          * mloop.in (main loop): Pass elf flags to frv_vliw_reset.  Set
1104          last_insn_p before executing the insn.
1105          * cache.c (frv_cache_invalidate): Flush scache if this is the cpu's
1106          insn cache.
1107          (frv_cache_invalidate_all): Ditto.
1108
11092001-08-20  Richard Sandiford  <rsandifo@redhat.com>
1110
1111          * traps.c (syscall_read_mem): Flush the data cache before reading.
1112          (syscall_write_mem): Flush the data cache before writing.
1113          Invalidate both caches.
1114
11152001-07-05  Ben Elliston  <bje@redhat.com>
1116
1117          * Makefile.in (stamp-arch): Use $(CGEN_CPU_DIR).
1118          (stamp-cpu): Likewise.
1119
11202001-05-23  Dave Brolley  <brolley@redhat.com>
1121
1122          * profile-fr400.c (acc_use_is_media_p2): New function.
1123          (frvbf_model_fr400_u_media_2): Account for latency of output
1124          accumulators.
1125          (frvbf_model_fr400_u_media_2_quad): Ditto.
1126          (frvbf_model_fr400_u_media_2_acc): New function.
1127          (frvbf_model_fr400_u_media_2_acc_dual): New function.
1128          (frvbf_model_fr400_u_media_2_add_sub): New function.
1129          (frvbf_model_fr400_u_media_2_add_sub_dual): New function.
1130          (frvbf_model_fr400_u_media_3_dual): New function.
1131          (frvbf_model_fr400_u_media_4_acc_dual): New function.
1132          * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1133
11342001-05-15  Dave Brolley  <brolley@redhat.com>
1135
1136          * registers.c (fr400_spr): Enable write access to HSR0.CBM.
1137          * profile.h (FRV_PROFILE_STATE): New field 'all_cache_entries'.
1138          * profile.c (CACHE_QUEUE_ELEMENT): New 'all' field.
1139          (request_cache_flush): Save 'all' argument.
1140          (request_cache_invalidate): Save all_cache_entries from profile state
1141          to 'all' field of the request.
1142          (submit_cache_request): Pass the 'all' field of the request to
1143          frv_cache_request_invalidate.
1144          * frv.c (frv_insn_cache_invalidate): Add new 'all' parameter. Perform
1145          operation even if HSR0.ICE is not set.
1146          (frv_data_cache_invalidate): Add new 'all' parameter. Perform
1147          operation even if HSR0.DCE is not set.
1148          (frv_data_cache_flush): Ditto.
1149          * frv-sim.h (frv_insn_cache_invalidate): Add new 'all' parameter.
1150          (frv_data_cache_invalidate): Add new 'all' parameter.
1151          (frv_data_cache_flush): Add new 'all' parameter.
1152          * cache.h (FRV_CACHE_INVALIDATE_REQUEST): Add new 'all' field.
1153          (frv_cache_request_invalidate): Add new 'all' parameter.
1154          * cache.c (frv_cache_request_invalidate): Add new 'all' parameter. Save
1155          its value in the invalidate request.
1156          (address_interference): Accept the value '-1' for the address argument
1157          to mean 'any address'.
1158          (handle_req_invalidate): Handle request to invalidate all cache lines.
1159          * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1160
11612001-05-14  Dave Brolley  <brolley@redhat.com>
1162
1163          * profile.h (past_first_p): New field of profiling state.
1164          (branch_penalty): Ditto.
1165          (branch_hint): Ditto.
1166          (update_branch_penalty): New function.
1167          * profile.c (frvbf_model_insn_after): Reset past_first_p and
1168          branch_address fields of the profiling state.
1169          (frvbf_model_branch): New function.
1170          (update_branch_penalty): New function.
1171          * profile-fr500.c (frvbf_model_fr500_u_branch): Remove ICCi_3 and
1172          FCCi_3 inputs.
1173          (frvbf_model_fr500_u_trap): New function.
1174          (frvbf_model_fr500_u_check): New function.
1175          (frvbf_model_fr500_u_media_dual_htob): post-processing latency is 3
1176          cycles.
1177          * profile-fr400.c (frvbf_model_fr400_u_branch): Set branch penalties
1178          as documented in the fr400 LSI. Remove ICCi_3 and FCCi_3 inputs.
1179          (frvbf_model_fr400_u_media_dual_expand): Check resource usage as
1180          documented in teh fr400 LSI.
1181          (frvbf_model_fr400_u_media_dual_htob): Ditto.
1182          (frvbf_model_fr400_u_media_dual_unpack): Removed.
1183          (frvbf_model_fr500_u_trap): New function.
1184          (frvbf_model_fr500_u_check): New function.
1185          * mloop.in (simulate_dual_insn_prefetch): New function.
1186          (@cpu@_simulate_insn_prefetch): Call simulate_dual_insn_prefetch with
1187          arguments for each machine type.
1188          * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1189
11902001-05-09  Dave Brolley  <brolley@redhat.com>
1191
1192          * Makefile.in (profile.o): Add profile-fr400.h as a dependency.
1193          (profile-fr400.o): New target.
1194          * profile.c: New file.
1195          * profile.h: New file.
1196          * profile-fr400.c: New file.
1197          * profile-fr400.h: New file.
1198          * profile-fr500.c: New file.
1199          * profile-fr500.h: New file.
1200          * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1201
12022001-05-02  Dave Brolley  <brolley@redhat.com>
1203
1204          * sim-main.h (profile.h): #include it.
1205          (CPU_PROFILE_STATE): New macro.
1206          (profile_state): New frv specific cpu field.
1207          * reset.c (frv_initialize): insn_fetch_address and branch_address now
1208          part of global profiling state.
1209          * Makefile.in (SIM_OBJS): Add profile.o and profile-fr500.o.
1210          (SIM_EXTRA_DEPS): Add profile.h.
1211          (registers.o): Correct name of source file.
1212          (profile.o): New target.
1213          (profile-fr500.o): New target.
1214          * frv-sim.h: Move profile related data structures to profile.h.
1215          * frv.c: Move fr500 specific functions to profile-fr500.c.
1216          * cpu.h: Regenerated.
1217
12182001-04-27  Dave Brolley  <brolley@redhat.com>
1219
1220          * sim-main.h (CPU_PIPELINE): Renamed to CPU_VLIW.
1221          * interrupts.c: Rename FRV_PIPELINE to FRV_VLIW.
1222          Rename pipeline to vliw. Rename CPU_PIPELINE to CPU_VLIW.
1223          Rename PIPE_* to UNIT_*.
1224          (frv_queue_illegal_instruction_interrupt): Use
1225          frv_is_float_insn and frv_is_media_insn.
1226          (frv_queue_non_implemented_instruction_interrupt): Ditto.
1227          (frv_detect_insn_access_interrupts): Ditto.
1228          * frv.c: Rename FRV_PIPELINE to FRV_VLIW. Rename pipeline to vliw.
1229          Rename CPU_PIPELINE to CPU_VLIW. Rename PIPE_* to UNIT_*.
1230          * memory.c: Ditto.
1231          * pipeline.c: Ditto.
1232          * mloop.in: Ditto.
1233          * frv-sim.h (frv_pipeline_setup_insn): Renamed to frv_vliw_setup_insn.
1234          * cache.c: Rename PIPE_* to UNIT_*.
1235
12362001-04-24  Dave Brolley  <brolley@redhat.com>
1237
1238          * frv.c (frvbf_load_quad_GR): Delete have_data and hsr0.
1239          (frvbf_load_quad_FRint): Ditto.
1240          (frvbf_load_quad_CPR): Ditto.
1241          * cache.c (frv_cache_init): Initialize cache for fr400 vs other
1242          machines.
1243          (bfd.h): #include it.
1244          (non_cache_access): Update for revised fr500 and for fr400.
1245          * registers.c (frv_spr): Don't reset PSR.PS.
1246          (fr500_spr): Ditto.
1247          (frv_reset_spr): Set PSR.PS to the former value of PSR.S.
1248
12492001-04-23  Dave Brolley  <brolley@redhat.com>
1250
1251          * traps.c (frv_core_signal): On fr400, generate data_access_error.
1252          (frvbf_media_cr_not_aligned): On fr400, generate illegal_instruction.
1253          (frvbf_media_acc_not_aligned): Ditto.
1254          (frvbf_media_register_not_aligned): Ditto.
1255          (frvbf_division_exception): Use GET_ISR_EDE.
1256          * registers.c (frv_check_spr_read_access): New function.
1257          (frv_check_spr_write_access): New function.
1258          (frv_check_spr_access): Deleted.
1259          (frv_check_register_access): On fr400, generate illegal_instruction.
1260          * memory.c (fr400_check_data_read_address): New function.
1261          (fr500_check_data_read_address): Ditto.
1262          (check_data_read_address): Ditto.
1263          (fr400_check_insn_read_address): Ditto.
1264          (fr500_check_insn_read_address): Ditto.
1265          (check_insn_read_address): Ditto.
1266          (frvbf_read_mem_QI): Call check_data_read_access.
1267          (frvbf_read_mem_UQI): Ditto.
1268          (frvbf_read_mem_HI): Ditto.
1269          (frvbf_read_mem_UHI): Ditto.
1270          (frvbf_read_mem_SI): Ditto.
1271          (frvbf_read_mem_DI): Ditto.
1272          (frvbf_read_mem_DF): Ditto.
1273          (frvbf_read_imem_USI): Call check_insn_read_access.
1274          (frv_address_forbidden): Now takes cpu as first argument. Check based
1275          on machine type.
1276          (fr400_mem_address_unaligned): New function.
1277          (fr500_mem_address_unaligned): Ditto.
1278          (check_write_address): Ditto.
1279          (frvbf_mem_set_QI): Call check_write_address.
1280          (frvbf_mem_set_HI): Ditto.
1281          (frvbf_mem_set_SI): Ditto.
1282          (frvbf_mem_set_DI): Ditto.
1283          (frvbf_mem_set_DF): Ditto.
1284          (frvbf_mem_set_XI): Ditto.
1285          * interrupts.c (bfd.h): #include it.
1286          (frv_queue_data_access_error_interrupt): New function.
1287          (frv_queue_instruction_access_error_interrupt): New function.
1288          (frv_queue_instruction_access_exception_interrupt): New function.
1289          (frv_queue_illegal_instruction_interrupt): No fp_exception on fr400.
1290          (frv_queue_non_implemented_instruction_interrupt): Ditto.
1291          (frv_detect_insn_access_interrupts): Reorder tests to match priority
1292          from the LSI manual.
1293          (set_isr_exception_fields): Accumulate dtt bits.
1294          * frv.c (check_register_alignment): New function.
1295          (check_fr_register_alignment): New function.
1296          (check_memory_alignment): New function.
1297          (frvbf_h_gr_double_get_handler): Call check_register_alignment.
1298          (frvbf_h_gr_double_set_handler): Ditto.
1299          (frvbf_h_cpr_double_get_handler): Ditto.
1300          (frvbf_h_cpr_double_set_handler): Ditto.
1301          (frvbf_h_gr_quad_set_handler): Ditto.
1302          (frvbf_h_cpr_quad_set_handler): Ditto.
1303          (frvbf_h_fr_double_get_handler): Call check_fr_register_alignment.
1304          (frvbf_h_fr_double_set_handler): Ditto.
1305          (frvbf_h_fr_quad_set_handler): Ditto.
1306          (frvbf_h_spr_get_handler): Call frv_check_spr_read_access.
1307          (frvbf_h_spr_set_handler): Call frv_check_spr_write_access.
1308          (frvbf_load_quad_GR): Call check_memory_aligment.
1309          (frvbf_load_quad_FRint): Ditto.
1310          (frvbf_load_quad_CPR): Ditto.
1311          (frvbf_store_quad_GR): Call check_memory_aligment and
1312          check_register_alignment.
1313          (frvbf_store_quad_FRint): Ditto.
1314          (frvbf_store_quad_CPR): Ditto.
1315          (frvbf_signed_integer_divide: Use GET_ISR_EDEM.
1316          * frv-sim.h (H_SPR_ACC0): New macro.
1317          (H_SPR_ACC63): New macro.
1318          (H_SPR_ACCG0): New macro.
1319          (H_SPR_ACCG63): New macro.
1320          (frv_dtt): New enumerator.
1321          (GET_ISR_EDE): Renamed from GET_ISR_EDEM.
1322          (GET_ISR_DTT): New macro.
1323          (frv_queue_data_access_error_interrupt): New function.
1324          (frv_queue_instruction_access_error_interrupt): New function.
1325          (frv_queue_instruction_access_exception_interrupt): New function.
1326          (frv_address_forbidden): Now takes cpu as first argument.
1327          * cpu.h: Regenerate.
1328
13292001-04-10  Dave Brolley  <brolley@redhat.com>
1330
1331          * registers.c (fr500_spr): Add new fields to fr500 PSR register.
1332          (fr500_spr): Add STBAR and MMCR unimplemented registers for fr500.
1333          (fr400_spr): Implement SPR registers for fr400.
1334          (frv_register_control_init): Handle bfd_mach_fr400 properly.
1335          * frv.c (spr_bpsr_get_handler): Mask field before shifting.
1336          (spr_psr_get_handler): Ditto.
1337          (spr_ccr_get_handler): Ditto.
1338          (spr_cccr_get_handler): Ditto.
1339          (frvbf_clear_accumulators): Only 4 accumulators on fr400.
1340          * frv-sim.h: Update comment about MCCR_* macros.
1341          * cpu.c,cpu.h: Regenerate.
1342
13432001-04-05  Dave Brolley  <brolley@redhat.com>
1344
1345          * cpu.h,decode.c,model.c,sem.c:         Regenerate.
1346
13472001-04-05  Dave Brolley  <brolley@redhat.com>
1348
1349          * reset.c: Update copyright.
1350          * registers.c (frv_register_control_init): Handle bfd_mach_fr400.
1351          * frv.c (frvbf_model_fr400_u_exec): New function.
1352          * Makefile.in (stamp-cpu): Add fr400 to list of machines.
1353          * arch.c,arch.h,cpu.c,cpu.h,cpuall.h,model.h,decode.c,decode.h,sem.c:
1354          Regenerate.
1355
13562000-11-22  Dave Brolley  <brolley@redhat.com>
1357
1358          * arch.c,arch.h,cpu.c,cpu.h,cpuall.h,model.h,decode.c,decode.h,sem.c:
1359          Regenerate.
1360
13612000-11-10  Dave Brolley  <brolley@redhat.com>
1362
1363          * decode.c: Regenerate.
1364
13652000-09-12  Dave Brolley  <brolley@redhat.com>
1366
1367          * traps.c (frv_sim_engine_halt_hook): New function.
1368          (frv_itrap): Caches now invalidated in sim_engine_halt via
1369          SIM_ENGINE_HALT_HOOK.
1370          (frv_break): Ditto.
1371          * sim-main.h (frv_sim_engine_halt_hook): New function.
1372          (SIM_ENGINE_HALT_HOOK): New macro.
1373          (SIM_ENGINE_RESTART_HOOK): New macro.
1374          * interrupts.c: Call to frv_term now done within sim_engine_halt via
1375          SIM_ENGINE_HALT_HOOK.
1376
13772000-09-08  Dave Brolley  <brolley@redhat.com>
1378
1379          * traps.c (frv_itrap): Invalidate and flush the data and insn caches
1380          respectively when stopping for a breakpoint.
1381          (frv_break): Ditto.
1382          * cache.h (frv_cache_invalidate_all): New function.
1383          * cache.c (frv_cache_invalidate_all): New function.
1384
13852000-09-05  Dave Brolley  <brolley@redhat.com>
1386
1387          * traps.c (frv_break): If SIM_HAVE_BREAKPOINTS, call
1388          sim_handle_breakpoint. Otherwise if environment != operating call
1389          sim_engine_halt. Otherwise handle normally.
1390          * interrupts.c (frv_queue_break_interrupt): Don't handle debugger
1391          breakpoints here. Moved to frv_break in traps.c.
1392
1393          * sem.c: Regenerate.
1394
13952000-09-01  Dave Brolley  <brolley@redhat.com>
1396
1397          * interrupts.c (frv_queue_break_interrupt): Call sim_handle_breakpoint
1398          before queuing an interrupt in order to allow 'break' to be used as
1399          the breakpoint insn.
1400
14012000-08-29  Dave Brolley  <brolley@redhat.com>
1402
1403          * traps.c (frv_itrap): Invalidate the insn cache at a breakpoint.
1404
14052000-07-27  Dave Brolley  <brolley@redhat.com>
1406
1407          * cpu.h,decode.c: Rebuild.
1408
14092000-07-26  Dave Brolley  <brolley@redhat.com>
1410
1411          * frv.c (spr_cccr_get_handler): Change CRx to CCx.
1412          (spr_cccr_set_handler): Change CRx to CCx.
1413          * cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
1414
14152000-07-24  Dave Brolley  <brolley@redhat.com>
1416
1417          * sem.c: Regenerate.
1418          * frv.c (frvbf_unsigned_integer_divide): Queue a write for the result.
1419          Don't write it directly.
1420
1421Thu Jul  6 13:51:12 2000  Dave Brolley  <brolley@topaz>
1422
1423          * configure: Regenerated to track ../common/aclocal.m4 changes.
1424
14252000-07-05  Ben Elliston  <bje@redhat.com>
1426
1427          * configure: Regenerated to track ../common/aclocal.m4 changes.
1428
14292000-06-28  Dave Brolley  <brolley@redhat.com>
1430
1431          * cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
1432
14332000-06-21  Dave Brolley  <brolley@redhat.com>
1434
1435          * pipeline.c: All code except frv_pipeline_setup_insn moved to
1436          frv.opc.
1437          * mloop.in (main loop): frv_pipeline_add_insn broken up into
1438          frv_pipeline_add_insn and frv_pipeline_setup_insn.
1439          * frv-sim.h: Move pipeline status code to frv.opc.
1440          * model.c: Regenerate.
1441
14422000-06-12  Dave Brolley  <brolley@redhat.com>
1443
1444          * options.c (frv_option_handler): --profile-parallel implies
1445          --profile-model.
1446          * mloop.in (fetch_buffer): Removed.
1447          (@cpu@_simulate_insn_prefetch): Monitoring of fetch buffer moved to
1448          run_caches.  Use cache directly if not counting cycles.  Don't use
1449          cache at all if not counting cycles and cache not enabled.
1450          * frv.c (frv_insn_fetch_buffer): New global variable.
1451          (run_caches): Monitor the status of insn prefetch requests.
1452          * frv-sim.h (FRV_INSN_FETCH_BUFFER): New struct type.
1453          (frv_insn_fetch_buffer): New global variable.
1454
14552000-06-12  Dave Brolley  <brolley@redhat.com>
1456
1457          * mloop.in (fetch_buffer): New static struct.
1458          (@cpu@_simulate_insn_prefetch): Rewritten.
1459          * cache.c (frv_cache_request_invalidate): Don't invalidate return
1460          buffer.
1461          (address_interference): Defer to any WAR request in either pipeline.
1462
14632000-06-09  Dave Brolley  <brolley@redhat.com>
1464
1465          * pipeline.c (insns_in_slot): New Array.
1466          (frv_pipeline_add_insn): Call COUNT_INSNS_IN_SLOT.
1467          * options.c (frv_options): Remove 'NONBLOCK' argument from data-cache
1468          option.
1469          (parse_cache_option): New function.
1470          (frv_option_handler): Call parse_cache_option.
1471          * frv.c (vliw_branch_taken): New variable.
1472          (vliw_load_stall): New variable.
1473          (handle_resource_wait): Update vliw_load_stall.
1474          (frvbf_model_insn_before): Initialize vliw_branch_taken and
1475          vliw_load_stall.
1476          (frvbf_model_insn_after): Increment PROFILE_MODEL_LOAD_STALL_CYCLES.
1477          (load_wait_for_FR): Update vliw_load_stall.
1478          (load_wait_for_GR): Update vliw_load_stall.
1479          (load_wait_for_FRdouble): Update vliw_load_stall.
1480          (load_wait_for_GRdouble): Update vliw_load_stall.
1481          (frvbf_model_fr500_u_branch): Count branches taken and not taken.
1482          (slot_names): New static array.
1483          (print_parallel): Now takes second argument 'verbose'. Print cycles per
1484          VLIW insn and instructions per cycle. Also tabulate the number of insns
1485          in each type of VLIW slot.
1486          (frv_profile_info): Call print_parallel with new second argument.
1487          * frv-sim.h (insn_in_slot): New array.
1488          (COUNT_INSNS_IN_SLOT): New macro.
1489          (INSNS_IN_SLOT): New macro.
1490          * cache.c: Remove references to non_blocking_count. Remove references to
1491          last_was_hit. Remove references to req_none.
1492          (handle_req_store): Adjust statistics before requeuing the store
1493          request.
1494          (handle_req_WAR): Don't let the WAR request affect the cache statistics.
1495          * cache.h: Remove references to non_blocking_count. Remove references to
1496          last_was_hit. Remove references to req_none.
1497          * model.c: Regenerate.
1498
14992000-06-08  Dave Brolley  <brolley@redhat.com>
1500
1501          * frv.c (request_complete): Copy load data from the correct return
1502          buffer.
1503
15042000-06-07  Dave Brolley  <brolley@redhat.com>
1505
1506          * traps.c (frv_core_signal): Call frv_term before exiting.
1507          (frv_itrap): Call frv_term before exiting.
1508          (next_available_nesr): Make sure NECR is implemented before reading it.
1509          (next_valid_nesr): Ditto.
1510          (frvbf_check_non_excepting_load): Ditto.
1511          (frvbf_clear_ne_flags): Ditto.
1512          (frvbf_commit): Ditto.
1513          (frvbf_check_recovering_store): Delay cache operation if 'model_insn'.
1514          * sim-main.h (_sim_cpu): Add load_address, load_length, load_flag and
1515          store_flag members.
1516          (CPU_LOAD_ADDRESS): New macro.
1517          (CPU_LOAD_LENGTH): New macro.
1518          (CPU_LOAD_SIGNED): New macro.
1519          (CPU_LOAD_LOCK): New macro.
1520          * reset.c (frv_term): New function.
1521          (frv_power_on_reset): Use SETMEMSI if the cache is not enabled.
1522          (frv_hardware_reset): Use SETMEMSI if the cache is not enabled.
1523          (frv_software_reset): Use SETMEMSI if the cache is not enabled.
1524          * mloop.in (execute): Call FRV_COUNT_CYCLES to decide whether to model
1525          the insn. Model the insn in two passes. One before and one after
1526          execution.
1527          (cache_reqno): new static variable.
1528          (@cpu@_simulate_insn_prefetch): Model fetch latency by waiting for the
1529          cache rather than assuming a fixed latency.
1530          (xinit): Turn on PROFILE_MODEL_P before each vliw insn if the timer is
1531          enabled so that modeling data is collected by cgen during execution.
1532          (full-exec): Restore PROFILE_MODEL_P after each vliw insn.
1533          * memory.c (data_non_cache_access): Removed.
1534          (insn_non_cache_access): Removed.
1535          (frvbf_read_mem_QI): Delay read operation if 'model_insn'.
1536          (frvbf_read_mem_UQI): Delay read operation if 'model_insn'.
1537          (frvbf_read_mem_HI): Delay read operation if 'model_insn'.
1538          (frvbf_read_mem_UHI): Delay read operation if 'model_insn'.
1539          (frvbf_read_mem_SI): Delay read operation if 'model_insn'.
1540          (frvbf_read_mem_DI): Delay read operation if 'model_insn'.
1541          (frvbf_read_mem_DF): Delay read operation if 'model_insn'.
1542          (frvbf_read_imem_USI): Read the cache or ememory passively.
1543          (frvbf_write_mem_QI): Don't check for non-cache access here.
1544          (frvbf_write_mem_UQI): Call frvbf_write_mem_QI.
1545          (frvbf_write_mem_HI): Don't check for non-cache access here.
1546          (frvbf_write_mem_UHI): Call frvbf_write_mem_QI.
1547          (frvbf_write_mem_SI): Don't check for non-cache access here.
1548          (frvbf_write_mem_DI): Don't check for non-cache access here.
1549          (frvbf_write_mem_DF): Don't check for non-cache access here.
1550          (frvbf_mem_set_QI): Use cycle-accurate cache write if 'model_insn'.
1551          (frvbf_mem_set_HI): Use cycle-accurate cache write if 'model_insn'.
1552          (frvbf_mem_set_SI): Use cycle-accurate cache write if 'model_insn'.
1553          (frvbf_mem_set_DI): Use cycle-accurate cache write if 'model_insn'.
1554          (frvbf_mem_set_DF): Use cycle-accurate cache write if 'model_insn'.
1555          (frvbf_mem_set_XI): Use cycle-accurate cache write if 'model_insn'.
1556          * interrupts.c (check_reset): Read the cache and memory passively.
1557          (frv_program_or_software_interrupt): Call frv_term before calling
1558          sim_engine_halt.
1559          * frv.c (all modeling functions): Break into two passes. One before
1560          execuetion and one after. call load_wait_for_* for all GR and FR
1561          registers.
1562          (frvbf_load_quad_GR): Delay performing the load if 'model_insn'.
1563          (frvbf_load_quad_FRint): Delay performing the load if 'model_insn'.
1564          (frvbf_load_quad_CPR): Delay performing the load if 'model_insn'.
1565          (frvbf_insn_cache_preload): Delay cache operation if 'model_insn'.
1566          (frvbf_data_cache_preload): Delay cache operation if 'model_insn'.
1567          (frvbf_insn_cache_unlock): Delay cache operation if 'model_insn'.
1568          (frvbf_data_cache_unlock): Delay cache operation if 'model_insn'.
1569          (frvbf_insn_cache_invalidate): Delay cache operation if 'model_insn'.
1570          (frvbf_data_cache_invalidate): Delay cache operation if 'model_insn'.
1571          (frvbf_data_cache_flush): Delay cache operation if 'model_insn'.
1572          (model_insn): New global variable.
1573          (fr_ptime): New array.
1574          (cache_request): New enumeration.
1575          (CACHE_QUEUE_ELEMENT): New struct type.
1576          (CACHE_QUEUE_SIZE): New macro.
1577          (cache_queue): New static struct.
1578          (request_cache_load): New function.
1579          (request_cache_flush): New function.
1580          (request_cache_invalidate): New function.
1581          (request_cache_preload): New function.
1582          (request_cache_unlock): New function.
1583          (submit_cache_request): New function.
1584          (activate_cache_requests): New function.
1585          (load_pending_for_register): New function.
1586          (flush_pending_for_address): New function.
1587          (remove_cache_queue_element): New function.
1588          (copy_load_data): New function.
1589          (request_complete): New function.
1590          (run_caches): New function.
1591          (frv_model_trace_wait_cycles): New function.
1592          (wait_for_flush): New function.
1593          (frvbf_model_insn_before): Insn prefect wait now modeled in
1594          frvbf_simulate_insn_prefetch. Incremement vliw_insns here. Call
1595          wait_for_flush.
1596          (frvbf_model_insn_after): Call activate_cache_requests. Don't increment
1597          vliw_insns here anymore.
1598          (update_FR_latency_for_load): New function.
1599          (update_FRdouble_latency_for_load): New function.
1600          (update_FR_ptime): New function.
1601          (update_FRdouble_ptime): New function.
1602          (update_GR_latency_for_swap): New function.
1603          (load_wait_for_GR): New function.
1604          (load_wait_for_FR): New function.
1605          (load_wait_for_GRdouble): New function.
1606          (load_wait_for_FRdouble): New function.
1607          (frvbf_model_fr500_u_ici): New function.
1608          (frvbf_model_fr500_u_dci): New function.
1609          (frvbf_model_fr500_u_dcf): New function.
1610          (frvbf_model_fr500_u_icpl): New function.
1611          (frvbf_model_fr500_u_dcpl): New function.
1612          (frvbf_model_fr500_u_icul): New function.
1613          (frvbf_model_fr500_u_dcul): New function.
1614          * frv-sim.h (frv_term): New function.
1615          (insn_non_cache_access): Removed.
1616          (FRV_COUNT_CYCLES): New macro.
1617          (frv_save_peofile_model_p): New global variable.
1618          (model_insn): New enumerated global variable.
1619          (frv_model_advance_cycles): New function.
1620          (frv_model_trace_wait_cycles): New function.
1621          * cache.h (FRV_CACHE_REQUEST_KIND): New enumeration.
1622          (FRV_CACHE_WAR_REQUEST): New struct type.
1623          (FRV_CACHE_STORE_REQUEST): New struct type.
1624          (FRV_CACHE_INVALIDATE_REQUEST): New struct type.
1625          (FRV_CACHE_PRELOAD_REQUEST): New struct type.
1626          (FRV_CACHE_REQUEST): New struct type.
1627          (FRV_CACHE_RETURN_BUFFER): New struct type.
1628          (FRV_CACHE_FLUSH_STATUS): New struct type.
1629          (FRV_CACHE_STATUS): New struct type.
1630          (FRV_CACHE_STAGE): New struct type.
1631          (FRV_CACHE_STAGES): New enumeration.
1632          (FRV_CACHE_WAR): New struct type.
1633          (FRV_CACHE_PIPELINE): New struct type.
1634          (FRV_CACHE_ARS): New struct type.
1635          (FRV_CACHE_STATISTICS): New struct type.
1636          (FRV_CACHE): Add pipeline, statistics, BARS and NARS.
1637          (CACHE_RETURN_DATA): 'return_buffer' is now within 'status'.
1638          (CACHE_RETURN_DATA_ADDRESS): New macro.
1639          (frv_cache_read): Now takes pipe index as second argument.
1640          (frv_cache_enabled): New function.
1641          (frv_cache_request_load): New function.
1642          (frv_cache_request_store): New function.
1643          (frv_cache_request_invalidate): New function.
1644          (frv_cache_request_preload): New function.
1645          (frv_cache_request_unlock): New function.
1646          (frv_cache_run): New function.
1647          (frv_cache_read_passive_SI): New function.
1648          (frv_cache_data_in_buffer): New function.
1649          (frv_cache_data_flushed): New function.
1650          * cache.c (frv_cache_init): Initialize pipelines and xARS registers.
1651          (frv_cache_enabled): New function.
1652          (non_cache_access): New function.
1653          (write_data_to_memory): Count write accesses for each mode. Write to
1654          memory using sim_core_write_unaligned_1;
1655          (read_data_from_memory): New function.
1656          (fill_line_from_memory): Use read_data_from_memory.
1657          (copy_line_to_return_buffer): New function.
1658          (copy_memory_to_return_buffer): New function.
1659          (set_return_buffer_reqno): New function.
1660          (frv_cache_read): Now takes pipe index as second argument. Check for
1661          non-cache access.
1662          (frv_cache_preload): Check for non-cache access.
1663          (frv_cache_unlock): Check for non-cache access.
1664          (invalidate_return_buffer): New function.
1665          (frv_cache_invalidate): Check for non-cache access.
1666          (convert_slot_to_index): New function.
1667          (FREE_CHAIN_SIZE): New macro.
1668          (frv_cache_request_free_chain): New static variable.
1669          (frv_store_request_free_chain): New static variable.
1670          (allocate_new_cache_requests): New function.
1671          (new_cache_request): New function.
1672          (free_cache_request): New function.
1673          (new_store_request): New function.
1674          (pipeline_remove_request): New function.
1675          (pipeline_add_request): New function.
1676          (pipeline_requeue_request): New function.
1677          (next_priority): New function.
1678          (add_WAR_request): New function.
1679          (pipeline_next_request): New function.
1680          (pipeline_stage_request): New function.
1681          (advance_pipelines): New function.
1682          (frv_cache_request_load): New function.
1683          (frv_cache_request_store): New function.
1684          (frv_cache_request_invalidate): New function.
1685          (frv_cache_request_preload): New function.
1686          (frv_cache_request_unlock): New function.
1687          (address_interference): New function.
1688          (wait_for_WAR): New function.
1689          (wait_in_WAR): New function.
1690          (handle_req_load): New function.
1691          (handle_req_preload): New function.
1692          (handle_req_store): New function.
1693          (handle_req_invalidate): New function.
1694          (handle_req_unlock): New function.
1695          (handle_req_WAR): New function.
1696          (arbitrate_requests): New function.
1697          (move_ARS_to_WAR): New function.
1698          (decrease_latencies): New function.
1699          (frv_cache_run): New function.
1700          (frv_cache_read_passive_SI): New function.
1701          (frv_cache_data_in_buffer): New function.
1702          (frv_cache_data_flushed): New function.
1703          * arch.h,decode.c,decode.h,model.c,sem.c: Rebuild.
1704
1705Wed May 24 14:40:34 2000  Andrew Cagney  <cagney@b1.cygnus.com>
1706
1707          * configure: Regenerated to track ../common/aclocal.m4 changes.
1708
17092000-05-19  Dave Brolley  <brolley@redhat.com>
1710
1711          * traps.c (frv_rett): Check for exceptions in the order specified in the
1712          architecture spec. Allow privileged_instruction interrrupt to be handled
1713          normally.
1714          * registers.c (frv_register_control_init): Handle bfd_mach_frvtomcat.
1715          * frv.c (frvbf_signed_integer_divide): Use updated dtt to decide whether
1716          to clear the NE flag.
1717          (frvbf_model_tomcat_u_exec): New function.
1718          * frv-sim.h (frvbf_division_exception): Now returns updated dtt.
1719          * Makefile.in (stamp-cpu): Add 'tomcat' to 'mach' value.
1720          * arch.c,arch.h,cpu.h,cpuall.h,model.h,decode.c,sem.c: Regenerate.
1721
17222000-05-18  Dave Brolley  <brolley@redhat.com>
1723
1724          * sim-if.c (elf-bfd.h): #include it.
1725          (sim_open): Set machine amd architecture based on elf flags.
1726
17272000-04-04  Dave Brolley  <brolley@redhat.com>
1728
1729          * frv-sim.h (frv_h_psr_esr_set_handler): Removed.
1730          Delete '#if 0' blocks.
1731          * frv.c: Delete '#if 0' blocks.
1732          (spr_psr_set_handler): Remove special handling for circular referencing of handlers for
1733          PSR.S and PSR.ESR.
1734          (frv_h_psr_esr_set_handler): Removed.
1735          * interrupts.c: Delete '#if 0' blocks.
1736          * memory.c: Delete '#if 0' blocks.
1737          * cpu.c,cpu.h: Regenerate.
1738
17392000-04-03  Dave Brolley  <brolley@redhat.com>
1740
1741          * traps.c (frvbf_check_recovering_store): Invalidate data cache line
1742          containing the target address.
1743          (clear_nesr_neear): No longer takes hi_available and lo_available.
1744          Remove bogus check for available GR registers.
1745          (frvbf_clear_ne_flags): Update call to clear_nesr_neear.
1746          (frvbf_commit): Update call to clear_nesr_neear.
1747          * interrupts.c (next_available_esr): Removed.
1748          (next_available_edr): Removed.
1749          (next_available_fq): Removed.
1750          * frv.c (frvbf_fetch_register): Remove "FIXME" comment.
1751          (frvbf_store_register): Remove "FIXME" comment.
1752          * frv-sim.h (UART_INCHAR_ADDR): Removed.
1753          (UART_OUTCHAR_ADDR):  Removed.
1754          (UART_STATUS_ADDR):  Removed.
1755          (UART_INPUT_READY):  Removed.
1756          (UART_OUTPUT_READY):  Removed.
1757          (FRV_DEVICE_ADDR):  Removed.
1758          (FRV_DEVICE_LEN):  Removed.
1759          (SET_NESR): Call frvbf_force_update.
1760          (SET_NEEAR): Call frvbf_force_update.
1761          (SET_NE_FLAGS): Call frvbf_force_update.
1762
17632000-03-30  Dave Brolley  <brolley@redhat.com>
1764
1765          * configure: Regenerated.
1766
17672000-03-30  Dave Brolley  <brolley@redhat.com>
1768
1769          * registers.c (fr500_spr): Define ESR14-15 and EPCSR14-15 for fr500.
1770          * memory.c (frvbf_write_mem_*): Save slot containing the insn
1771          performing the write.
1772          (frvbf_mem_set_*): Overwrite the slot information of the interrupt
1773          queue element with the information in the interrupt state.
1774          * interrupts.c (frv_queue_interrupt): Call frv_set_interrupt_queue_slot.
1775          (frv_queue_fp_exception_interrupt): Initialize 'new_element'.
1776          (frv_set_interrupt_queue_slot): New function.
1777          (esr_for_data_access_exception): New function.
1778          (set_edr_register): edr_index is now passed in.
1779          (fq_for_exception): New function.
1780          (set_fp_exception_registers): Call fq_for_exception. Interrupt queue
1781          element now passed in.
1782          (set_exception_status_registers): Obtain slot from interrupt queue
1783          element. Call esr_for_data_access_exception. Use ESR14
1784          for data_store_error. Use ESR15 for data_access_error. Use EDR0.
1785          (frv_save_data_written_for_interrupts): Save slot containing the insn
1786          performing the write.
1787          * frv-sim.h (struct frv_fp_exception_info): Use frv_fsr_traps and
1788          frv_fsr_ftt.
1789          (struct frv_interrupt_state): Add 'slot' field.
1790          (frv_set_interrupt_queue_slot): New function.
1791          (frv_set_write_queue_slot): New function.
1792
17932000-03-24  Dave Brolley  <brolley@redhat.com>
1794
1795          * mloop.in (_parallel_write_init): Initialize
1796          frv_interrupt_state.imprecise_interrupt.
1797          (_parallel_write_queued): After an imprecise interrupt, only perform
1798          forced writes and floating point writes (for certain exceptions).
1799          * interrupts.c (handle_interrupt): Set
1800          frv_interrupt_state.imprecise_interrupt for writeback after an imprecise
1801          interrupt.
1802          (frv_process_interrupts): No need to clear f_ne_flags.
1803          * frv.c (frvbf_signed_integer_divide): Queue writes to GR registers and
1804          force them to happen even if there is an overflow exception.
1805          (frvbf_force_update): New function.
1806          * frv-sim.h (frvbf_force_update): New function.
1807          (struct frv_interrupt_state): Add imprecise_interrupt.
1808          (FRV_WRITE_QUEUE_FORCE_WRITE): New macro.
1809          * sem.c: Regenerate.
1810
18112000-03-23  Dave Brolley  <brolley@redhat.com>
1812
1813          * traps.c (frv_rett): Queue FRV_ILLEGAL_INSTRUCTION directly.
1814          * registers.c (frv_spr): MCIRL -> MCILR.
1815          * interrupts.c (frv_queue_non_implemented_instruction_interrupt):
1816          New function.
1817          (frv_detect_insn_access_interrupts):
1818          Call frv_queue_non_implemented_instruction_interrupt.
1819          (frv_process_interrupts): Clear accumulated NE flags.
1820          * frv.c (frvbf_media_cop): New function.
1821          (frvbf_set_ne_index): Now takes (SIM_CPU *) as first argument.  Clear
1822          the NE flag of the given target register.
1823          (frvbf_model_fr500_u_float_arith): Account for FRdouble registers.
1824          (frvbf_model_fr500_u_float_dual_arith): Account for FRdouble registers.
1825          (frvbf_model_fr500_u_float_dual_sqrt): New function.
1826          (frvbf_model_fr500_u_float_convert): Account for FRdouble registers.
1827          (frvbf_model_fr500_u_float_dual_convert): New function.
1828          * frv-sim.h (frvbf_media_cop): New function.
1829          (GET_FQ): Use H_SPR_FQST0.
1830          (SET_FQ): Use H_SPR_FQST0.
1831          (SET_FQ_OPC): Use J_SPR_FQOP0.
1832          (GET_MSR_EMCI): New macro.
1833          (frv_queue_non_implemented_instruction_interrupt): New function.
1834          * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1835
18362000-03-08  Dave Brolley  <brolley@redhat.com>
1837
1838          * traps.c (frv_rett): Align new_pc.
1839          * memory.c (frvbf_read_mem_HI): Align address.
1840          (frvbf_read_mem_UHI): Align address.
1841          (frvbf_read_mem_SI): Align address.
1842          (frvbf_read_mem_DI): Align address.
1843          (frvbf_read_mem_DF): Align address.
1844          (frvbf_read_imem_USI): Align address.
1845          (frvbf_mem_set_HI): Align address.
1846          (frvbf_mem_set_SI): Align address.
1847          (frvbf_mem_set_DI): Align address.
1848          (frvbf_mem_set_DF): Align address.
1849          (frvbf_mem_set_XI): Align address.
1850          * registers.c (frv_spr): Initialize FSR0.NS to 1.
1851          (fr500_spr): Initialize FSR0.NS to 1.
1852          * interrupts.c (frv_queue_mem_address_not_aligned_interrupt): Check
1853          whether the exception is masked.
1854          * frv.c (frvbf_load_quad_GR): Align address.
1855          (frvbf_store_quad_GR): Align address.
1856          (frvbf_load_quad_FRint): Align address.
1857          (frvbf_store_quad_FRint): Align address.
1858          (frvbf_load_quad_CPR): Align address.
1859          (frvbf_store_quad_CPR): Align address.
1860          * frv-sim.h (GET_ISR_EMAM): New macro.
1861
18622000-03-08  Dave Brolley  <brolley@redhat.com>
1863
1864          * traps.c (frvbf_division_exception): Check for masked overflow and
1865          set NE flags, if necessary.
1866          (frvbf_check_recovering_store): Queue writes to the hardware.
1867          (check_registers_available): Removed.
1868          (which_registers_available): Call frv_{fr,gr}_registers_available.
1869          (frvbf_clear_ne_flags): Call check_register_access.
1870          (frvbf_commit): Call check_register_access.
1871          * registers.h (frv_fr_registers_available): New function.
1872          (frv_gr_registers_available): New function.
1873          (frv_check_register_access): New function.
1874          (frv_check_gr_access): New function.
1875          (frv_check_fr_access): New function.
1876          * registers.c (frv_spr): Correct initial value of ISR.
1877          (fr500_spr): Correct initial value of ISR.
1878          (frv_fr_registers_available): New function.
1879          (frv_gr_registers_available): New function.
1880          (frv_check_register_access): New function.
1881          (frv_check_gr_access): New function.
1882          (frv_check_fr_access): New function.
1883          * interrupts.c (frv_queue_division_exception_interrupt): New function.
1884          (set_isr_exception_fields): New function.
1885          (set_exception_status_registers): Set ISR fields for division exception.
1886          (frv_save_data_written_for_interrupts): Handle CGEN_FN_SF_WRITE.
1887          * frv.c (frvbf_h_gr_get_handler): New function.
1888          (frvbf_h_gr_set_handler): New function.
1889          (frvbf_h_fr_get_handler): New function.
1890          (frvbf_h_fr_set_handler): New function.
1891          (frvbf_h_spr_get_handler): Remove special handling for ISR.
1892          (frvbf_h_spr_set_handler): Remove special handling for ISR.
1893          (spr_isr_get_handler): Removed.
1894          (spr_isr_set_handler): Removed.
1895          (frvbf_signed_integer_divide): New funciton.
1896          (frvbf_unsigned_integer_divide): New funciton.
1897          * frv-sim.h (frvbf_h_gr_get_handler): New function.
1898          (frvbf_h_gr_set_handler): New function.
1899          (frvbf_h_fr_get_handler): New function.
1900          (frvbf_h_fr_set_handler): New function.
1901          (frvbf_signed_integer_divide): New funciton.
1902          (frvbf_unsigned_integer_divide): New funciton.
1903          (frv_dtt): New enumeration.
1904          (struct frv_interrupt_queue_element): Add dtt member.
1905          (GET_ISR): New macro.
1906          (SET_ISR): New macro.
1907          (GET_ISR_EDEM): New macro.
1908          (SET_ISR_DTT): New macro.
1909          (SET_ISR_AEXC): New macro.
1910          (frvbf_division_exception): Add 2 'int' arguments.
1911          (frvbf_check_non_excepting_divide): Removed.
1912          * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
1913
19142000-02-29  Dave Brolley  <brolley@redhat.com>
1915
1916          * traps.c (frv_itrap): Use GET_H_GR, SET_H_GR, GET_H_FR.
1917          (frv_rett): Use hardware access macros. Write PSR as a whole.
1918          (next_available_nesr): Check that NECR is valid.
1919          (next_valid_nesr): Check that NECR is valid.
1920          (frvbf_check_non_excepting_load): User new NECR access macros. Don't
1921          call hardware access functions. Use cover macros.
1922          (check_registers_available): New function.
1923          (clear_nesr_near): Check register availability.
1924          (clear_ne_flags): Check register availability.
1925          (frvbf_clear_ne_flags): Check register availability.
1926          (frvbf_commit): Check register availability.
1927          (which_registers_available): New function.
1928          * sim-main.h (registers.h): #include it.
1929          (register_control): New cpu field.
1930          (CPU_REGISTER_CONTROL): New macro.
1931          * reset.c (frv_initialize): Set HSR0 fields for cache here.
1932          (frv_power_on_reset): Initialize SPR registers and RSTR.
1933          (frv_hardware_reset): Initialize SPR registers and RSTR.
1934          (frv_software_reset): Reset SPR registers and RSTR.
1935          * options.c (frv_option_handler): Don't set HSR0 fields for cache here.
1936          Call frv_cache_init.
1937          * mloop.in (main loop): Check for insn access interrupts before
1938          executing the insn.
1939          * interrupts.c (frv_queue_external_interrupt): Use GET_H_PSR_ET.
1940          (frv_detect_insn_access_interrupts): Don't call hardware access
1941          functions directly. Use cover macros.
1942          (check_reset): Don't reset RSTR here.
1943          (next_available_esr): ESFR -> ESFR_FLAG.
1944          (next_available_edr): ESFR -> ESFR_FLAG.
1945          (clear_exception_status_registers): Use GET_ESFR and SET_ESFR.
1946          ESFR -> ESFR_FLAG.
1947          (frv_break_interrupt): Don't call hardware access functions directly.
1948          Use cover macros.
1949          (frv_program_or_software_interrupt): Ditto.
1950          (frv_external_interrupt): Ditto.
1951          * frv.c (frvbf_fetch_register): Don't call 'get' functions directly.
1952          (frvbf_store_register): Don't call 'set' functions directly.
1953          (frvbf_h_gr_double_get_handler): Use GET_H_GR.
1954          (frvbf_h_gr_double_set_handler): Use SET_H_GR.
1955          (frvbf_h_fr_double_get_handler): Use GET_H_FR.
1956          (frvbf_h_fr_double_set_handler): Use SET_H_FR.
1957          (frvbf_h_fr_int_get_handler): Use GET_H_FR.
1958          (frvbf_h_fr_int_set_handler): Use SET_H_FR.
1959          (frvbf_h_cpr_double_get_handler): Use GET_H_CPR.
1960          (frvbf_h_cpr_double_set_handler): Use SET_H_CPR.
1961          (frvbf_h_gr_quad_set_handler): Use SET_H_GR.
1962          (frvbf_h_fr_quad_set_handler): Use SET_H_FR.
1963          (frvbf_h_spr_get_handler): Check SPR access. Call renamed functions.
1964          Support shadow registers.
1965          (frvbf_h_spr_set_handler): Check SPR access. Call renamed functions.
1966          Support shadow registers.
1967          (spr_psr_get_handler): Renamed from frvbf_h_psr_get_handler.
1968          (spr_psr_set_handler): Renamed from frvbf_h_psr_set_handler.
1969          (spr_tbr_get_handler): Renamed from frvbf_h_tbr_get_handler.
1970          (spr_tbr_set_handler): Renamed from frvbf_h_tbr_set_handler.
1971          (spr_bpsr_get_handler): Renamed from frvbf_h_bpsr_get_handler.
1972          (spr_bpsr_set_handler): Renamed from frvbf_h_bpsr_set_handler.
1973          (spr_ccr_get_handler): Renamed from frvbf_h_ccr_get_handler.
1974          (spr_ccr_set_handler): Renamed from frvbf_h_ccr_set_handler.
1975          (spr_lr_get_handler): Renamed from frvbf_h_lr_get_handler.
1976          (spr_lr_set_handler): Renamed from frvbf_h_lr_set_handler.
1977          (spr_cccr_get_handler): Renamed from frvbf_h_cccr_get_handler.
1978          (spr_cccr_set_handler): Renamed from frvbf_h_cccr_set_handler.
1979          (spr_isr_get_handler): Renamed from frvbf_h_isr_get_handler.
1980          (spr_isr_set_handler): Renamed from frvbf_h_isr_set_handler.
1981          (spr_sr_get_handler): Renamed from frvbf_h_sr_get_handler.
1982          (spr_sr_set_handler): Renamed from frvbf_h_sr_set_handler.
1983          (frvbf_h_psr_esr_set_handler): Update to conform to FRV architecture
1984          version 1.3a.
1985          (spr_ccr_get_handler): Don't reference the hardware directly.
1986          (spr_ccr_set_handler): Don't reference the hardware directly.
1987          (spr_cccr_get_handler): Don't reference the hardware directly.
1988          (spr_cccr_set_handler): Don't reference the hardware directly.
1989          (spr_sr_get_handler): New function.
1990          (spr_sr_set_handler): New function.
1991          (frvbf_switch_supervisor_user_context): Temporarily switch to
1992          supervisor mode.
1993          (frvbf_store_quad_GR): Don't call handler directly.
1994          (frvbf_store_quad_FRint): Don't call handler directly.
1995          (frvbf_store_quad_CPR): Don't call handler directly.
1996          (frvbf_clear_all_accumulators): Removed.
1997          (frvbf_clear_accumulators): New function.
1998          (frvbf_model_fr500_u_media): Expand busy_adjustment to 8 members.
1999          Account for in_ACCGi and out_ACCGk.
2000          * frv-sim.h (RSTR_HARDWARE_RESET): New macro.
2001          (RSTR_SOFTWARE_RESET): New macro.
2002          (spr_psr_get_handler): Renamed from frvbf_h_psr_get_handler.
2003          (spr_psr_set_handler): Renamed from frvbf_h_psr_set_handler.
2004          (spr_tbr_get_handler): Renamed from frvbf_h_tbr_get_handler.
2005          (spr_tbr_set_handler): Renamed from frvbf_h_tbr_set_handler.
2006          (spr_bpsr_get_handler): Renamed from frvbf_h_bpsr_get_handler.
2007          (spr_bpsr_set_handler): Renamed from frvbf_h_bpsr_set_handler.
2008          (spr_ccr_get_handler): Renamed from frvbf_h_ccr_get_handler.
2009          (spr_ccr_set_handler): Renamed from frvbf_h_ccr_set_handler.
2010          (spr_lr_get_handler): Renamed from frvbf_h_lr_get_handler.
2011          (spr_lr_set_handler): Renamed from frvbf_h_lr_set_handler.
2012          (spr_cccr_get_handler): Renamed from frvbf_h_cccr_get_handler.
2013          (spr_cccr_set_handler): Renamed from frvbf_h_cccr_set_handler.
2014          (spr_isr_get_handler): Renamed from frvbf_h_isr_get_handler.
2015          (spr_isr_set_handler): Renamed from frvbf_h_isr_set_handler.
2016          (spr_sr_get_handler): Renamed from frvbf_h_sr_get_handler.
2017          (spr_sr_set_handler): Renamed from frvbf_h_sr_set_handler.
2018          (frvbf_clear_all_accumulators): Removed.
2019          (frvbf_clear_accumulators): New function.
2020          (GET_HSR0): Use GET_H_SPR.
2021          (SET_HSR0): Use SET_H_SPR.
2022          (CLEAR_HSR0_ICE): New macro.
2023          (CLEAR_HSR0_DCE): New macro.
2024          (GET_IHSR8): Use GET_H_SPR.
2025          (GET_PSR): New macro.
2026          (SET_PSR_ET): New macro.
2027          (GET_PSR_PS): New macro.
2028          (SET_PSR_S): New macro.
2029          (GET_ESFR): Changed to reference entire register.
2030          (SET_ESFR): Changed to reference entire register.
2031          (GET_ESFR_FLAG): New macro.
2032          (SET_ESFR_FLAG): New macro.
2033          (NECR_ELOS): Removed.
2034          (NECR_NEN): Removed.
2035          (NECR_VALID): Removed.
2036          (GET_NECR): New macro.
2037          (GET_NECR_ELOS): New macro.
2038          (GET_NECR_NEN): New macro.
2039          (GET_NECR_VALID): New macro.
2040          (NESR_RANGE): Removed.
2041          (GET_NESR): Use GET_H_SPR.
2042          (GET_NE_FLAGS): Use GET_H_SPR.
2043          * cache.h (CACHE_INITIALIZED): New macro.
2044          * Makefile.in (SIM_OBJS): Add registers.o.
2045          (SIM_EXTRA_DEPS): Add registers.h.
2046          (registers.o): New target.
2047          * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2048
20492000-02-17  Dave Brolley  <brolley@redhat.com>
2050
2051          * interrupts.c (frv_interrupt_table): Update priority order and handler
2052          offsets to conform to the architecture version 1.3a.
2053          * frv-sim.h (frv_interrupt_kind): Update priority order to conform
2054          to the architecture version 1.3a.
2055
20562000-02-17  Dave Brolley  <brolley@redhat.com>
2057
2058          * interrupts.c (frv_interrupt_table): Update priority order and handler
2059          offsets to conform to the latest specifications.
2060          (frv_queue_interrupt): Correct comment. Identical interrupts can be
2061          queued. New variable 'iclass' used to test for external interrupts.
2062          * frv-sim.h (frv_interrupt_kind): Update priority order to conform
2063          to the latest specifications.
2064
20652000-01-20  Dave Brolley  <brolley@redhat.com>
2066
2067          * sim-if.c (sim_open): Move frv-specific initialization to
2068          frv_initialize in reset.c.
2069          * interrupts.c (check_reset): Use RSTR_ADDRESS. Check and reset RSTR
2070          status bits for hardware vs software reset.
2071          * reset.c: New file.
2072          * frv-sim.h (frv_initialize): New function.
2073          (frv_power_on_reset): New function.
2074          (frv_hardware_reset): New function.
2075          (frv_software_reset): New function.
2076          (RSTR_ADDRESS): New macro.
2077          (RSTR_INITIAL_VALUE): New macro.
2078          (GET_RSTR_HR): New macro.
2079          (GET_RSTR_SR): New macro.
2080          (SET_RSTR_H): New macro.
2081          (SET_RSTR_S): New macro.
2082          (CLEAR_RSTR_P): New macro.
2083          (CLEAR_RSTR_H): New macro.
2084          (CLEAR_RSTR_S): New macro.
2085          (CLEAR_RSTR_HR): New macro.
2086          (CLEAR_RSTR_SR): New macro.
2087
20882000-01-03  Dave Brolley  <brolley@cygnus.com>
2089
2090          * mloop.in (execute): Only call modeling function if the pointer is not
2091          NULL.
2092          * frv.c (frvbf_model_insn_after): Only access FR500_MODEL_DATA for
2093          fr500.
2094
20952000-01-03  Dave Brolley  <brolley@cygnus.com>
2096
2097          * options.c (OPTION_FRV_MEMORY_LATENCY): New enumerator.
2098          (frv_options): Add --memory-latency.
2099          (frv_option_handler): Handle FRV_OPTION_MEMORY_LATENCY.
2100          * mloop.in (@cpu@_simulate_insn_prefetch): Use cache memory_latency.
2101          * frv.c (SET_ACC_USE_IS_MEDIA_P1): operate on d->curr_acc_p1
2102          (SET_ACC_USE_NOT_MEDIA_P1): operate on d->curr_acc_p1
2103          (SET_ACC_USE_IS_MEDIA_P2): operate on d->curr_acc_p1
2104          (SET_ACC_USE_NOT_MEDIA_P2): operate on d->curr_acc_p1
2105          (update_latencies): Only clear usage flags if the register has no
2106          target latency.
2107          (frvbf_model_insn_before): Update cur_acc_p1 and cur_acc_p2. Use | (or)
2108          not |= (or assgnment).
2109          (frvbf_model_insn_after): Print post processing wait for all insns.
2110          Update prev_acc_p1 and prev_acc_p2.
2111          (frvbf_model_fr500_u_gr_load_store): Use cache memory_latency.
2112          (frvbf_model_fr500_u_fr_load_store): Use cache memory_latency.
2113          (frvbf_model_fr500_u_swap): Use cache memory_latency.
2114          (frvbf_model_fr500_u_media): Use busy_adjustment[4] for out_ACC40Sk.
2115          (frvbf_model_fr500_u_media): Use busy_adjustment[5] for out_ACC40Uk.
2116          (frvbf_model_fr500_u_media_quad_arith): New function.
2117          (frvbf_model_fr500_u_media_dual_mul): New function.
2118          (frvbf_model_fr500_u_media_quad_mul): New function.
2119          (frvbf_model_fr500_u_media_quad_complex): New function.
2120          (frvbf_model_fr500_u_media_dual_expand): New function.
2121          (frvbf_model_fr500_u_media_dual_unpack): New function.
2122          (frvbf_model_fr500_u_media_dual_btoh): New function.
2123          (frvbf_model_fr500_u_media_dual_htob): New function.
2124          (frvbf_model_fr500_u_media_dual_btohe): New function.
2125          (frv_ref_SI): New function.
2126          * cache.h (FRV_CACHE): Add memory_latency field.
2127          * cache.c (frv_cache_init): Initialize memory_latency.
2128          * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2129
21301999-12-17  Dave Brolley  <brolley@cygnus.com>
2131
2132          * sim-if.c (sim_open): Initialize insn prefetch and reset register.
2133          * options.c (OPTIONS_FRV_PROFILE_CACHE): New enumeration.
2134          (OPTIONS_FRV_PROFILE_PARALLEL): New enumeration.
2135          (OPTIONS_FRV_TIMER): New enumeration.
2136          (frv_options): Add --profile-cache, --profile-parallel, --timer.
2137          (frv_option_handler): Override common implementation of -p. Handle
2138          --profile-cache, --profile-parallel, --timer.
2139          * mloop.in (execute): Call profiling functions if the timer interrupt
2140          is enabled.
2141          (@cpu@_simulate_insn_prefetch): New function.
2142          (main loop): Call @cpu@_simulate_insn_prefetch.
2143          * interrupts.c (frv_queue_interrupt): Don't queue two external
2144          interrupts of the same priority.
2145          (frv_queue_external_interrupt): New function.
2146          (frv_external_interrupt): New function.
2147          (handle_interrupt): Handle external interrupts.
2148          (check_reset): New function.
2149          (frv_process_interrupts): Call check_reset.
2150          * frv.c: Include "bfd.h"
2151          (frvbf_h_psr_get_handler): Set the PIL field.
2152          (frvbf_h_psr_set_handler): Get the PIL field.
2153          (DUAL_REG): New macro.
2154          (DUAL_DOUBLE): New macro.
2155          (SET_USE_IS_FPOP): New macro.
2156          (SET_USE_NOT_FPOP): New macro.
2157          (USE_IS_FPOP): New macro.
2158          (SET_USE_IS_MEDIA): New macro.
2159          (SET_USE_NOT_MEDIA): New macro.
2160          (USE_IS_MEDIA_P1): New macro.
2161          (SET_USE_IS_MEDIA_P1): New macro.
2162          (SET_USE_NOT_MEDIA_P1): New macro.
2163          (SET_USE_IS_MEDIA_P2): New macro.
2164          (SET_USE_NOT_MEDIA_P2): New macro.
2165          (USE_IS_MEDIA_P2): New macro.
2166          (SET_ACC_USE_IS_MEDIA_P1): New macro.
2167          (SET_ACC_USE_NOT_MEDIA_P1): New macro.
2168          (ACC_USE_IS_MEDIA_P1): New macro.
2169          (SET_ACC_USE_IS_MEDIA_P2): New macro.
2170          (SET_ACC_USE_NOT_MEDIA_P2): New macro.
2171          (ACC_USE_IS_MEDIA_P2): New macro.
2172          (RESOURCE_IDIV): New macro.
2173          (RESOURCE_FDIV): New macro.
2174          (RESOURCE_SQRT): New macro.
2175          (fr_busy_adjust): New array.
2176          (acc_busy_adjust): New array.
2177          (apply_latency_adjustments): New function.
2178          (update_latencies): New function.
2179          (handle_wait_cycles): New function.
2180          (handle_resource_wait): New function.
2181          (update_target_latencies): New function.
2182          (frvbf_model_insn_before): Add resource latency to cycle counts.
2183          (frvbf_model_insn_after): Add resource latency to cycle counts.
2184          (update_GR_latency): New function.
2185          (update_GRdouble_latency): New function.
2186          (update_FR_latency): New function.
2187          (update_FRdouble_latency): New function.
2188          (decrease_ACC_busy): New function.
2189          (decrease_FR_busy): New function.
2190          (increase_FR_busy): New function.
2191          (update_ACC_latency): New function.
2192          (update_CCR_latency): New function.
2193          (update_idiv_resource_latency): New function.
2194          (update_fdiv_resource_latency): New function.
2195          (update_fsqrt_resource_latency): New function.
2196          (vliw_wait_for_GR): New function.
2197          (vliw_wait_for_GRdouble): New function.
2198          (vliw_wait_for_FR): New function.
2199          (vliw_wait_for_FRdouble): New function.
2200          (vliw_wait_for_CCR): New function.
2201          (vliw_wait_for_ACC): New function.
2202          (vliw_wait_for_idiv_resource): New function.
2203          (vliw_wait_for_fdiv_resource): New function.
2204          (vliw_wait_for_fsqrt_resource): New function.
2205          (enforce_full_fr_latency): New function.
2206          (frvbf_model_fr500_u_exec): New function.
2207          (frvbf_model_fr500_u_integer): New function.
2208          (frvbf_model_fr500_u_imul): New function.
2209          (frvbf_model_fr500_u_idiv): New function.
2210          (frvbf_model_fr500_u_branch): New function.
2211          (frvbf_model_fr500_u_set_hilo): New function.
2212          (frvbf_model_fr500_u_gr_load_store): New function.
2213          (frvbf_model_fr500_u_fr_load_store): New function.
2214          (frvbf_model_fr500_u_swap): New function.
2215          (frvbf_model_fr500_u_fr2fr): New function.
2216          (frvbf_model_fr500_u_fr2gr): New function.
2217          (frvbf_model_fr500_u_spr2gr): New function.
2218          (frvbf_model_fr500_u_gr2fr): New function.
2219          (frvbf_model_fr500_u_gr2spr): New function.
2220          (post_wait_for_FR): New function.
2221          (post_wait_for_FRdouble): New function.
2222          (post_wait_for_ACC): New function.
2223          (post_wait_for_CCR): New function.
2224          (post_wait_for_fdiv): New function.
2225          (post_wait_for_fsqrt): New function.
2226          (adjust_float_register_busy): New function.
2227          (adjust_double_register_busy): New function.
2228          (restore_float_register_busy): New function.
2229          (restore_double_register_busy): New function.
2230          (frvbf_model_fr500_u_float_arith): New function.
2231          (frvbf_model_fr500_u_float_dual_arith): New function.
2232          (frvbf_model_fr500_u_float_div): New function.
2233          (frvbf_model_fr500_u_float_sqrt): New function.
2234          (frvbf_model_fr500_u_float_compare): New function.
2235          (frvbf_model_fr500_u_float_dual_compare): New function.
2236          (frvbf_model_fr500_u_float_convert): New function.
2237          (frvbf_model_fr500_u_media): New function.
2238          (frvbf_model_fr500_u_barrier): New function.
2239          (frvbf_model_fr500_u_membar): New function.
2240          * frv-sim.h (LEUINT): New macro.
2241          (GET_HSR0_SA): New macro.
2242          (struct frv_interrupt_timer): New struct.
2243          (struct frv_interrupt_state): Add timer fiield.
2244          (frv_queue_external_interrupt): New function.
2245          (frv_external_interrupt): New function.
2246          (frv_profile_info): New function.
2247          (PROFILE_CACHE_IDX): New enumerator.
2248          (PROFILE_PARALLEL_IDX): New enumerator.
2249          (PROFILE_cache): New macro.
2250          (PROFILE_parallel): New macro.
2251          (WITH_PROFILE_CACHE_P): New macro.
2252          (WITH_PROFILE_PARALLEL_P): New macro.
2253          * cache.h (FRV_CACHE): Add last_was_hit field.
2254          * cache.c (get_tag): Use new last_was_hit field.
2255          (frv_cache_read): Ditto.
2256          (frv_cache_write): Ditto.
2257          * arch.h,cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2258
22591999-12-13  Dave Brolley  <brolley@cygnus.com>
2260
2261          * frv.c (frvbf_h_spr_set_handler): Handle accumulator guards.
2262          (frvbf_clear_all_accumulators): Pass frvbf_h_acc40S_set to
2263          sim_queue_fn_di_write.
2264          (frvbf_media_cut_ss): New function.
2265          * frv-sim.h (frvbf_media_cut_ss): New function.
2266          * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2267
22681999-12-13  Dave Brolley  <brolley@cygnus.com>
2269
2270          * pipeline.c (check_insn_major_constraints): F-4, F-8 and M-8 have
2271          no constraints.
2272          * interrupts.c (frv_queue_illegal_instruction_interrupt): Use
2273          FRV_IS_FLOAT_INSN and FRV_IS_MEDIA_INSN.
2274          (frv_detect_insn_access_interrupts): Use FRV_IS_FLOAT_INSN and
2275          FRV_IS_MEDIA_INSN.
2276          * frv.c (frvbf_model_simple_u_exec): New function.
2277          * frv-sim.h (FRV_IS_FLOAT_INSN): Range includes F-8.
2278          (FRV_IS_MEDIA_INSN): Range includes M-8.
2279
2280          * Makefile.in (stamp-cpu): add 'simple' to the list of machines.
2281          * arch.c,arch.h,cpu.h,cpuall.h,decode.c,decode.h,model.c,sem.c:
2282          Regenerate.
2283
22841999-12-10  Dave Brolley  <brolley@cygnus.com>
2285
2286          * traps.c (check_registers_available): New function.
2287          (clear_ne_flags): Generate register_exception if register(s) not
2288          available.
2289          (frvbf_commit): Generate register_exception if register(s) not
2290          available.
2291          * interrupts.c (frv_program_or_software_interrupt): No need to copy
2292          GR4-GR7 to SR0-SR4.
2293          * frv.c (frvbf_h_psr_set_handler): Special handling for PSR.S and
2294          PSR.ESR.
2295          (frvbf_h_psr_s_set_handler): New function.
2296          (frvbf_h_psr_esr_set_handler): New function.
2297          (frvbf_switch_supervisor_user_context): New function.
2298          (frvbf_scan_result): Reflect latest ISA.
2299          * frv-sim.h (frvbf_h_psr_s_set_handler): New function.
2300          (frvbf_h_psr_esr_set_handler): New function.
2301          (frvbf_switch_supervisor_user_context): New function.
2302          (GET_HSR0_FRN): New Macro.
2303          (GET_HSR0_GRN): New Macro.
2304          (GET_HSR0_FRHE): New Macro.
2305          (GET_HSR0_FRLE): New Macro.
2306          (GET_HSR0_GRHE): New Macro.
2307          (GET_HSR0_GRLE): New Macro.
2308          (frv_ec): New value for FRV_EC_COMMIT_EXCEPTION.
2309          (GET_ESFR): New bit ordering.
2310          (SET_ESFR): New bit ordering.
2311          * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2312
23131999-12-10  Michael Meissner  <meissner@cygnus.com>
2314
2315          * Makefile.in (sim-if.o): Add eng.h dependency.
2316
23171999-12-09  Dave Brolley  <brolley@cygnus.com>
2318
2319          * mloop.in (execute): Pass sc->first_insn_p to @cpu@_model_insn_before.
2320          Pass sc->last_insn_p to @cpu@_model_insn_before.
2321          (main loop): Compute sc->first_insn_p.
2322          * frv.c (frvbf_model_insn_before): Set state variables.
2323          (frvbf_model_insn_after): Count basic cycles. Set state variables.
2324          (frvbf_model_fr500_u_integer): Remove.
2325          * arch.h,cpu.h,decode.h,model.c: Regenerate.
2326
23271999-12-07  Dave Brolley  <brolley@cygnus.com>
2328
2329          * sim-main.h (cache.h): Include it.
2330          (insn_cache): New member.
2331          (data_cache): New member.
2332          (CPU_INSN_CACHE): New macro.
2333          (CPU_DATA_CACHE): New macro.
2334          * sim-if.c (WANT_CPU): New macro.
2335          (WANT_CPU_FRVBF): New macro.
2336          (sim_open): Call sim_add_option_table. Call frv_cache_init for the
2337          data and insn caches for each cpu.
2338          (sim_close): Call frv_cache_term for the insn and data caches of each
2339          cpu.
2340          * mloop.in (extract): Read insn from the cache.
2341          (main loop): Access the insn cache in order to maintain stats.
2342          * memory.c (data_non_cache_access): New function.
2343          (insn_non_cache_access): New function.
2344          (frvbf_read_mem_QI): Attempt to read from the cache first.
2345          (frvbf_read_mem_UQI): Ditto.
2346          (frvbf_read_mem_HI): Ditto.
2347          (frvbf_read_mem_UHI): Ditto.
2348          (frvbf_read_mem_SI): Ditto.
2349          (frvbf_read_mem_DI): Ditto.
2350          (frvbf_read_mem_DF): Ditto.
2351          (frvbf_read_imem_USI): New function.
2352          (frvbf_write_mem_QI): Write through the cache is it is enabled.
2353          (frvbf_write_mem_UQI): Ditto.
2354          (frvbf_write_mem_HI): Ditto.
2355          (frvbf_write_mem_UHI): Ditto.
2356          (frvbf_write_mem_SI): Ditto.
2357          (frvbf_write_mem_DI): Ditto.
2358          (frvbf_write_mem_DF): Ditto.
2359          (frvbf_mem_set_QI): New function.
2360          (frvbf_mem_set_HI): New function.
2361          (frvbf_mem_set_SI): New function.
2362          (frvbf_mem_set_DI): New function.
2363          (frvbf_mem_set_DF): New function.
2364          (frvbf_mem_set_XI): New function.
2365          * interrupts.c (frv_save_data_written_for_interrupts): Handle
2366          CGEN_FN_MEM_QI_WRITE,
2367          CGEN_FN_MEM_HI_WRITE, CGEN_FN_MEM_SI_WRITE, CGEN_FN_MEM_DI_WRITE,
2368          CGEN_FN_MEM_DF_WRITE, CGEN_FN_MEM_XI_WRITE.
2369          * frv.c (frvbf_load_quad_GR): Call frvbf_read_mem_SI.
2370          Call sim_queue_fn_mem_xi_write.
2371          (frvbf_load_quad_FRint): Call frvbf_read_mem_SI.
2372          Call sim_queue_fn_mem_xi_write.
2373          (frvbf_load_quad_CPR): Call frvbf_read_mem_SI.
2374          Call sim_queue_fn_mem_xi_write.
2375          (frvbf_insn_cache_preload): New function.
2376          (frvbf_data_cache_preload): New function.
2377          (frvbf_insn_cache_unlock): New function.
2378          (frvbf_data_cache_unlock): New function.
2379          (frvbf_insn_cache_invalidate): New function.
2380          (frvbf_data_cache_invalidate): New function.
2381          (frvbf_data_cache_flush): New function.
2382          * frv-sim.h (sim-options.h): Include it.
2383          (GET_HSR0): New macro.
2384          (SET_HSR0): New macro.
2385          (GET_HSR0_ICE): New macro.
2386          (SET_HSR0_ICE): New macro.
2387          (GET_HSR0_DCE): New macro.
2388          (SET_HSR0_DCE): New macro.
2389          (GET_HSR0_CBM): New macro.
2390          (GET_HSR0_RME): New macro.
2391          (GET_IHSR8): New macro.
2392          (GET_IHSR8_NBC): New macro.
2393          (frvbf_insn_cache_preload): New function.
2394          (frvbf_data_cache_preload): New function.
2395          (frvbf_insn_cache_unlock): New function.
2396          (frvbf_data_cache_unlock): New function.
2397          (frvbf_insn_cache_invalidate): New function.
2398          (frvbf_data_cache_invalidate): New function.
2399          (frvbf_data_cache_flush): New function.
2400          (insn_non_cache_access): New function.
2401          (frvbf_read_imem_USI): New function.
2402          (frvbf_mem_set_QI): New function.
2403          (frvbf_mem_set_HI): New function.
2404          (frvbf_mem_set_SI): New function.
2405          (frvbf_mem_set_DI): New function.
2406          (frvbf_mem_set_DF): New function.
2407          (frvbf_mem_set_XI): New function.
2408          (frv_options): FRV specific command line options.
2409          * Makefile.in (SIM_OBJS): Add options.o and cache.o.
2410          (SIM_EXTRA_DEPS): Add $(sim-options_h).
2411          (cache.o): New target.
2412          (options.o): New target.
2413          * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2414          * cache.h: New file.
2415          * cache.c: New file.
2416          * options.c: New file.
2417
24181999-11-29  Dave Brolley  <brolley@cygnus.com>
2419
2420          * traps.c (frvbf_check_non_excepting_load): Use new NE_FLAG macros.
2421          (frvbf_check_non_excepting_divide): Ditto.
2422          (clear_ne_flags): Ditto
2423          (frvbf_commit): Ditto.
2424          * pipeline.c (frv_pipeline_add_insn): Clear the NE index for all insns.
2425          * mloop.in (_parallel_write_init): Clear NE flags here.
2426          * interrupts.c (frv_queue_fp_exception_interrupt): Set NE flags here
2427          for non excepting insns. Also check for masked interrupts here.
2428          (frv_process_interrupts): Write NE flags here.
2429          (set_fp_exception_registers): No longer check for masked interrupts
2430          here.
2431          (check_for_compound_interrupt): No need to worry about masked
2432          interrupts.
2433          * frv-sim.h (frv_interrupt_state): Add f_ne_flags member.
2434          (GET_NE_FLAGS): New macro.
2435          (SET_NE_FLAGS): New macro.
2436          (GET_NE_FLAG): Operate on accumulated argument.
2437          (SET_NE_FLAG): Operate on accumulated argument.
2438          (CLEAR_NE_FLAG): Operate on accumulated argument.
2439          * Makefile.in (FRVBF_INCLUDE_DEPS): Add $(SIM_EXTRA_DEPS)
2440          (frv.o): Correct dependencies.
2441          (traps.o): Ditto.
2442          (pipeline.o): Ditto.
2443          (interrupts.o): Ditto.
2444          (memory.o): Ditto.
2445          * sem.c: Regenerate.
2446
24471999-11-26  Dave Brolley  <brolley@cygnus.com>
2448
2449          * traps.c (frvbf_fpu_error): Only call frv_queue_fp_exception if
2450          there is an exception indicated in the mask.
2451          * pipeline.c (frv_pipeline_add_insn): Clear ne_index in the interrupt
2452          state when adding a floating point insn to the pipeline.
2453          * interrupts.c (set_fp_exception_registers): Set NE flag for
2454          non-excepting insns.
2455          * frv-sim.h (frvbf_h_fr_double_get_handler): Mode of data is DF.
2456          (frvbf_h_fr_double_set_handler): Mode of data is DF.
2457          (frvbf_h_fr_int_get_handler): New function.
2458          (frvbf_h_fr_int_set_handler): New function.
2459          (frvbf_set_ne_index): New function.
2460          (NE_NOFLAG): New macro.
2461          (frv_interrupt_state): Add ne_index member.
2462          * frv.c (frvbf_h_fr_double_get_handler): Mode of data is DF.
2463          (frvbf_h_fr_double_set_handler): Mode of data is DF.
2464          (frvbf_h_fr_int_get_handler): New function.
2465          (frvbf_h_fr_int_set_handler): New function.
2466          (frvbf_set_ne_index): New function.
2467          * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2468
24691999-11-24  Dave Brolley  <brolley@cygnus.com>
2470
2471          * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2472
24731999-11-23  Dave Brolley  <brolley@cygnus.com>
2474
2475          * frv-sim.h (frvbf_media_cut): New function.
2476          * frv.c (frvbf_media_cut): New function.
2477          * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2478
24791999-11-22  Dave Brolley  <brolley@cygnus.com>
2480
2481          * frv-sim.h (frvbf_clear_all_accumulators): New function.
2482          * frv.c.h (frvbf_clear_all_accumulators): New function.
2483          * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2484
24851999-11-18  Dave Brolley  <brolley@cygnus.com>
2486
2487          * pipeline.c (frv_pipeline_add_insn): Only clear MSR0 and FSR0 fields
2488          if this is the first insn of its class in the pipeline.
2489          * frv-sim.h (frvbf_media_register_not_aligned): New function.
2490          * traps.c (frvbf_media_register_not_aligned): New function.
2491          * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2492
24931999-11-17  Dave Brolley  <brolley@cygnus.com>
2494
2495          * pipeline.c (frv_pipeline_add_insn): Clear MSRx.SIE fields.
2496          * frv-sim.h (OR_MSR_SIE): New macro.
2497          (CLEAR_MSR_SIE): New macro.
2498          (frvbf_media_overflow): Now takes sie argument.
2499          (frv_set_mp_exception_registers): Now takes sie argument.
2500          * interrupts.c (frv_set_mp_exception_registers): Now takes sie argument.
2501          Set MSRx.SIE field.
2502          * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2503
25041999-11-15  Dave Brolley  <brolley@cygnus.com>
2505
2506          * traps.c (frv_mtrap): New function.
2507          (frvbf_media_cr_not_aligned): New function.
2508          (frvbf_media_acc_not_aligned): New function.
2509          (frvbf_media_overflow): New function.
2510          * pipeline.c (frv_pipeline_add_insn): Clear MSR fields.
2511          * interrupts.c: Call frv_set_mp_exception_registers.
2512          (frv_set_mp_exception_registers): New function.
2513          * frv-sim.h (frv_msr_mtt): New enumeration.
2514          (GET_MSR): New macro.
2515          (SET_MSR): New macro.
2516          (GET_MSR_AOVF): New macro.
2517          (SET_MSR_AOVF): New macro.
2518          (GET_MSR_OVF): New macro.
2519          (SET_MSR_OVF): New macro.
2520          (CLEAR_MSR_OVF): New macro.
2521          (GET_MSR_MTT): New macro.
2522          (SET_MSR_MTT): New macro.
2523          (frv_set_mp_exception_registers): New function.
2524          (frv_mtrap): New function.
2525          (FRV_IS_MEDIA_INSN): New macro.
2526          * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2527
25281999-11-10  Dave Brolley  <brolley@cygnus.com>
2529
2530          * sim-main.h (_sim_cpu): Add debug_state member.
2531          * mloop.in (_parallel_write_queued): Clear data_written.length.
2532          * interrupts.c (frv_interrupt_table): Offset of BREAK_EXCEPTION
2533          handler is 0xff.
2534          (frv_queue_break_interrupt): New function.
2535          (frv_break_interrupt): New function.
2536          (handle_interrupt): Handle break_interrupt.
2537          (frv_non_operating_interrupt): Now takes interrupt_kind.
2538          * frv-sim.h (frv_queue_break_interrupt): New function.
2539          (frv_break_interrupt): New function.
2540          (frv_break): New function.
2541          (frv_non_operating_interrupt): Now takes interrupt_kind.
2542          * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
2543
25441999-11-09  Dave Brolley  <brolley@cygnus.com>
2545
2546          * pipeline.c (frv_pipeline_add_insn): Clear FSR0.FTT when adding
2547          a floating point insn.
2548          * traps.c (frvbf_fpu_error): Map fpu status to frv interrupts.
2549          * interrupts.c (frv_queue_illegal_instruction_interrupt): Call
2550          frv_queue_fp_exception_interrupt.
2551          (frv_queue_fp_exception_interrupt): New function.
2552          (next_available_fq): New function.
2553          (set_fp_exception_registers): New function.
2554          (set_exception_status_registers): Now returns 1 if interrupt not masked.
2555          (check_for_compound_interrupt): Now returns NULL if interrupt masked.
2556          (frv_program_interrupt): Don't process interrupt if it is masked.
2557          * frv.c (frvbf_h_fr_double_get_handler): Call
2558          frv_queue_fp_exception_interrupt.
2559          (frvbf_h_fr_double_set_handler): Call frv_queue_fp_exception_interrupt.
2560          (frvbf_h_fr_quad_set_handler): Call frv_queue_fp_exception_interrupt.
2561          (frvbf_store_quad_FRint): Call frv_queue_fp_exception_interrupt.
2562          * frv-sim.h: Get/set hardware directly in GET/SET macros.
2563          (frv_fp_exception_info): New struct type.
2564          (frv_interrupt_queue_element): Add fp_info member.
2565          (frv_fsr_traps): New enumeration.
2566          (frv_fsr_ftt): New enumeration.
2567          (frv_sie): New enumeration.
2568          (frv_miv): New enumeration.
2569          (GET_FSR): New macro.
2570          (SET_FSR): New macro.
2571          (GET_FSR_TEM): New macro.
2572          (SET_FSR_QNE): New macro.
2573          (SET_FSR_FTT): New macro.
2574          (GET_FSR_AEXC): New macro.
2575          (SET_FSR_AEXC): New macro.
2576          (GET_FQ): New macro.
2577          (SET_FQ): New macro.
2578          (SET_FQ_OPC): New macro.
2579          (SET_FQ_MIV): New macro.
2580          (SET_FQ_SIE): New macro.
2581          (SET_FQ_FTT): New macro.
2582          (SET_FQ_CEXC): New macro.
2583          (GET_FQ_VALID): New macro.
2584          (SET_FQ_VALID): New macro.
2585          (frv_queue_fp_exception_interrupt): New function.
2586          (FRV_IS_FLOAT_INSN): New macro.
2587
25881999-11-04  Dave Brolley  <brolley@cygnus.com>
2589
2590          * traps.c (frvbf_fpu_error): No floating point errors need to be
2591          detected.
2592          * interrupts.c (clear_exception_status_registers): Clear 'valid' fields
2593          of the ESR registers too.
2594          (set_exception_status_registers): Don't set EAR for any precise
2595          interrupts. Register index should be 1 for insns in PIPE_I1. Clear
2596          ESR.EAV and ESR.EDV if not setting them. Set ESR.VALID.
2597          (non_operating_interrupt): No need for return code.
2598          (frv_program_or_software_interrupt): Process interrupt regardless
2599          of operating mode. If PSR.ET was not set at the start of processing,
2600          then stop the simulation with a message.
2601          (frv_save_data_written_for_interrupts): Handle CGEN_FN_XI_WRITE and
2602          CGEN_MEM_XI_WRITE.
2603          * frv.c (frvbf_h_gr_quad_set_handler): New function.
2604          (frvbf_h_fr_quad_set_handler): New function.
2605          (frvbf_h_cpr_quad_set_handler): New function.
2606          (frvbf_load_quad_GR): Renamed from frvbf_load_multiple_GR. Use new
2607          sim_queue_fn_xi_write.
2608          (frvbf_load_quad_FRint): Renamed from frvbf_load_multiple_GR. Use new
2609          sim_queue_fn_xi_write.
2610          (frvbf_load_quad_CPR): Renamed from frvbf_load_multiple_GR. Use new
2611          sim_queue_fn_xi_write.
2612          (frvbf_store_quad_GR): Renamed from frvbf_store_multiple_GR. Use new
2613          sim_queue_mem_xi_write.
2614          (frvbf_store_quad_FRint): Renamed from frvbf_store_multiple_GR. Use new
2615          sim_queue_mem_xi_write.
2616          (frvbf_store_quad_CPR): Renamed from frvbf_store_multiple_GR. Use new
2617          sim_queue_mem_xi_write.
2618          * frv-sim.h (frvbf_h_gr_quad_set_handler): New function.
2619          (frvbf_h_fr_quad_set_handler): New function.
2620          (frvbf_h_cpr_quad_set_handler): New function.
2621          (SET_ESR_VALID): New macro.
2622          (CLEAR_ESR_VALID): New macro.
2623          (CLEAR_ESR_EAV): New macro.
2624          (CLEAR_ESR_EDV): New macro.
2625          * sem.c: Regenerate.
2626
26271999-11-02  Dave Brolley  <brolley@cygnus.com>
2628
2629          * traps.c (frv_core_signal): Call
2630          frv_queue_mem_address_not_aligned_interrupt.
2631          * mloop.in (_parallel_write_queued): Call
2632          frv_save_data_written_for_interrupts.
2633          * frv.c (frvbf_h_gr_double_get_handler): Call
2634          frv_queue_register_exception_interrupt.
2635          (frvbf_h_cpr_double_get_handler): Call
2636          frv_queue_register_exception_interrupt.
2637          (frvbf_h_cpr_double_set_handler): Call
2638          frv_queue_register_exception_interrupt.
2639          (frvbf_load_multiple_GR): Call
2640          frv_queue_register_exception_interrupt.
2641          (frvbf_store_multiple_GR): Call
2642          frv_queue_register_exception_interrupt.
2643          (frvbf_load_multiple_CPR): Call
2644          frv_queue_register_exception_interrupt.
2645          (frvbf_store_multiple_CPR): Call
2646          frv_queue_register_exception_interrupt.
2647          (frvbf_h_tbr_get_handler): Fix TBR.TBA mask.
2648          * interrupts.c (frv_queue_software_interrupt): Now returns interrupt
2649          queue element.
2650          (frv_queue_program_interrupt): Now returns interrupt queue element.
2651          (frv_queue_illegal_instruction_interrupt): Now returns interrupt queue
2652          element.
2653          (frv_queue_interrupt): Now returns interrupt queue element.
2654          (frv_queue_register_exception_interrupt): New function.
2655          (frv_queue_mem_address_not_aligned_interrupt): New function.
2656          (frv_save_data_written_for_interrupts): New function.
2657          (next_available_edr): EDR registers available in blocks of 4.
2658          (clear_exception_status_registers): New function.
2659          (set_exception_status_registers): Pass esr to SET_ESR* macros.
2660
2661          * frv-sim.h (struct frv_data_written): New struct type.
2662          (frv_interrupt_queue_element): Add data_written member.
2663          (frv_queue_software_interrupt): Now returns interrupt queue element.
2664          (frv_queue_program_interrupt): Now returns interrupt queue element.
2665          (frv_queue_illegal_instruction_interrupt): Now returns interrupt queue
2666          element.
2667          (frv_queue_interrupt): Now returns interrupt queue element.
2668          (frv_queue_register_exception_interrupt): New function.
2669          (frv_queue_mem_address_not_aligned_interrupt): New function.
2670          (frv_save_data_written_for_interrupts): New function.
2671
26721999-10-27  Dave Brolley  <brolley@cygnus.com>
2673
2674          * interrupts.c (ITABLE_ENTRY): New macro.
2675          (frv_interrupt_table): Add exception codes.
2676          (next_available_esr): New function.
2677          (next_available_edr): New function.
2678          (set_edr_register): New function.
2679          (set_exception_status_registers): New function.
2680          (check_for_compound_interrupt): Record information on all interrupts
2681          found.
2682          (frv_program_interrupt): Always call check_for_compound_interrupt.
2683          * frv.c (frvbf_h_pc_set_handler): Removed.
2684          (frvbf_h_spr_get_handler): Handle LR register.
2685          (frvbf_h_spr_set_handler): Handle LR register.
2686          (frvbf_h_lr_get_handler): New function.
2687          (frvbf_h_lr_set_handler): New function.
2688          * frv-sim.h (frvbf_h_lr_get_handler): New function.
2689          (frvbf_h_lr_set_handler): New function.
2690          (frv_ec): New enumeration.
2691          (frv_interrupt): Add frv_ec field.
2692          (frv_rec): New enumeration.
2693          (frv_daec): New enumeration.
2694          (frv_interrupt_queue_element): Add eaddress, rec, iaec, daec fields.
2695          (SET_ESR_EC): New macro.
2696          (SET_ESR_REC): New macro.
2697          (SET_ESR_IAEC): New macro.
2698          (SET_ESR_DAEC): New macro.
2699          (SET_ESR_EAV): New macro.
2700          (GET_ESR_EDV): New macro.
2701          (SET_ESR_EDV): New macro.
2702          (GET_ESR_EDN): New macro.
2703          (SET_ESR_EDN): New macro.
2704          (GET_ESR): New macro.
2705          (SET_ESR): New macro.
2706          (SET_EPCR): New macro.
2707          (SET_EAR): New macro.
2708          (SET_EDR): New macro.
2709          (GET_ESFR): New macro.
2710          (SET_ESFR): New macro.
2711          * cpu.c,cpu.h,sem.c: Rebuild.
2712
27131999-10-26  Dave Brolley  <brolley@cygnus.com>
2714
2715          * traps.c (frvbf_check_non_excepting_load): Only set NESR, NECR, NEEAR
2716          if mach is frv.
2717          (clear_nesr_neear): Only execute if mach is frv.
2718
27191999-10-22  Dave Brolley  <brolley@cygnus.com>
2720
2721          * sim-main.h (sim_cpu): Add pipeline.
2722          (CPU_PIPELINE): New macro.
2723          * mloop.in (_parallel_write_queued): Maintain pc in cpu during writes.
2724          (main loop): Maintain pc in cpu.
2725          * frv-sim.h (frv_queue_software_interrupt): New interface.
2726          (frv_queue_program_interrupt): New interface.
2727          (frv_queue_illegal_instruction_interrupt: New interface.
2728          (frv_queue_interrupt): New interface.
2729          (frv_detect_insn_access_interrupts): New interface.
2730          (frv_process_interrupts): New interface.
2731          (frv_program_interrupt): New interface.
2732          (frv_software_interrupt): New interface.
2733          (frv_program_or_software_interrupt): New interface.
2734          (FRV_PIPELINE): Moved from pipline.c.
2735          (frv_pipeline_reset): New interface.
2736          (frv_pipeline_add_insn): New interface.
2737          * interrupts.c (frv_queue_software_interrupt): New interface.
2738          (frv_queue_program_interrupt): New interface.
2739          (frv_queue_illegal_instruction_interrupt: New interface.
2740          (frv_queue_interrupt): New interface.
2741          (frv_detect_insn_access_interrupts): New interface.
2742          (frv_process_interrupts): New interface.
2743          (frv_program_interrupt): New interface.
2744          (frv_software_interrupt): New interface.
2745          (frv_program_or_software_interrupt): New interface.
2746          * frv.c: Use new interfaces.
2747          * pipeline.c: Use new interfaces.
2748          * traps.c: Use new interfaces.
2749          * memory.c: Use new interfaces.
2750          (frv_address_forbidden): No longer static.
2751
27521999-10-19  Dave Brolley  <brolley@cygnus.com>
2753
2754          * traps.c (frvbf_check_non_excepting_load): Set NESR.DAEC, NESR.REC and
2755          NESR.EC.
2756          * mloop.in (_parallel_write_queued): Handle CGEN_FN_PC_WRITE.
2757          * frv.c (frvbf_h_pc_set_handler): New function.
2758          * interrupts.c (frv_detect_data_interrupt): Removed.
2759          (address_forbidden): Removed.
2760          * frv-sim.h (frv_detect_data_interrupt): Removed.
2761          (NESR_MEM_ADDRESS_NOT_ALIGNED): New macro.
2762          (NESR_REGISTER_NOT_ALIGNED): New macro.
2763          (NESR_UQI_SIZE): New macro.
2764          (NESR_QI_SIZE): New macro.
2765          (NESR_UHI_SIZE): New macro.
2766          (NESR_HI_SIZE): New macro.
2767          (NESR_SI_SIZE): New macro.
2768          (NESR_DI_SIZE): New macro.
2769          (NESR_XI_SIZE): New macro.
2770          (GET_NESR_DAEC): New macro.
2771          (SET_NESR_DAEC): New macro.
2772          (GET_NESR_REC): New macro.
2773          (SET_NESR_REC): New macro.
2774          (GET_NESR_EC): New macro.
2775          (SET_NESR_EC): New macro.
2776          (frvbf_read_mem_QI): New function.
2777          (frvbf_read_mem_UQI): New function.
2778          (frvbf_read_mem_HI): New function.
2779          (frvbf_read_mem_UHI): New function.
2780          (frvbf_read_mem_SI): New function.
2781          (frvbf_read_mem_WI): New function.
2782          (frvbf_read_mem_DI): New function.
2783          (frvbf_read_mem_DF): New function.
2784          (frvbf_write_mem_QI): New function.
2785          (frvbf_write_mem_UQI): New function.
2786          (frvbf_write_mem_HI): New function.
2787          (frvbf_write_mem_UHI): New function.
2788          (frvbf_write_mem_SI): New function.
2789          (frvbf_write_mem_WI): New function.
2790          (frvbf_write_mem_DI): New function.
2791          (frvbf_write_mem_DF): New function.
2792          * Makefile.in (SIM_OBJS): Add memory.o.
2793          * cpu.c,cpu.h,sem.c: Rebuild.
2794
27951999-10-18  Dave Brolley  <brolley@cygnus.com>
2796
2797          * sim-if.c (sim_open): Use a real fpu error function.
2798          * pipeline.c (frv_pipeline_add_insn): Don't add invalid insns.
2799          * mloop.in (_parallel_write_queued): Clear queue after writing.
2800          * interrupts.c (check_for_compound_interrupt): New function.
2801          (non_operating_interrupt): New function.
2802          * frv-sim.h (frvbf_h_gr_double_get_handler): New function.
2803          (frvbf_h_gr_double_set_handler): New function.
2804          (frvbf_h_fr_double_get_handler): New function.
2805          (frvbf_h_fr_double_set_handler): New function.
2806          (frvbf_h_cpr_double_get_handler): New function.
2807          (frvbf_h_cpr_double_set_handler): New function.
2808          (frv_interrupt_queue_element): New struct type.
2809          (frv_queue_program_interrupt): Now takes pc.
2810          (frv_queue_illegal_instruction_interrupt): Now takes pc.
2811          (frv_queue_interrupt): Now takes pc.
2812          (frv_program_interrupt): Now takes frv_interrupt_queue_element.
2813          (frv_software_interrupt): Now takes frv_interrupt_queue_element.
2814          (frvbf_division_exception): New function.
2815          (frvbf_fpu_error): New function.
2816          (frvbf_load_multiple_GR): New function.
2817          (frvbf_load_multiple_FR): New function.
2818          (frvbf_load_multiple_CPR): New function.
2819          * frv.c (frvbf_h_gr_double_get_handler): New function.
2820          (frvbf_h_gr_double_set_handler): New function.
2821          (frvbf_h_fr_double_get_handler): New function.
2822          (frvbf_h_fr_double_set_handler): New function.
2823          (frvbf_h_cpr_double_get_handler): New function.
2824          (frvbf_h_cpr_double_set_handler): New function.
2825          (frv_interrupt_queue_element): New struct type.
2826          (frv_queue_program_interrupt): Now takes pc.
2827          (frv_queue_illegal_instruction_interrupt): Now takes pc.
2828          (frv_queue_interrupt): Now takes pc.
2829          (frv_program_interrupt): Now takes frv_interrupt_queue_element.
2830          (frv_software_interrupt): Now takes frv_interrupt_queue_element.
2831          (frvbf_fpu_error): New function.
2832          (frvbf_load_multiple_GR): New function.
2833          (frvbf_load_multiple_FR): New function.
2834          (frvbf_load_multiple_CPR): New function.
2835          * traps.c (frvbf_division_exception): New function.
2836          * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
2837
28381999-10-12  Dave Brolley  <brolley@cygnus.com>
2839
2840          * mloop.in (new_vpc): New variable.
2841          (main loop): Call frv_detect_insn_access_interrupts. Call
2842          frv_detect_data_interrupts.
2843          * interrupts.c (access_queued_to): New function.
2844          (frv_detect_data_interrupts): New function.
2845          (frv_detect_insn_access_interrupts): New function.
2846          (frv_program_or_software_interrupt): Set PSR.S.
2847          * frv-sim.h (frv_detect_data_interrupts): New function.
2848          (frv_detect_insn_interrupts): New function.
2849
28501999-10-07  Dave Brolley  <brolley@cygnus.com>
2851
2852          * frv-sim.h (frvbf_h_gr_hi_get_handler): New function.
2853          (frvbf_h_gr_hi_set_handler): New function.
2854          (frvbf_h_gr_lo_get_handler): New function.
2855          (frvbf_h_gr_lo.set_handler): New function.
2856          * frv.c (frvbf_h_gr_hi_get_handler): New function.
2857          (frvbf_h_gr_hi_set_handler): New function.
2858          (frvbf_h_gr_lo_get_handler): New function.
2859          (frvbf_h_gr_lo.set_handler): New function.
2860          (frvbf_model_fr500_u_integer): New function.
2861          * arch.h,cpu.h,cpu.c,decode.h,decode.c,model.c,sem.c: Rebuild.
2862
28631999-10-04  Dave Brolley  <brolley@cygnus.com>
2864
2865          * traps.c: Use sim_engine_abort.
2866          * pipeline.c (frv_pipeline): Add field for insn major.
2867          (add_next_to_pipe): Return address of matching pipeline.
2868          (find_major_in_pipeline): New function.
2869          (check_insn_major_constraints: New function.
2870          (frv_pipeline_add_insn): Add checks for insn major constraints.
2871          * interrupts.c (frv_process_interrupts): Use sim_engine_abort.
2872          * frv.c (frvbf_h_spr_get_handler): No need to abort.
2873
2874Thu Sep 30 18:10:25 1999  Dave Brolley  <brolley@cygnus.com>
2875
2876          * pipeline.c: New file.
2877          * mloop.in (main loop): Call frv_pipeline_reset.
2878          Call frv_pipeline_add_insn.
2879          * frv-sim.h (frv_pipeline_reset): New function.
2880          (frv_pipeline_add_insn): New function.
2881          * Makefile.in (SIM_OBJS): Add pipeline.o
2882
28831999-09-29  Doug Evans  <devans@casey.cygnus.com>
2884
2885          * sem.c: Rebuild.
2886          * traps.c (sim_engine_invalid_insn): New arg `vpc'.  Change type of
2887          result to SEM_PC.  Return vpc.
2888
2889Wed Sep 29 16:01:52 1999  Dave Brolley  <brolley@cygnus.com>
2890
2891          * interrupts.c (frv_interrupt_table): DATA_STORE_ERROR is imprecise.
2892          (frv_queue_interrupt): Don't detect identical interrupts here.
2893
2894Wed Sep 29 14:49:52 1999  Dave Brolley  <brolley@cygnus.com>
2895
2896          * interrupts.c: New file.
2897          * traps.c (sim_engine_invalid_insn): Return PC of next insn.
2898          (frv_software_interrupt): Moved to interrupts.c.
2899          (frv_itrap): New interface. Call frv_queue_software_interrupt.
2900          * mloop.in (@cpu@_parallel_write_init): set previous_vliw_pc.
2901          (@cpu@_perform_writeback): New function.
2902          (main loop): Call frv_process_interrupts.
2903          * frv-sim.h (frvbf_write_next_vliw_addr_to_PCSR): Removed.
2904          (frv_itrap): New interface.
2905          (frv_interrupt_class): New enumeration.
2906          (frv_interrupt_kind): New enumeration.
2907          (struct frv_interrupt): New struct type.
2908          (frv_interrupt_table): New table of interrupt information.
2909          (FRV_INTERRUPT_QUEUE_SIZE): New macro.
2910          (struct frv_interrupt_state): New struct type.
2911          (frv_interrupt_state): New global variable.
2912          (previous_vliw_pc): New global variable.
2913          (frv_queue_software_interrupt): New function.
2914          (frv_queue_program_interrupt): New function.
2915          (frv_queue_interrupt): New function.
2916          (frv_process_interrupts): New function.
2917          (frv_program_interrupt): New function.
2918          (frv_software_interrupt): New function.
2919          (frv_program_or_software_interrupt): New function.
2920          (frv_clear_interrupt_classes): New function.
2921          * frv.c (frvbf_write_next_vliw_addr_to_PCSR): Removed.
2922          * Makefile.in (SIM_OBJS): Add interrupts.o
2923          * sem.c: Rebuild.
2924
29251999-09-25  Doug Evans  <devans@casey.cygnus.com>
2926
2927          * cpu.h,cpuall.h,decode.c,sem.c: Rebuild.
2928
2929Tue Sep 21 17:16:47 1999  Dave Brolley  <brolley@cygnus.com>
2930
2931          * mloop.in (main loop): Determine last insn from scache entry.
2932          * cpu.h: Rebuild.
2933          * cpuall.h: Rebuild.
2934
2935Tue Sep 14 14:21:31 1999  Dave Brolley  <brolley@cygnus.com>
2936
2937          * frv-sim.h (frvbf_write_next_vliw_addr_to_PCSR): New flag.
2938          (NECR_ELOS): Define as unshifted value.
2939          (NECR_NEN): Define as unshifted value.
2940          (NECR_VALID): Define as unshifted value.
2941          (SET_NESR): Rewite to use post-write queue.
2942          (SET_NESR_VALID): Rewite to operate on argument.
2943          (SET_NESR_EAV): Rewite to operate on argument.
2944          (SET_NESR_FR): Rewite to operate on argument.
2945          (CLEAR_NESR_FR): Rewite to operate on argument.
2946          (SET_NESR_DRN): Rewite to operate on argument.
2947          (SET_NESR_SIZE): Rewite to operate on argument.
2948          (SET_NESR_NEAN): Rewite to operate on argument.
2949          (SET_NEEAR): Rewite to use post-write queue.
2950          (SET_NE_FLAG): Rewite to use post-write queue.
2951          (CLEAR_NE_FLAG): Rewite to use post-write queue.
2952          * traps.c (frv_software_interrupt): Rewite to use post-write queue.
2953          (frv_rett): Rewite to use post-write queue.
2954          (next_available_nesr): Rewrite to use new macro interfaces.
2955          (next_valid_nesr): Ditto.
2956          (frvbf_check_non_excepting_load): Ditto.
2957          (frvbf_check_recovering_store): Ditto.
2958          (clear_nesr_neear): Ditto.
2959          (clear_ne_flags): Ditto.
2960          * mloop.in (main loop): Update PCSR with address of next VLIW insn
2961          when flag is set.
2962          * frv.c (frvbf_h_spr_get_handler): Shift register fields here now.
2963          (frvbf_store_multiple_GR): Rewite to use post-write queue.
2964          (frvbf_store_multiple_FRint): Rewite to use post-write queue.
2965          (frvbf_store_multiple_CPR): Rewite to use post-write queue.
2966          * Makefile.in (frv.o): Depend on cgen-par.h.
2967
2968Fri Sep 10 17:03:15 1999  Dave Brolley  <brolley@cygnus.com>
2969
2970          * frv-sim.h (frvbf_set_write_next_vliw_addr_to_LR): New function.
2971          (frvbf_write_next_vliw_addr_to_LR): New flag.
2972          * frv.c (frvbf_set_write_next_vliw_addr_to_LR): New function.
2973          * mloop.in: Only take the first branch in a VLIW insn. Set LR to the
2974          address of the next VLIW insn if flag is set.
2975          * cpu.h,decode.c,sem.c: Rebuild.
2976
2977Tue Sep  7 13:44:23 1999  Dave Brolley  <brolley@cygnus.com>
2978
2979          * mloop.in: Limit parallel insns to MAX_PARALLEL_INSNS.
2980          * sem.c: Rebuild.
2981
29821999-09-02  Doug Evans  <devans@casey.cygnus.com>
2983
2984          * configure: Regenerated to track ../common/aclocal.m4 changes.
2985
29861999-09-01  Doug Evans  <devans@casey.cygnus.com>
2987
2988          * decode.c: Rebuild.
2989
2990Mon Aug 30 17:54:57 1999  Dave Brolley  <brolley@cygnus.com>
2991
2992          * traps.c (frv_rett): New function.
2993          * frv.c (frvbf_h_spr_get_handler): Handle bpsr.
2994          (frvbf_h_spr_set_handler): Handle bpsr.
2995          (frvbf_h_bpsr_get_handler): New function.
2996          (frvbf_h_bpsr_set_handler): New function.
2997          * frv-sim.h (frv_rett): New function.
2998          (frvbf_h_bpsr_get_handler): New function.
2999          (frvbf_h_bpsr_set_handler): New function.
3000          * mloop.in: Read actual packing bit.
3001          * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
3002
3003Tue Aug 31 16:04:37 1999  Dave Brolley  <brolley@cygnus.com>
3004
3005          * traps.c (WANT_CPU): New macro.
3006          (WANT_CPU_FRVBF): New macro.
3007          (frvbf_check_recovering_store): Use registers for source and queue
3008          writes.
3009          * mloop.in: New main loop for parallel support.
3010          (@cpu@_parallel_write_init): New function.
3011          (@cpu@_parallel_write_queued): New function.
3012          * frv-sim.h (set_icc_for_shift_left): New interface.
3013          (set_icc_for_shift_right): New interface.
3014          (frvbf_check_recovering_store): New interface.
3015          * frv.c (set_icc_for_shift_left): Pass and return icc value.
3016          (set_icc_for_shift_right): Pass and return icc value.
3017          (frvbf_check_recovering_store): New interface.
3018          * Makefile.in (FRV_OBJS): Add cgen-par.o.
3019          (stamp-mloop): Add cgen parallel options.
3020          (stamp-arch): Remove with-profile option.
3021          (stamp-cpu): Add cgen parallel options.
3022          * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
3023
30241999-08-28  Doug Evans  <devans@casey.cygnus.com>
3025
3026          * cpu.h,decode.c,sem.c: Rebuild.
3027
3028Wed Aug 25 12:25:04 1999  Dave Brolley  <brolley@cygnus.com>
3029
3030          * arch.h,cpu.h,decode.h,model.c,sem.c: Rebuild.
3031
3032Thu Aug 19 17:59:00 1999  Dave Brolley  <brolley@cygnus.com>
3033
3034          * configure.in: fr500 now the default model.
3035          * configure: Regenerate.
3036          * frv.c: Change frv-1 to frv-gen.
3037          (frvbf_model_fr500_u_exec): New function.
3038          * Makefile.in (stamp-cpu): Use 'mach=frv,fr500' to build decoder.
3039          * mloop.in: Fix typos in comments.
3040          * arch.c,arch.h,cpu.h,cpuall.h,decode.h,model.c,sem.c: Rebuild.
3041
30421999-08-17  Dave Brolley  <brolley@cygnus.com>
3043
3044          * cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
3045
30461999-08-09  Doug Evans  <devans@casey.cygnus.com>
3047
3048          * cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
3049
30501999-08-04  Doug Evans  <devans@casey.cygnus.com>
3051
3052          * cpu.h,cpuall.h,decode.c,model.c,sem.c: Rebuild.
3053
3054Fri Jul 16 14:50:15 1999  Dave Brolley  <brolley@cygnus.com>
3055
3056          * frv.c (frvbf_fetch_register): Use GDB register number macros.
3057          (frvbf_store_register): Use GDB register number macros.
3058          (frvbf_cut): New function.
3059          * frv-sim.h (GR_REGNUM_MAX): New macro.
3060          (FR_REGNUM_MAX): New macro.
3061          (PC_REGNUM): New macro.
3062          (LR_REGNUM): New macro.
3063          (frvbf_cut): New function.
3064          * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.
3065
30661999-07-15  Stan Shebs  <shebs@andros.cygnus.com>
3067
3068          * frv.c (frvbf_fetch_register): Add ability to get LR register,
3069          add default for unhandled registers.
3070          (frvbf_store_register): Add ability to set LR register.
3071
30721999-07-14  Stan Shebs  <shebs@andros.cygnus.com>
3073
3074          * frv.c (frvbf_fetch_register, frvbf_store_register): Fill in.
3075          (decode_gdb_dr_regnum): Remove, not used.
3076
30771999-07-13  Michael Meissner  <meissner@cygnus.com>
3078
3079          * Makefile.in (SIM_EXTRA_FLAGS): Incorporate @sim_trapdump@.
3080
3081          * configure.in (--enable-sim-trapdump): New switch to make unknown
3082          traps dump the register contents, instead of doing the trap thing.
3083          * configure: Regenerate.
3084
3085          * frv-sim.h (TRAP_BREAKPOINT): Define as 81, so it can be used.
3086          (TRAP_REGDUMP{1,2}): Define to provide register dumping support
3087          temporarily.
3088
3089          * traps.h (toplevel): Include bfd.h, libiberity.h.
3090          (frv_itrap): Add support for --enable-sim-trapdump and traps 2,3
3091          dumping the registers.
3092
3093Thu Jul  8 10:57:39 1999  Dave Brolley  <brolley@cygnus.com>
3094
3095          * Makefile.in (SIM_EXTRA_LIBS): Removed. libm no longer needed.
3096
3097Wed Jul  7 17:01:12 1999  Dave Brolley  <brolley@cygnus.com>
3098
3099          * cpu.c,cpu.h,decode.c,model.c,sem.c: Rebuild.
3100
3101Tue Jul  6 16:12:18 1999  Dave Brolley  <brolley@cygnus.com>
3102
3103          * frv.c (frvbf_square_root_SF): Removed.
3104          (frvbf_square_root_DF): Removed.
3105          (frvbf_h_fr_double_get_handler): Removed.
3106          (frvbf_h_fr_double_set_handler): Removed.
3107          (frvbf_h_fr_int_get_handler): Removed.
3108          (frvbf_h_fr_int_set_handler): Removed.
3109          * frv-sim.h (frvbf_square_root_SF): Removed.
3110          (frvbf_square_root_DF): Removed.
3111          (frvbf_h_fr_double_get_handler): Removed.
3112          (frvbf_h_fr_double_set_handler): Removed.
3113          (frvbf_h_fr_int_get_handler): Removed.
3114          (frvbf_h_fr_int_set_handler): Removed.
3115          * decode.c,decode.h,model.c,sem.c: Rebuild.
3116
31171999-07-05  Doug Evans  <devans@casey.cygnus.com>
3118
3119          * Makefile.in (SIM_OBJS): Add cgen-fpu.o, cgen-accfp.o.
3120          * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.
3121          * sim-if.c (sim_open): Initialize fpu.
3122          * frv-sim.h (SETMEMSF,SETMEMDF): Delete.
3123          * frv.c (frvbf_store_multiple_FRint): Replace frvbf_h_fr_int_get
3124          with frvbf_h_fr_get.
3125
3126Wed Jun 30 15:56:56 1999  Dave Brolley  <brolley@cygnus.com>
3127
3128          * frv-sim.h (NESR_RANGE): New macro.
3129          (NO_NESR): New macro.
3130          (GET_NESR_VALID): New macro.
3131          (next_ne_index): Removed.
3132          * traps.c (next_available_nesr): New function.
3133          (next_valid_nesr): New function.
3134          (frvbf_check_non_excepting_load): Use next_available_nesr.
3135          (frvbf_check_recovering_store): Use next_available_nesr and
3136          next_valid_nesr.
3137          (clear_nesr_neear): Use next_available_nesr and   next_valid_nesr.
3138          (frvbf_check_recovering_store): Only consider one matching register.
3139          * sem.c: Rebuild.
3140
3141Tue Jun 29 16:54:32 1999  Dave Brolley  <brolley@cygnus.com>
3142
3143          * frv.c (frvbf_square_root_SF): New function.
3144          (frvbf_square_root_DF): New function.
3145          (frvbf_h_fr_double_get_handler): New function.
3146          (frvbf_h_fr_double_set_handler): New function.
3147          * frv-sim.h (frvbf_square_root_SF): New function.
3148          (frvbf_square_root_DF): New function.
3149          (frvbf_h_fr_double_get_handler): New function.
3150          (frvbf_h_fr_double_set_handler): New function.
3151          * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c: Rebuild.
3152
31531999-06-28  Dave Brolley  <brolley@cygnus.com>
3154
3155          * decode.c,decode.h,model.c,sem.c: Regenerate.
3156
3157Thu Jun 24 17:26:32 1999  Dave Brolley  <brolley@cygnus.com>
3158
3159          * Makefile.in (SIM_EXTRA_LIBS): Add -lm.
3160          * frv-sim.h (frvbf_h_fr_int_get_handler): New function.
3161          (frvbf_h_fr_int_set_handler): New function.
3162          (frvbf_store_multiple_FRint): New function.
3163          (frvbf_square_root_SF): New function.
3164          * frv.c (frvbf_h_fr_int_get_handler): New function.
3165          (frvbf_h_fr_int_set_handler): New function.
3166          (frvbf_store_multiple_FRint): New function.
3167          (frvbf_square_root_SF): New function.
3168          * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3169
31701999-06-23  Doug Evans  <devans@casey.cygnus.com>
3171
3172          * Makefile.in (stamp-mloop): Delete -fast -pbb -switch args
3173          to genmloop.sh.  Pass -scache instead.
3174          (mloop.o): Delete sem-switch.c dependency.
3175          (sem-switch.c): Delete rule.
3176          (stamp-cpu): Don't build sem-switch.c.
3177          * sem-switch.c: Delete.
3178          * mloop.in (xfull-exec-*): Fix call to execute.
3179          * tconfig.in (WITH_SCACHE_PBB): Define as 0.
3180
3181          * cpu.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild.
3182
3183Tue Jun 22 16:23:57 1999  Dave Brolley  <brolley@cygnus.com>
3184
3185          * cpu.h,decode.c,sem.c,sem-switch.c: Regenerate.
3186
3187Mon Jun 21 17:34:10 1999  Dave Brolley  <brolley@cygnus.com>
3188
3189          * mloop.in (execute): Force gr0 to zero before each insn.
3190          * cpu.h,cpu.c,decode.c,sem.c,sem-switch.c: Regenerate.
3191
31921999-06-18  Doug Evans  <devans@casey.cygnus.com>
3193
3194          * cpu.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild.
3195
3196Fri Jun 18 17:49:23 1999  Dave Brolley  <brolley@cygnus.com>
3197
3198          * frv.c (frvbf_h_gr_get_handler): New function.
3199          (frvbf_h_gr_set_handler): New function:
3200          (frvbf_store-multiple_GR): New function:
3201          (frvbf_store-multiple_FR): New function:
3202          (frvbf_store-multiple_CPR): New function:
3203          * frv-sim.h (frvbf_h_gr_get_handler): New function.
3204          (frvbf_h_gr_set_handler): New function:
3205          (frvbf_store-multiple_GR): New function:
3206          (frvbf_store-multiple_FR): New function:
3207          (frvbf_store-multiple_CPR): New function:
3208          * traps.c (frv_itrap): Implement proper syscalls interface.
3209          * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3210
3211Fri Jun 18 14:36:23 1999  Dave Brolley  <brolley@cygnus.com>
3212
3213          * traps.c (frvbf_check_non_excepting_divide): New function.
3214          (frvbf_check_recovering_store): New function.
3215          (clear_nesr_neear): New function.
3216          (clear_ne_flags): New function.
3217          (frvbf_commit): New function.
3218
3219          * frv-sim.h (frvbf_check_non_excepting_divide): New function.
3220          (frvbf_check_recovering_store): New function.
3221          (clear_nesr_neear): New function.
3222          (clear_ne_flags): New function.
3223          (frvbf_commit): New function.
3224          * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3225
32261999-06-16  Dave Brolley  <brolley@cygnus.com>
3227
3228          * frv.c (frvbf_h_spr_get_handler): Handle SPR_NECR.
3229          (frvbf_h_spr_set_handler): Handle SPR_NECR.
3230          * traps.c (next_ne_index): New variable.
3231          (frvbf_check_non_excepting_load): New function.
3232          * frv-sim.h (NECR_ELOS): New macro.
3233          (NECR_NEN): New macro.
3234          (NECR_VALID): New macro.
3235          (SET_NESR_VALID): New macro.
3236          (SET_NESR_EAV): New macro.
3237          (SET_NESR_FR): New macro.
3238          (CLEAR_NESR_FR): New macro.
3239          (SET_NESR_DRN): New macro.
3240          (SET_NESR_SIZE): New macro.
3241          (SET_NESR_NEAN): New macro.
3242          (SET_NEEAR): New macro.
3243          (GET_NE_FLAG): New macro.
3244          (SET_NE_FLAG): New macro.
3245          (CLEAR_NE_FLAG): New macro.
3246          (frvbf_check_non_excepting_load): New function:
3247          * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3248
3249Wed Jun  9 18:12:49 1999  Dave Brolley  <brolley@cygnus.com>
3250
3251          * cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
3252
3253Tue Jun  8 18:13:51 1999  Dave Brolley  <brolley@cygnus.com>
3254
3255          * frv.c (cr_logic): Correct andcr, nandcr, andncr and nandncr.
3256          * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3257
3258Mon Jun  7 17:09:15 1999  Dave Brolley  <brolley@cygnus.com>
3259
3260          * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3261
32621999-06-07  Dave Brolley  <brolley@cygnus.com>
3263
3264          * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3265
3266Thu Jun  3 17:33:31 1999  Dave Brolley  <brolley@cygnus.com>
3267
3268          * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3269
3270Wed Jun  2 17:50:21 1999  Dave Brolley  <brolley@cygnus.com>
3271
3272          * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3273
3274Tue Jun  1 17:58:53 1999  Dave Brolley  <brolley@cygnus.com>
3275
3276          * cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
3277
3278Mon May 31 17:57:25 1999  Dave Brolley  <brolley@cygnus.com>
3279
3280          * traps.c (frv_software_interrupt): Pass current_cpu to
3281          frvbf_h_psr_esr_get.
3282          (frv_software_interrupt): Calculate the new PC based on TBR.
3283          * cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
3284
32851999-05-31  Dave Brolley  <brolley@cygnus.com>
3286
3287          * cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
3288
3289Thu May 27 17:42:00 1999  Dave Brolley  <brolley@cygnus.com>
3290
3291          * frv-sim.h (frvbf_h_cccr_get_handler): New function.
3292          (frvbf_h_cccr_set_handler): New function.
3293          (frvbf_scan_result): New function.
3294          (frvbf_cr_logic): New function.
3295          * frv.c (frvbf_h_cccr_get_handler): New function.
3296          (frvbf_h_cccr_set_handler): New function.
3297          (frvbf_scan_result): New function.
3298          (frvbf_cr_logic): New function.
3299          (cr_ops,cr_result,cr_logic): New table.
3300          * cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
3301
33021999-05-25  Dave Brolley  <brolley@cygnus.com>
3303
3304          * frv.c (frvbf_h_spr_get_handler): Add support for TBR and PSR.
3305          (frvbf_h_spr_set_handler): Add support for TBR and PSR.
3306          (frv_psr_get_handler): New function.
3307          (frv_psr_set_handler): New function.
3308          (frv_tbr_get_handler): New function.
3309          (frv_tbr_set_handler): New function.
3310          (frvbf_h_ccr_get_handler): Add support for fCC.
3311          (frvbf_h_ccr_set_handler): Add support for fCC.
3312          * frv-sim.h (frv_psr_get_handler): New function.
3313          (frv_psr_set_handler): New function.
3314          (frv_tbr_get_handler): New function.
3315          (frv_tbr_set_handler): New function.
3316          * traps.c (frv_software_interrupt): Implement.
3317          * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3318
3319Thu May 20 16:39:27 1999  Dave Brolley  <brolley@cygnus.com>
3320
3321          * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3322
33231999-05-18  Dave Brolley  <brolley@cygnus.com>
3324
3325          * frv.c: (frvbf_set_icc_for_shift_left): New function.
3326          (frvbf_set_icc_for_shift_right): New function.
3327          * frv-sim.h (frvbf_set_icc_for_shift_left): New function.
3328          (frvbf_set_icc_for_shift_right): New function.
3329          (SETMEMSF): New Macro.
3330          (SETMEMDF): New Macro.
3331          * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3332
3333Thu May 13 17:14:49 1999  Dave Brolley  <brolley@cygnus.com>
3334
3335          * frv.c (frvbf_h_ccr_get_handler): New function.
3336          (frvbf_h_ccr_set_handler): New function.
3337          * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3338
3339Tue May 11 16:13:15 1999  Dave Brolley  <brolley@cygnus.com>
3340
3341          * frv-sim.h (frvbf_h_spr_get_handler,frvbf_h_spr_set_handler,
3342          frvbf_h_isr_get_handler, frvbf_h_isr_set_handler): New functions.
3343          * frv.c: Likewise.
3344          * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3345
33461999-05-10  Dave Brolley  <brolley@cygnus.com>
3347
3348          * cpu.h,cpu.c,decode.c,model.c,sem.c,sem-switch.c: Regenerate.
3349
3350Thu May  6 16:48:21 1999  Dave Brolley  <brolley@cygnus.com>
3351
3352          * cpu.h,decode.c,sem.c,sem-switch.c: Regenerate.
3353          * frv-sim.h (TRAP_SYSCALL): Define as 0x80.
3354
3355Wed May  5 11:52:24 1999  Dave Brolley  <brolley@cygnus.com>
3356
3357          * traps.c (frv_software_interrupt): New function.
3358          (frv_itrap): New function.
3359          * frv-sim.h (TRAP_SYSCALL): define as 0.
3360          * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3361
3362Mon May  3 13:49:21 1999  Dave Brolley  <brolley@cygnus.com>
3363
3364          * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate.
3365
3366Thu Apr 29 17:37:06 1999  Dave Brolley  <brolley@cygnus.com>
3367
3368          * Directory created.
3369