2002-03-03 Chris Demetriou <cgd@broadcom.com>
[external/binutils.git] / sim / mips / ChangeLog
1 2002-03-03  Chris Demetriou  <cgd@broadcom.com>
2
3         * mips.igen (FLOOR.L.fmt): Store correct destination register.
4
5 2002-03-03  Chris Demetriou  <cgd@broadcom.com>
6
7         * mips.igen: Remove whitespace at end of lines.
8
9 2002-03-02  Chris Demetriou  <cgd@broadcom.com>
10
11         * mips.igen (loadstore_ea): New function to do effective
12         address calculations.
13         (do_load, do_load_left, do_load_right, LL, LDD, PREF, do_store,
14         do_store_left, do_store_right, SC, SCD, PREFX, SWC1, SWXC1,
15         CACHE): Use loadstore_ea to do effective address computations.
16
17 2002-03-02  Chris Demetriou  <cgd@broadcom.com>
18
19         * interp.c (load_word): Use EXTEND32 rather than SIGNEXTEND.
20         * mips.igen (LL, CxC1, MxC1): Likewise.
21
22 2002-03-02  Chris Demetriou  <cgd@broadcom.com>
23
24         * mips.igen (LL, LLD, PREF, SC, SCD, ABS.fmt, ADD.fmt, CEIL.L.fmt,
25         CEIL.W, CVT.D.fmt, CVT.L.fmt, CVT.S.fmt, CVT.W.fmt, DIV.fmt,
26         FLOOR.L.fmt, FLOOR.W.fmt, MADD.D, MADD.S, MOV.fmt, MOVtf.fmt,
27         MSUB.D, MSUB.S, MUL.fmt, NEG.fmt, NMADD.D, NMADD.S, NMSUB.D,
28         NMSUB.S, PREFX, RECIP.fmt, ROUND.L.fmt, ROUND.W.fmt, RSQRT.fmt,
29         SQRT.fmt, SUB.fmt, SWC1, SWXC1, TRUNC.L.fmt, TRUNC.W, CACHE):
30         Don't split opcode fields by hand, use the opcode field values
31         provided by igen.
32
33 2002-03-01  Chris Demetriou  <cgd@broadcom.com>
34
35         * mips.igen (do_divu): Fix spacing.
36
37         * mips.igen (do_dsllv): Move to be right before DSLLV,
38         to match the rest of the do_<shift> functions.
39
40 2002-03-01  Chris Demetriou  <cgd@broadcom.com>
41
42         * mips.igen (do_dsll, do_dsllv, DSLL32, do_dsra, DSRA32, do_dsrl,
43         DSRL32, do_dsrlv): Trace inputs and results.
44
45 2002-03-01  Chris Demetriou  <cgd@broadcom.com>
46
47         * mips.igen (CACHE): Provide instruction-printing string.
48
49         * interp.c (signal_exception): Comment tokens after #endif.
50
51 2002-02-28  Chris Demetriou  <cgd@broadcom.com>
52
53         * mips.igen (LWXC1): Mark with filter "64,f", rather than just "32".
54         (MOVtf, MxC1, MxC1, DMxC1, DMxC1, CxC1, CxC1, SQRT.fmt, MOV.fmt, 
55         NEG.fmt, ROUND.L.fmt, TRUNC.L.fmt, CEIL.L.fmt, FLOOR.L.fmt, 
56         ROUND.W.fmt, TRUNC.W, CEIL.W, FLOOR.W.fmt, RECIP.fmt, RSQRT.fmt, 
57         CVT.S.fmt, CVT.D.fmt, CVT.W.fmt, CVT.L.fmt, MOVtf.fmt, C.cond.fmta, 
58         C.cond.fmtb, SUB.fmt, MUL.fmt, DIV.fmt, MOVZ.fmt, MOVN.fmt, LDXC1, 
59         SWXC1, SDXC1, MSUB.D, MSUB.S, NMADD.S, NMADD.D, NMSUB.S, NMSUB.D, 
60         LWC1, SWC1): Add "f" to filter, since these are FP instructions.
61
62 2002-02-28  Chris Demetriou  <cgd@broadcom.com>
63
64         * mips.igen (DSRA32, DSRAV): Fix order of arguments in
65         instruction-printing string.
66         (LWU): Use '64' as the filter flag.
67
68 2002-02-28  Chris Demetriou  <cgd@broadcom.com>
69
70         * mips.igen (SDXC1): Fix instruction-printing string.
71
72 2002-02-28  Chris Demetriou  <cgd@broadcom.com>
73
74         * mips.igen (LDC1, SDC1): Remove mipsI model, and mark with
75         filter flags "32,f".
76
77 2002-02-27  Chris Demetriou  <cgd@broadcom.com>
78
79         * mips.igen (PREFX): This is a 64-bit instruction, use '64'
80         as the filter flag.
81
82 2002-02-27  Chris Demetriou  <cgd@broadcom.com>
83
84         * mips.igen (PREFX): Tweak instruction opcode fields (i.e.,
85         add a comma) so that it more closely match the MIPS ISA
86         documentation opcode partitioning.
87         (PREF): Put useful names on opcode fields, and include
88         instruction-printing string.
89
90 2002-02-27  Chris Demetriou  <cgd@broadcom.com>
91
92         * mips.igen (check_u64): New function which in the future will
93         check whether 64-bit instructions are usable and signal an
94         exception if not.  Currently a no-op.
95         (DADD, DADDI, DADDIU, DADDU, DDIV, DDIVU, DMULT, DMULTU, DSLL,
96         DSLL32, DSLLV, DSRA, DSRA32, DSRAV, DSRL, DSRL32, DSRLV, DSUB,
97         DSUBU, LD, LDL, LDR, LLD, LWU, SCD, SD, SDL, SDR, DMxC1, LDXC1,
98         LWXC1, SDXC1, SWXC1, DMFC0, DMTC0): Use check_u64.
99
100         * mips.igen (check_fpu): New function which in the future will
101         check whether FPU instructions are usable and signal an exception
102         if not.  Currently a no-op.
103         (ABS.fmt, ADD.fmt, BC1a, BC1b, C.cond.fmta, C.cond.fmtb,
104         CEIL.L.fmt, CEIL.W, CxC1, CVT.D.fmt, CVT.L.fmt, CVT.S.fmt,
105         CVT.W.fmt, DIV.fmt, DMxC1, DMxC1, FLOOR.L.fmt, FLOOR.W.fmt, LDC1,
106         LDXC1, LWC1, LWXC1, MADD.D, MADD.S, MxC1, MOV.fmt, MOVtf,
107         MOVtf.fmt, MOVN.fmt, MOVZ.fmt, MSUB.D, MSUB.S, MUL.fmt, NEG.fmt,
108         NMADD.D, NMADD.S, NMSUB.D, NMSUB.S, RECIP.fmt, ROUND.L.fmt,
109         ROUND.W.fmt, RSQRT.fmt, SDC1, SDXC1, SQRT.fmt, SUB.fmt, SWC1,
110         SWXC1, TRUNC.L.fmt, TRUNC.W): Use check_fpu.
111
112 2002-02-27  Chris Demetriou  <cgd@broadcom.com>
113
114         * mips.igen (do_load_left, do_load_right): Move to be immediately
115         following do_load.
116         (do_store_left, do_store_right): Move to be immediately following
117         do_store.
118
119 2002-02-27  Chris Demetriou  <cgd@broadcom.com>
120
121         * mips.igen (mipsV): New model name.  Also, add it to
122         all instructions and functions where it is appropriate.
123
124 2002-02-18  Chris Demetriou  <cgd@broadcom.com>
125
126         * mips.igen: For all functions and instructions, list model
127         names that support that instruction one per line.
128
129 2002-02-11  Chris Demetriou  <cgd@broadcom.com>
130
131         * mips.igen: Add some additional comments about supported
132         models, and about which instructions go where.
133         (BC1b, MFC0, MTC0, RFE): Sort supported models in the same
134         order as is used in the rest of the file.
135
136 2002-02-11  Chris Demetriou  <cgd@broadcom.com>
137
138         * mips.igen (ADD, ADDI, DADDI, DSUB, SUB): Add comment
139         indicating that ALU32_END or ALU64_END are there to check
140         for overflow.
141         (DADD): Likewise, but also remove previous comment about
142         overflow checking.
143
144 2002-02-10  Chris Demetriou  <cgd@broadcom.com>
145
146         * mips.igen (DDIV, DIV, DIVU, DMULT, DMULTU, DSLL, DSLL32,
147         DSLLV, DSRA, DSRA32, DSRAV, DSRL, DSRL32, DSRLV, DSUB, DSUBU,
148         JALR, JR, MOVN, MOVZ, MTLO, MULT, MULTU, SLL, SLLV, SLT, SLTU,
149         SRAV, SRLV, SUB, SUBU, SYNC, XOR, MOVtf, DI, DMFC0, DMTC0, EI,
150         ERET, RFE, TLBP, TLBR, TLBWI, TLBWR): Tweak instruction opcode
151         fields (i.e., add and move commas) so that they more closely
152         match the MIPS ISA documentation opcode partitioning.
153
154 2002-02-10  Chris Demetriou  <cgd@broadcom.com>
155
156         * mips.igen (ADDI): Print immediate value.
157         (BREAK): Print code.
158         (DADDIU, DSRAV, DSRLV): Print correct instruction name.
159         (SLL): Print "nop" specially, and don't run the code
160         that does the shift for the "nop" case.
161
162 2001-11-17  Fred Fish  <fnf@redhat.com>
163
164         * sim-main.h (float_operation): Move enum declaration outside
165         of _sim_cpu struct declaration.
166
167 2001-04-12  Jim Blandy  <jimb@redhat.com>
168
169         * mips.igen (CFC1, CTC1): Pass the correct register numbers to
170         PENDING_FILL.  Use PENDING_SCHED directly to handle the pending
171         set of the FCSR.
172         * sim-main.h (COCIDX): Remove definition; this isn't supported by
173         PENDING_FILL, and you can get the intended effect gracefully by
174         calling PENDING_SCHED directly.
175
176 2001-02-23  Ben Elliston  <bje@redhat.com>
177
178         * sim-main.h (ENGINE_ISSUE_PREFIX_HOOK): Only define if not
179         already defined elsewhere.
180
181 2001-02-19  Ben Elliston  <bje@redhat.com>
182
183         * sim-main.h (sim_monitor): Return an int.
184         * interp.c (sim_monitor): Add return values.
185         (signal_exception): Handle error conditions from sim_monitor.
186
187 2001-02-08  Ben Elliston  <bje@redhat.com>
188
189         * sim-main.c (load_memory): Pass cia to sim_core_read* functions.
190         (store_memory): Likewise, pass cia to sim_core_write*.
191
192 2000-10-19  Frank Ch. Eigler  <fche@redhat.com>
193
194         On advice from Chris G. Demetriou <cgd@sibyte.com>:
195         * sim-main.h (GPR_CLEAR): Remove unused alternative macro.
196
197 Thu Jul 27 22:02:05 2000  Andrew Cagney  <cagney@b1.cygnus.com>
198
199         From Maciej W. Rozycki <macro@ds2.pg.gda.pl>:
200         * Makefile.in: Don't delete *.igen when cleaning directory.
201
202 Wed Jul 19 18:50:51 2000  Andrew Cagney  <cagney@b1.cygnus.com>
203
204         * m16.igen (break): Call SignalException not sim_engine_halt.
205
206 Mon Jul  3 11:13:20 2000  Andrew Cagney  <cagney@b1.cygnus.com>
207
208         From Jason Eckhardt:
209         * mips.igen (MOVZ.fmt, MOVN.fmt): Move conditional on GPR[RT].
210
211 Tue Jun 13 20:52:07 2000  Andrew Cagney  <cagney@b1.cygnus.com>
212
213         * mips.igen (MxC1, DMxC1): Fix printf formatting.
214
215 2000-05-24  Michael Hayes  <mhayes@cygnus.com>
216
217         * mips.igen (do_dmultx): Fix typo.
218
219 Tue May 23 21:39:23 2000  Andrew Cagney  <cagney@b1.cygnus.com>
220
221         * configure: Regenerated to track ../common/aclocal.m4 changes.
222
223 Fri Apr 28 20:48:36 2000  Andrew Cagney  <cagney@b1.cygnus.com>
224
225         * mips.igen (DMxC1): Fix format arguments for sim_io_eprintf call.
226
227 2000-04-12  Frank Ch. Eigler  <fche@redhat.com>
228
229         * sim-main.h (GPR_CLEAR): Define macro.
230
231 Mon Apr 10 00:07:09 2000  Andrew Cagney  <cagney@b1.cygnus.com>
232
233         * interp.c (decode_coproc): Output long using %lx and not %s.
234
235 2000-03-21  Frank Ch. Eigler  <fche@redhat.com>
236
237         * interp.c (sim_open): Sort & extend dummy memory regions for
238         --board=jmr3904 for eCos.
239
240 2000-03-02  Frank Ch. Eigler  <fche@redhat.com>
241
242         * configure: Regenerated.
243
244 Tue Feb  8 18:35:01 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
245
246         * interp.c, mips.igen: all 5 DEADC0DE situations now have sim_io_eprintf
247         calls, conditional on the simulator being in verbose mode.
248
249 Fri Feb  4 09:45:15 2000  Donald Lindsay  <dlindsay@cygnus.com>
250
251         * sim-main.c (cache_op): Added case arm so that CACHE ops to a secondary
252         cache don't get ReservedInstruction traps.
253
254 1999-11-29  Mark Salter  <msalter@cygnus.com>
255
256         * dv-tx3904sio.c (tx3904sio_io_write_buffer): Use write value as a mask
257         to clear status bits in sdisr register. This is how the hardware works.
258
259         * interp.c (sim_open): Added more memory aliases for jmr3904 hardware
260         being used by cygmon.
261
262 1999-11-11  Andrew Haley  <aph@cygnus.com>
263
264         * interp.c (decode_coproc): Correctly handle DMFC0 and DMTC0
265         instructions.
266
267 Thu Sep  9 15:12:08 1999  Geoffrey Keating  <geoffk@cygnus.com>
268
269         * mips.igen (MULT): Correct previous mis-applied patch.
270
271 Tue Sep  7 13:34:54 1999  Geoffrey Keating  <geoffk@cygnus.com>
272
273         * mips.igen (delayslot32): Handle sequence like
274         mtc1 $at,$f12 ; jal fp_add ; mov.s $f13,$f12
275         correctly by calling ENGINE_ISSUE_PREFIX_HOOK() before issue.
276         (MULT): Actually pass the third register...
277
278 1999-09-03  Mark Salter  <msalter@cygnus.com>
279
280         * interp.c (sim_open): Added more memory aliases for additional
281         hardware being touched by cygmon on jmr3904 board.
282
283 Thu Sep  2 18:15:53 1999  Andrew Cagney  <cagney@b1.cygnus.com>
284
285         * configure: Regenerated to track ../common/aclocal.m4 changes.
286
287 Tue Jul 27 16:36:51 1999  Andrew Cagney  <cagney@amy.cygnus.com>
288
289         * interp.c (sim_store_register): Handle case where client - GDB -
290         specifies that a 4 byte register is 8 bytes in size.
291         (sim_fetch_register): Ditto.
292         
293 1999-07-14  Frank Ch. Eigler  <fche@cygnus.com>
294
295         Implement "sim firmware" option, inspired by jimb's version of 1998-01.
296         * interp.c (firmware_option_p): New global flag: "sim firmware" given.
297         (idt_monitor_base): Base address for IDT monitor traps.
298         (pmon_monitor_base): Ditto for PMON.
299         (lsipmon_monitor_base): Ditto for LSI PMON.
300         (MONITOR_BASE, MONITOR_SIZE): Removed macros.
301         (mips_option): Add "firmware" option with new OPTION_FIRMWARE key.
302         (sim_firmware_command): New function.
303         (mips_option_handler): Call it for OPTION_FIRMWARE.
304         (sim_open): Allocate memory for idt_monitor region.  If "--board"
305         option was given, add no monitor by default.  Add BREAK hooks only if
306         monitors are also there.
307         
308 Mon Jul 12 00:02:27 1999  Andrew Cagney  <cagney@amy.cygnus.com>
309
310         * interp.c (sim_monitor): Flush output before reading input.
311
312 Sun Jul 11 19:28:11 1999  Andrew Cagney  <cagney@b1.cygnus.com>
313
314         * tconfig.in (SIM_HANDLES_LMA): Always define.
315
316 Thu Jul  8 16:06:59 1999  Andrew Cagney  <cagney@b1.cygnus.com>
317
318         From Mark Salter <msalter@cygnus.com>:
319         * interp.c (BOARD_BSP): Define.  Add to list of possible boards.
320         (sim_open): Add setup for BSP board.
321
322 Wed Jul  7 12:45:58 1999  Andrew Cagney  <cagney@b1.cygnus.com>
323
324         * mips.igen (MULT, MULTU): Add syntax for two operand version.
325         (DMFC0, DMTC0): Recognize.  Call DecodeCoproc which will report
326         them as unimplemented.
327
328 1999-05-08  Felix Lee  <flee@cygnus.com>
329
330         * configure: Regenerated to track ../common/aclocal.m4 changes.
331         
332 1999-04-21  Frank Ch. Eigler  <fche@cygnus.com>
333
334         * mips.igen (bc0f): For the TX39 only, decode this as a no-op stub.
335
336 Thu Apr 15 14:15:17 1999  Andrew Cagney  <cagney@amy.cygnus.com>
337
338         * configure.in: Any mips64vr5*-*-* target should have
339         -DTARGET_ENABLE_FR=1.
340         (default_endian): Any mips64vr*el-*-* target should default to
341         LITTLE_ENDIAN.
342         * configure: Re-generate.
343
344 1999-02-19  Gavin Romig-Koch  <gavin@cygnus.com>
345
346         * mips.igen (ldl): Extend from _16_, not 32.
347
348 Wed Jan 27 18:51:38 1999  Andrew Cagney  <cagney@chook.cygnus.com>
349
350         * interp.c (sim_store_register): Force registers written to by GDB
351         into an un-interpreted state.
352
353 1999-02-05  Frank Ch. Eigler  <fche@cygnus.com>
354
355         * dv-tx3904sio.c (tx3904sio_tickle): After a polled I/O from the
356         CPU, start periodic background I/O polls.
357         (tx3904sio_poll): New function: periodic I/O poller. 
358
359 1998-12-30  Frank Ch. Eigler  <fche@cygnus.com>
360
361         * mips.igen (BREAK): Call signal_exception instead of sim_engine_halt.
362         
363 Tue Dec 29 16:03:53 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
364
365         * configure.in, configure (mips64vr5*-*-*): Added missing ;; in
366         case statement.
367
368 1998-12-29  Frank Ch. Eigler  <fche@cygnus.com>
369         
370         * interp.c (sim_open): Allocate jm3904 memory in smaller chunks. 
371         (load_word): Call SIM_CORE_SIGNAL hook on error.
372         (signal_exception): Call SIM_CPU_EXCEPTION_TRIGGER hook before
373         starting.  For exception dispatching, pass PC instead of NULL_CIA.
374         (decode_coproc): Use COP0_BADVADDR to store faulting address.
375         * sim-main.h (COP0_BADVADDR): Define. 
376         (SIM_CORE_SIGNAL): Define hook to call mips_core_signal.
377         (SIM_CPU_EXCEPTION*): Define hooks to call mips_cpu_exception*().
378         (_sim_cpu): Add exc_* fields to store register value snapshots. 
379         * mips.igen (*): Replace memory-related SignalException* calls
380         with references to SIM_CORE_SIGNAL hook.
381         
382         * dv-tx3904irc.c (tx3904irc_port_event): printf format warning
383         fix.
384         * sim-main.c (*): Minor warning cleanups.
385         
386 1998-12-24  Gavin Romig-Koch  <gavin@cygnus.com>
387
388         * m16.igen (DADDIU5): Correct type-o.
389
390 Mon Dec 21 10:34:48 1998  Andrew Cagney  <cagney@chook>
391
392         * mips.igen (do_ddiv, do_ddivu): Pacify GCC. Update hi/lo via tmp
393         variables.
394
395 Wed Dec 16 18:20:28 1998  Andrew Cagney  <cagney@chook>
396
397         * Makefile.in (SIM_EXTRA_CFLAGS): No longer need to add .../newlib
398         to include path.
399         (interp.o): Add dependency on itable.h
400         (oengine.c, gencode): Delete remaining references.
401         (BUILT_SRC_FROM_GEN): Clean up.
402         
403 1998-12-16  Gavin Romig-Koch  <gavin@cygnus.com>
404         
405         * vr4run.c: New.
406         * Makefile.in (SIM_HACK_OBJ,HACK_OBJS,HACK_GEN_SRCS,libhack.a,
407         tmp-hack,tmp-m32-hack,tmp-m16-hack,tmp-itable-hack,
408         tmp-run-hack) : New.
409         * m16.igen (LD,DADDIU,DADDUI5,DADJSP,DADDIUSP,DADDI,DADDU,DSUBU,
410         DSLL,DSRL,DSRA,DSLLV,DSRAV,DMULT,DMULTU,DDIV,DDIVU,JALX32,JALX): 
411         Drop the "64" qualifier to get the HACK generator working.
412         Use IMMEDIATE rather than IMMED.  Use SHAMT rather than SHIFT.
413         * mips.igen (do_daddiu,do_ddiv,do_divu): Remove the 64-only
414         qualifier to get the hack generator working.
415         (do_dsll,do_dsllv,do_dsra,do_dsrl,do_dsrlv): New.
416         (DSLL): Use do_dsll.
417         (DSLLV): Use do_dsllv.
418         (DSRA): Use do_dsra.
419         (DSRL): Use do_dsrl.
420         (DSRLV): Use do_dsrlv.
421         (BC1): Move *vr4100 to get the HACK generator working.
422         (CxC1, DMxC1, MxC1,MACCU,MACCHI,MACCHIU): Rename to 
423         get the HACK generator working.
424         (MACC) Rename to get the HACK generator working.
425         (DMACC,MACCS,DMACCS): Add the 64.
426         
427 1998-12-12  Gavin Romig-Koch  <gavin@cygnus.com>
428
429         * mips.igen (BC1): Renamed to BC1a and BC1b to avoid conflicts.
430         * sim-main.h (SizeFGR): Handle TARGET_ENABLE_FR.
431         
432 1998-12-11  Gavin Romig-Koch  <gavin@cygnus.com>
433
434     * mips/interp.c (DEBUG): Cleanups.
435
436 1998-12-10  Frank Ch. Eigler  <fche@cygnus.com>
437
438         * dv-tx3904sio.c (tx3904sio_io_read_buffer): Endianness fixes.
439         (tx3904sio_tickle): fflush after a stdout character output.
440         
441 1998-12-03  Frank Ch. Eigler  <fche@cygnus.com>
442
443         * interp.c (sim_close): Uninstall modules.
444
445 Wed Nov 25 13:41:03 1998  Andrew Cagney  <cagney@b1.cygnus.com>
446
447         * sim-main.h, interp.c (sim_monitor): Change to global
448         function.
449
450 Wed Nov 25 17:33:24 1998  Andrew Cagney  <cagney@b1.cygnus.com>
451
452         * configure.in (vr4100): Only include vr4100 instructions in
453         simulator.
454         * configure: Re-generate.
455         * m16.igen (*): Tag all mips16 instructions as also being vr4100.
456
457 Mon Nov 23 18:20:36 1998  Andrew Cagney  <cagney@b1.cygnus.com>
458
459         * Makefile.in (SIM_CFLAGS): Do not define WITH_IGEN.
460         * sim-main.h, sim-main.c, interp.c: Delete #if WITH_IGEN keeping
461         true alternative.
462
463         * configure.in (sim_default_gen, sim_use_gen): Replace with
464         sim_gen.
465         (--enable-sim-igen): Delete config option. Always using IGEN.
466         * configure: Re-generate.
467         
468         * Makefile.in (gencode): Kill, kill, kill.
469         * gencode.c: Ditto.
470         
471 Mon Nov 23 18:07:36 1998  Andrew Cagney  <cagney@b1.cygnus.com>
472
473         * configure.in: Configure mips64vr4100-elf nee mips64vr41* as a 64
474         bit mips16 igen simulator.
475         * configure: Re-generate.
476
477         * mips.igen (check_div_hilo, check_mult_hilo, check_mf_hilo): Mark
478         as part of vr4100 ISA.
479         * vr.igen: Mark all instructions as 64 bit only.
480
481 Mon Nov 23 17:07:37 1998  Andrew Cagney  <cagney@b1.cygnus.com>
482
483         * interp.c (get_cell, sim_monitor, fetch_str, CoProcPresent):
484         Pacify GCC.
485
486 Mon Nov 23 13:23:40 1998  Andrew Cagney  <cagney@b1.cygnus.com>
487
488         * configure.in: Configure mips-lsi-elf nee mips*lsi* as a
489         mipsIII/mips16 igen simulator.  Fix sim_gen VS sim_igen typos.
490         * configure: Re-generate.
491
492         * m16.igen (BREAK): Define breakpoint instruction.
493         (JALX32): Mark instruction as mips16 and not r3900.
494         * mips.igen (C.cond.fmt): Fix typo in instruction format.
495
496         * sim-main.h (PENDING_FILL): Wrap C statements in do/while.
497
498 Sat Nov  7 09:54:38 1998  Andrew Cagney  <cagney@b1.cygnus.com>
499
500         * gencode.c (build_instruction - BREAK): For MIPS16, handle BREAK
501         insn as a debug breakpoint.
502
503         * sim-main.h (PENDING_SLOT_BIT): Fix, was incorrectly defined as
504         pending.slot_size.
505         (PENDING_SCHED): Clean up trace statement.
506         (PENDING_SCHED): Increment PENDING_IN and PENDING_TOTAL.
507         (PENDING_FILL): Delay write by only one cycle.
508         (PENDING_FILL): For FSRs, write fmt_uninterpreted to FPR_STATE.
509
510         * sim-main.c (pending_tick): Clean up trace statements. Add trace
511         of pending writes.
512         (pending_tick): Fix sizes in switch statements, 4 & 8 instead of
513         32 & 64.
514         (pending_tick): Move incrementing of index to FOR statement.
515         (pending_tick): Only update PENDING_OUT after a write has occured.
516         
517         * configure.in: Add explicit mips-lsi-* target.  Use gencode to
518         build simulator.
519         * configure: Re-generate.
520         
521         * interp.c (sim_engine_run OLD): Delete explicit call to
522         PENDING_TICK. Now called via ENGINE_ISSUE_PREFIX_HOOK.
523         
524 Sat Oct 30 09:49:10 1998  Frank Ch. Eigler  <fche@cygnus.com>
525
526         * dv-tx3904cpu.c (deliver_tx3904cpu_interrupt): Add dummy
527         interrupt level number to match changed SignalExceptionInterrupt
528         macro.
529
530 Fri Oct  9 18:02:25 1998  Doug Evans  <devans@canuck.cygnus.com>
531
532         * interp.c: #include "itable.h" if WITH_IGEN.
533         (get_insn_name): New function.
534         (sim_open): Initialize CPU_INSN_NAME,CPU_MAX_INSNS.
535         * sim-main.h (MAX_INSNS,INSN_NAME): Delete.
536
537 Mon Sep 14 12:36:44 1998  Frank Ch. Eigler  <fche@cygnus.com>
538
539         * configure: Rebuilt to inhale new common/aclocal.m4.
540
541 Tue Sep  1 15:39:18 1998  Frank Ch. Eigler  <fche@cygnus.com>
542
543         * dv-tx3904sio.c: Include sim-assert.h.
544
545 Tue Aug 25 12:49:46 1998  Frank Ch. Eigler  <fche@cygnus.com>
546
547         * dv-tx3904sio.c: New file: tx3904 serial I/O module.
548         * configure.in: Add dv-tx3904sio, dv-sockser for tx39 target.
549         Reorganize target-specific sim-hardware checks.
550         * configure: rebuilt.
551         * interp.c (sim_open): For tx39 target boards, set
552         OPERATING_ENVIRONMENT, add tx3904sio devices.
553         * tconfig.in: For tx39 target, set SIM_HANDLES_LMA for loading
554         ROM executables.  Install dv-sockser into sim-modules list.
555         
556         * dv-tx3904irc.c: Compiler warning clean-up.
557         * dv-tx3904tmr.c: Compiler warning clean-up.  Remove particularly
558         frequent hw-trace messages.
559
560 Fri Jul 31 18:14:16 1998  Andrew Cagney  <cagney@b1.cygnus.com>
561
562         * vr.igen (MulAcc): Identify as a vr4100 specific function.
563
564 Sat Jul 25 16:03:14 1998  Andrew Cagney  <cagney@b1.cygnus.com>
565
566         * Makefile.in (IGEN_INCLUDE): Add vr.igen.
567
568         * vr.igen: New file.
569         (MAC/MADD16, DMAC/DMADD16): Implement using code from gencode.c.
570         * mips.igen: Define vr4100 model. Include vr.igen.
571 Mon Jun 29 09:21:07 1998  Gavin Koch  <gavin@cygnus.com>
572
573         * mips.igen (check_mf_hilo): Correct check.
574
575 Wed Jun 17 12:20:49 1998  Andrew Cagney  <cagney@b1.cygnus.com>
576
577         * sim-main.h (interrupt_event): Add prototype.
578
579         * dv-tx3904tmr.c (tx3904tmr_io_write_buffer): Delete unused
580         register_ptr, register_value.
581         (deliver_tx3904tmr_tick): Fix types passed to printf fmt.
582
583         * sim-main.h (tracefh): Make extern.
584
585 Tue Jun 16 14:39:00 1998  Frank Ch. Eigler  <fche@cygnus.com>
586
587         * dv-tx3904tmr.c: Deschedule timer event after dispatching.
588         Reduce unnecessarily high timer event frequency.  
589         * dv-tx3904cpu.c: Ditto for interrupt event.
590         
591 Wed Jun 10 13:22:32 1998  Frank Ch. Eigler  <fche@cygnus.com>
592
593         * interp.c (decode_coproc): For TX39, add stub COP0 register #7,
594         to allay warnings.
595         (interrupt_event): Made non-static.
596         
597         * dv-tx3904tmr.c (deliver_tx3904tmr_tick): Correct accidental
598         interchange of configuration values for external vs. internal
599         clock dividers.
600         
601 Tue Jun  9 12:46:24 1998  Ian Carmichael  <iancarm@cygnus.com>
602
603         * mips.igen (BREAK): Moved code to here for 
604         simulator-reserved break instructions.
605         * gencode.c (build_instruction): Ditto.
606         * interp.c (signal_exception): Code moved from here.  Non-
607         reserved instructions now use exception vector, rather 
608         than halting sim.
609         * sim-main.h: Moved magic constants to here.
610
611 Tue Jun  9 12:29:50 1998  Frank Ch. Eigler  <fche@cygnus.com>
612
613         * dv-tx3904cpu.c (deliver_*_interrupt,*_port_event): Set the CAUSE
614         register upon non-zero interrupt event level, clear upon zero
615         event value.
616         * dv-tx3904irc.c (*_port_event): Handle deactivated interrupt signal
617         by passing zero event value.
618         (*_io_{read,write}_buffer): Endianness fixes.
619         * dv-tx3904tmr.c (*_io_{read,write}_buffer): Endianness fixes.
620         (deliver_*_tick): Reduce sim event interval to 75% of count interval.
621
622         * interp.c (sim_open): Added jmr3904pal board type that adds PAL-based
623         serial I/O and timer module at base address 0xFFFF0000.
624         
625 Tue Jun  9 11:52:29 1998  Gavin Koch  <gavin@cygnus.com>
626
627         * mips.igen (SWC1) : Correct the handling of ReverseEndian 
628         and BigEndianCPU.
629
630 Tue Jun  9 11:40:57 1998  Gavin Koch  <gavin@cygnus.com>
631
632         * configure.in (mips_fpu_bitsize) : Set this correctly for 32-bit mips
633         parts.
634         * configure: Update.
635
636 Thu Jun  4 15:37:33 1998  Frank Ch. Eigler  <fche@cygnus.com>
637
638         * dv-tx3904tmr.c: New file - implements tx3904 timer.
639         * dv-tx3904{irc,cpu}.c: Mild reformatting.
640         * configure.in: Include tx3904tmr in hw_device list.
641         * configure: Rebuilt.
642         * interp.c (sim_open): Instantiate three timer instances.
643         Fix address typo of tx3904irc instance.
644
645 Tue Jun  2 15:48:02 1998  Ian Carmichael  <iancarm@cygnus.com>
646
647         * interp.c (signal_exception): SystemCall exception now uses
648         the exception vector.
649
650 Mon Jun  1 18:18:26 1998  Frank Ch. Eigler  <fche@cygnus.com>
651
652         * interp.c (decode_coproc): For TX39, add stub COP0 register #3,
653         to allay warnings.
654
655 Fri May 29 11:40:39 1998  Andrew Cagney  <cagney@b1.cygnus.com>
656
657         * configure.in (sim_igen_filter): Match mips*tx39 not mipst*tx39.
658
659 Mon May 25 20:47:45 1998  Andrew Cagney  <cagney@b1.cygnus.com>
660
661         * dv-tx3904cpu.c, dv-tx3904irc.c: Rename *_callback to *_method.
662
663         * dv-tx3904cpu.c, dv-tx3904irc.c: Include hw-main.h and
664         sim-main.h. Declare a struct hw_descriptor instead of struct
665         hw_device_descriptor.
666
667 Mon May 25 12:41:38 1998  Andrew Cagney  <cagney@b1.cygnus.com>
668
669         * mips.igen (do_store_left, do_load_left): Compute nr of left and
670         right bits and then re-align left hand bytes to correct byte
671         lanes.  Fix incorrect computation in do_store_left when loading
672         bytes from second word.
673
674 Fri May 22 13:34:20 1998  Andrew Cagney  <cagney@b1.cygnus.com>
675
676         * configure.in (SIM_AC_OPTION_HARDWARE): Only enable when tx3904.
677         * interp.c (sim_open): Only create a device tree when HW is
678         enabled.
679
680         * dv-tx3904irc.c (tx3904irc_finish): Pacify GCC.
681         * interp.c (signal_exception): Ditto.
682
683 Thu May 21 14:24:11 1998  Gavin Koch  <gavin@cygnus.com>
684
685         * gencode.c: Mark BEGEZALL as LIKELY.
686
687 Thu May 21 18:57:19 1998  Andrew Cagney  <cagney@b1.cygnus.com>
688
689         * sim-main.h (ALU32_END): Sign extend 32 bit results.
690         * mips.igen (ADD, SUB, ADDI, DADD, DSUB): Trace.
691         
692 Mon May 18 18:22:42 1998  Frank Ch. Eigler  <fche@cygnus.com>
693
694         * configure.in (SIM_AC_OPTION_HARDWARE): Added common hardware
695         modules.  Recognize TX39 target with "mips*tx39" pattern.
696         * configure: Rebuilt.
697         * sim-main.h (*): Added many macros defining bits in
698         TX39 control registers.
699         (SignalInterrupt): Send actual PC instead of NULL.
700         (SignalNMIReset): New exception type.
701         * interp.c (board): New variable for future use to identify
702         a particular board being simulated.
703         (mips_option_handler,mips_options): Added "--board" option.
704         (interrupt_event): Send actual PC.
705         (sim_open): Make memory layout conditional on board setting.
706         (signal_exception): Initial implementation of hardware interrupt
707         handling.  Accept another break instruction variant for simulator
708         exit.
709         (decode_coproc): Implement RFE instruction for TX39.
710         (mips.igen): Decode RFE instruction as such.
711         * configure.in (tx3904cpu,tx3904irc): Added devices for tx3904.
712         * interp.c: Define "jmr3904" and "jmr3904debug" board types and
713         bbegin to implement memory map.
714         * dv-tx3904cpu.c: New file.
715         * dv-tx3904irc.c: New file.
716
717 Wed May 13 14:40:11 1998  Gavin Koch  <gavin@cygnus.com>
718
719         * mips.igen (check_mt_hilo): Create a separate r3900 version.
720
721 Wed May 13 14:11:46 1998  Gavin Koch  <gavin@cygnus.com>
722
723         * tx.igen (madd,maddu):  Replace calls to check_op_hilo
724         with calls to check_div_hilo.
725
726 Wed May 13 09:59:27 1998  Gavin Koch  <gavin@cygnus.com>
727
728         * mips/mips.igen (check_op_hilo,check_mult_hilo,check_div_hilo):
729         Replace check_op_hilo with check_mult_hilo and check_div_hilo.
730         Add special r3900 version of do_mult_hilo.  
731         (do_dmultx,do_mult,do_multu): Replace calls to check_op_hilo
732         with calls to check_mult_hilo.
733         (do_ddiv,do_ddivu,do_div,do_divu): Replace calls to check_op_hilo
734         with calls to check_div_hilo.
735
736 Tue May 12 15:22:11 1998  Andrew Cagney  <cagney@b1.cygnus.com>
737
738         * configure.in (SUBTARGET_R3900): Define for mipstx39 target.
739         Document a replacement.
740
741 Fri May  8 17:48:19 1998  Ian Carmichael  <iancarm@cygnus.com>
742
743         * interp.c (sim_monitor): Make mon_printf work.
744
745 Wed May  6 19:42:19 1998  Doug Evans  <devans@canuck.cygnus.com>
746
747         * sim-main.h (INSN_NAME): New arg `cpu'.
748
749 Tue Apr 28 18:33:31 1998  Geoffrey Noer  <noer@cygnus.com>
750
751         * configure: Regenerated to track ../common/aclocal.m4 changes.
752
753 Sun Apr 26 15:31:55 1998  Tom Tromey  <tromey@creche>
754
755         * configure: Regenerated to track ../common/aclocal.m4 changes.
756         * config.in: Ditto.
757
758 Sun Apr 26 15:20:01 1998  Tom Tromey  <tromey@cygnus.com>
759
760         * acconfig.h: New file.
761         * configure.in: Reverted change of Apr 24; use sinclude again.
762
763 Fri Apr 24 14:16:40 1998  Tom Tromey  <tromey@creche>
764
765         * configure: Regenerated to track ../common/aclocal.m4 changes.
766         * config.in: Ditto.
767
768 Fri Apr 24 11:19:20 1998  Tom Tromey  <tromey@cygnus.com>
769
770         * configure.in: Don't call sinclude.
771
772 Fri Apr 24 11:35:01 1998  Andrew Cagney  <cagney@chook.cygnus.com>
773
774         * mips.igen (do_store_left): Pass 0 not NULL to store_memory.
775
776 Tue Apr 21 11:59:50 1998  Andrew Cagney  <cagney@b1.cygnus.com>
777
778         * mips.igen (ERET): Implement.
779
780         * interp.c (decode_coproc): Return sign-extended EPC.
781
782         * mips.igen (ANDI, LUI, MFC0): Add tracing code.
783
784         * interp.c (signal_exception): Do not ignore Trap.
785         (signal_exception): On TRAP, restart at exception address.
786         (HALT_INSTRUCTION, HALT_INSTRUCTION_MASK): Define.
787         (signal_exception): Update.
788         (sim_open): Patch V_COMMON interrupt vector with an abort sequence
789         so that TRAP instructions are caught.
790
791 Mon Apr 20 11:26:55 1998  Andrew Cagney  <cagney@b1.cygnus.com>
792
793         * sim-main.h (struct hilo_access, struct hilo_history): Define,
794         contains HI/LO access history.
795         (struct _sim_cpu): Make hiaccess and loaccess of type hilo_access.
796         (HIACCESS, LOACCESS): Delete, replace with
797         (HIHISTORY, LOHISTORY): New macros.
798         (CHECKHILO): Delete all, moved to mips.igen
799         
800         * gencode.c (build_instruction): Do not generate checks for
801         correct HI/LO register usage.
802
803         * interp.c (old_engine_run): Delete checks for correct HI/LO
804         register usage.
805
806         * mips.igen (check_mt_hilo, check_mf_hilo, check_op_hilo,
807         check_mf_cycles): New functions.
808         (do_mfhi, do_mflo, "mthi", "mtlo", do_ddiv, do_ddivu, do_div,
809         do_divu, domultx, do_mult, do_multu): Use.
810
811         * tx.igen ("madd", "maddu"): Use.
812         
813 Wed Apr 15 18:31:54 1998  Andrew Cagney  <cagney@b1.cygnus.com>
814
815         * mips.igen (DSRAV): Use function do_dsrav.
816         (SRAV): Use new function do_srav.
817
818         * m16.igen (BEQZ, BNEZ): Compare GPR[TRX] not GPR[RX].
819         (B): Sign extend 11 bit immediate.
820         (EXT-B*): Shift 16 bit immediate left by 1.
821         (ADDIU*): Don't sign extend immediate value.
822
823 Wed Apr 15 10:32:15 1998  Andrew Cagney  <cagney@b1.cygnus.com>
824
825         * m16run.c (sim_engine_run): Restore CIA after handling an event.
826
827         * sim-main.h (DELAY_SLOT, NULLIFY_NEXT_INSTRUCTION): For IGEN, use
828         functions.
829
830         * mips.igen (delayslot32, nullify_next_insn): New functions.
831         (m16.igen): Always include.
832         (do_*): Add more tracing.
833
834         * m16.igen (delayslot16): Add NIA argument, could be called by a
835         32 bit MIPS16 instruction.
836         
837         * interp.c (ifetch16): Move function from here.
838         * sim-main.c (ifetch16): To here.
839         
840         * sim-main.c (ifetch16, ifetch32): Update to match current
841         implementations of LH, LW.
842         (signal_exception): Don't print out incorrect hex value of illegal
843         instruction.
844
845 Wed Apr 15 00:17:25 1998  Andrew Cagney  <cagney@b1.cygnus.com>
846
847         * m16run.c (sim_engine_run): Use IMEM16 and IMEM32 to fetch an
848         instruction.
849
850         * m16.igen: Implement MIPS16 instructions.
851         
852         * mips.igen (do_addiu, do_addu, do_and, do_daddiu, do_daddu,
853         do_ddiv, do_ddivu, do_div, do_divu, do_dmultx, do_dmultu, do_srav,
854         do_dsubu, do_mfhi, do_mflo, do_mult, do_multu, do_nor, do_or,
855         do_sll, do_sllv, do_slt, do_slti, do_sltiu, do_sltu, do_sra,
856         do_srl, do_srlv, do_subu, do_xor, do_xori): New functions.  Move
857         bodies of corresponding code from 32 bit insn to these.  Also used
858         by MIPS16 versions of functions.
859         
860         * sim-main.h (RAIDX, T8IDX, T8, SPIDX): Define.
861         (IMEM16): Drop NR argument from macro.
862
863 Sat Apr  4 22:39:50 1998  Andrew Cagney  <cagney@b1.cygnus.com>
864
865         * Makefile.in (SIM_OBJS): Add sim-main.o.
866
867         * sim-main.h (address_translation, load_memory, store_memory,
868         cache_op, sync_operation, prefetch, ifetch32, pending_tick): Mark
869         as INLINE_SIM_MAIN.
870         (pr_addr, pr_uword64): Declare.
871         (sim-main.c): Include when H_REVEALS_MODULE_P.
872         
873         * interp.c (address_translation, load_memory, store_memory,
874         cache_op, sync_operation, prefetch, ifetch32, pending_tick): Move
875         from here.
876         * sim-main.c: To here. Fix compilation problems.
877         
878         * configure.in: Enable inlining.
879         * configure: Re-config.
880
881 Sat Apr  4 20:36:25 1998  Andrew Cagney  <cagney@b1.cygnus.com>
882
883         * configure: Regenerated to track ../common/aclocal.m4 changes.
884
885 Fri Apr  3 04:32:35 1998  Andrew Cagney  <cagney@b1.cygnus.com>
886
887         * mips.igen: Include tx.igen.
888         * Makefile.in (IGEN_INCLUDE): Add tx.igen.
889         * tx.igen: New file, contains MADD and MADDU.
890
891         * interp.c (load_memory): When shifting bytes, use LOADDRMASK not
892         the hardwired constant `7'.
893         (store_memory): Ditto.
894         (LOADDRMASK): Move definition to sim-main.h.
895
896         mips.igen (MTC0): Enable for r3900.
897         (ADDU): Add trace.
898
899         mips.igen (do_load_byte): Delete.
900         (do_load, do_store, do_load_left, do_load_write, do_store_left,
901         do_store_right): New functions.
902         (SW*, LW*, SD*, LD*, SH, LH, SB, LB): Use.
903
904         configure.in: Let the tx39 use igen again.
905         configure: Update.
906         
907 Thu Apr  2 10:59:39 1998  Andrew Cagney  <cagney@b1.cygnus.com>
908
909         * interp.c (sim_monitor): get_mem_info returns a 4 byte quantity,
910         not an address sized quantity.  Return zero for cache sizes.
911
912 Wed Apr  1 23:47:53 1998  Andrew Cagney  <cagney@b1.cygnus.com>
913
914         * mips.igen (r3900): r3900 does not support 64 bit integer
915         operations.
916
917 Mon Mar 30 14:46:05 1998  Gavin Koch  <gavin@cygnus.com>
918
919         * configure.in (mipstx39*-*-*): Use gencode simulator rather
920         than igen one.
921         * configure : Rebuild.
922         
923 Fri Mar 27 16:15:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>
924
925         * configure: Regenerated to track ../common/aclocal.m4 changes.
926
927 Fri Mar 27 15:01:50 1998  Andrew Cagney  <cagney@b1.cygnus.com>
928
929         * interp.c (mips_option_handler): Iterate over MAX_NR_PROCESSORS.
930
931 Wed Mar 25 16:44:27 1998  Ian Carmichael  <iancarm@cygnus.com>
932
933         * configure: Regenerated to track ../common/aclocal.m4 changes.
934         * config.in: Regenerated to track ../common/aclocal.m4 changes.
935
936 Wed Mar 25 12:35:29 1998  Andrew Cagney  <cagney@b1.cygnus.com>
937
938         * configure: Regenerated to track ../common/aclocal.m4 changes.
939
940 Wed Mar 25 10:05:46 1998  Andrew Cagney  <cagney@b1.cygnus.com>
941
942         * interp.c (Max, Min): Comment out functions. Not yet used.
943
944 Wed Mar 18 12:38:12 1998  Andrew Cagney  <cagney@b1.cygnus.com>
945
946         * configure: Regenerated to track ../common/aclocal.m4 changes.
947
948 Tue Mar 17 19:05:20 1998  Frank Ch. Eigler  <fche@cygnus.com>
949
950         * Makefile.in (MIPS_EXTRA_LIBS, SIM_EXTRA_LIBS): Added
951         configurable settings for stand-alone simulator.
952         
953         * configure.in: Added X11 search, just in case.
954         
955         * configure: Regenerated.
956
957 Wed Mar 11 14:09:10 1998  Andrew Cagney  <cagney@b1.cygnus.com>
958
959         * interp.c (sim_write, sim_read, load_memory, store_memory):
960         Replace sim_core_*_map with read_map, write_map, exec_map resp.
961
962 Tue Mar  3 13:58:43 1998  Andrew Cagney  <cagney@b1.cygnus.com>
963
964         * sim-main.h (GETFCC): Return an unsigned value.
965
966 Tue Mar  3 13:21:37 1998  Andrew Cagney  <cagney@b1.cygnus.com>
967
968         * mips.igen (DIV): Fix check for -1 / MIN_INT.
969         (DADD): Result destination is RD not RT.
970
971 Fri Feb 27 13:49:49 1998  Andrew Cagney  <cagney@b1.cygnus.com>
972
973         * sim-main.h (HIACCESS, LOACCESS): Always define.
974
975         * mdmx.igen (Maxi, Mini): Rename Max, Min.
976
977         * interp.c (sim_info): Delete.
978
979 Fri Feb 27 18:41:01 1998  Doug Evans  <devans@canuck.cygnus.com>
980
981         * interp.c (DECLARE_OPTION_HANDLER): Use it.
982         (mips_option_handler): New argument `cpu'.
983         (sim_open): Update call to sim_add_option_table.
984
985 Wed Feb 25 18:56:22 1998  Andrew Cagney  <cagney@b1.cygnus.com>
986
987         * mips.igen (CxC1): Add tracing.
988
989 Fri Feb 20 17:43:21 1998  Andrew Cagney  <cagney@b1.cygnus.com>
990
991         * sim-main.h (Max, Min): Declare.
992
993         * interp.c (Max, Min): New functions.
994
995         * mips.igen (BC1): Add tracing.
996         
997 Thu Feb 19 14:50:00 1998  John Metzler  <jmetzler@cygnus.com>
998         
999         * interp.c Added memory map for stack in vr4100
1000         
1001 Thu Feb 19 10:21:21 1998  Gavin Koch  <gavin@cygnus.com>
1002
1003         * interp.c (load_memory): Add missing "break"'s.
1004
1005 Tue Feb 17 12:45:35 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1006
1007         * interp.c (sim_store_register, sim_fetch_register): Pass in
1008         length parameter.  Return -1.
1009
1010 Tue Feb 10 11:57:40 1998  Ian Carmichael  <iancarm@cygnus.com>
1011
1012         * interp.c: Added hardware init hook, fixed warnings.
1013
1014 Sat Feb  7 17:16:20 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1015
1016         * Makefile.in (itable.h itable.c): Depend on SIM_@sim_gen@_ALL.
1017
1018 Tue Feb  3 11:36:02 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1019
1020         * interp.c (ifetch16): New function.
1021
1022         * sim-main.h (IMEM32): Rename IMEM.
1023         (IMEM16_IMMED): Define.
1024         (IMEM16): Define.
1025         (DELAY_SLOT): Update.
1026         
1027         * m16run.c (sim_engine_run): New file.
1028         
1029         * m16.igen: All instructions except LB.
1030         (LB): Call do_load_byte.
1031         * mips.igen (do_load_byte): New function.
1032         (LB): Call do_load_byte.
1033
1034         * mips.igen: Move spec for insn bit size and high bit from here.
1035         * Makefile.in (tmp-igen, tmp-m16): To here.
1036
1037         * m16.dc: New file, decode mips16 instructions.
1038
1039         * Makefile.in (SIM_NO_ALL): Define.
1040         (tmp-m16): Generate both 16 bit and 32 bit simulator engines.
1041
1042 Tue Feb  3 11:28:00 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1043
1044         * configure.in (mips_fpu_bitsize): For tx39, restrict floating
1045         point unit to 32 bit registers.
1046         * configure: Re-generate.
1047
1048 Sun Feb  1 15:47:14 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1049
1050         * configure.in (sim_use_gen): Make IGEN the default simulator
1051         generator for generic 32 and 64 bit mips targets.
1052         * configure: Re-generate.
1053
1054 Sun Feb  1 16:52:37 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1055
1056         * sim-main.h (SizeFGR): Determine from floating-point and not gpr
1057         bitsize.
1058
1059         * interp.c (sim_fetch_register, sim_store_register): Read/write
1060         FGR from correct location.
1061         (sim_open): Set size of FGR's according to
1062         WITH_TARGET_FLOATING_POINT_BITSIZE.
1063         
1064         * sim-main.h (FGR): Store floating point registers in a separate
1065         array.
1066
1067 Sun Feb  1 16:47:51 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1068
1069         * configure: Regenerated to track ../common/aclocal.m4 changes.
1070
1071 Tue Feb  3 00:10:50 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1072
1073         * interp.c (ColdReset): Call PENDING_INVALIDATE.
1074
1075         * sim-main.h (ENGINE_ISSUE_PREFIX_HOOK): Call PENDING_TICK.
1076
1077         * interp.c (pending_tick): New function.  Deliver pending writes.
1078
1079         * sim-main.h (PENDING_FILL, PENDING_TICK, PENDING_SCHED,
1080         PENDING_BIT, PENDING_INVALIDATE): Re-write pipeline code so that
1081         it can handle mixed sized quantites and single bits.
1082         
1083 Mon Feb  2 17:43:15 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1084
1085         * interp.c (oengine.h): Do not include when building with IGEN.
1086         (sim_open): Replace GPRLEN by WITH_TARGET_WORD_BITSIZE.
1087         (sim_info): Ditto for PROCESSOR_64BIT.
1088         (sim_monitor): Replace ut_reg with unsigned_word.
1089         (*): Ditto for t_reg.
1090         (LOADDRMASK): Define.
1091         (sim_open): Remove defunct check that host FP is IEEE compliant,
1092         using software to emulate floating point.
1093         (value_fpr, ...): Always compile, was conditional on HASFPU.
1094
1095 Sun Feb  1 11:15:29 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1096
1097         * sim-main.h (sim_state): Make the cpu array MAX_NR_PROCESSORS in
1098         size.
1099
1100         * interp.c (SD, CPU): Define.
1101         (mips_option_handler): Set flags in each CPU.
1102         (interrupt_event): Assume CPU 0 is the one being iterrupted.
1103         (sim_close): Do not clear STATE, deleted anyway.
1104         (sim_write, sim_read): Assume CPU zero's vm should be used for
1105         data transfers.
1106         (sim_create_inferior): Set the PC for all processors.
1107         (sim_monitor, store_word, load_word, mips16_entry): Add cpu
1108         argument.
1109         (mips16_entry): Pass correct nr of args to store_word, load_word.
1110         (ColdReset): Cold reset all cpu's.
1111         (signal_exception): Pass cpu to sim_monitor & mips16_entry.
1112         (sim_monitor, load_memory, store_memory, signal_exception): Use
1113         `CPU' instead of STATE_CPU.
1114
1115
1116         * sim-main.h: Replace uses of STATE_CPU with CPU. Replace sd with
1117         SD or CPU_.
1118         
1119         * sim-main.h (signal_exception): Add sim_cpu arg.
1120         (SignalException*): Pass both SD and CPU to signal_exception.
1121         * interp.c (signal_exception): Update.
1122         
1123         * sim-main.h (value_fpr, store_fpr, dotrace, ifetch32), interp.c:
1124         Ditto
1125         (sync_operation, prefetch, cache_op, store_memory, load_memory,
1126         address_translation): Ditto
1127         (decode_coproc, cop_lw, cop_ld, cop_sw, cop_sd): Ditto.
1128         
1129 Sat Jan 31 18:15:41 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1130
1131         * configure: Regenerated to track ../common/aclocal.m4 changes.
1132
1133 Sat Jan 31 14:49:24 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1134
1135         * interp.c (sim_engine_run): Add `nr_cpus' argument.
1136
1137         * mips.igen (model): Map processor names onto BFD name. 
1138
1139         * sim-main.h (CPU_CIA): Delete.
1140         (SET_CIA, GET_CIA): Define
1141
1142 Wed Jan 21 16:16:27 1998  Andrew Cagney  <cagney@b1.cygnus.com>
1143
1144         * sim-main.h (GPR_SET): Define, used by igen when zeroing a
1145         regiser.
1146
1147         * configure.in (default_endian): Configure a big-endian simulator
1148         by default.
1149         * configure: Re-generate.
1150         
1151 Mon Jan 19 22:26:29 1998  Doug Evans  <devans@seba>
1152
1153         * configure: Regenerated to track ../common/aclocal.m4 changes.
1154
1155 Mon Jan  5 20:38:54 1998  Mark Alexander  <marka@cygnus.com>
1156
1157         * interp.c (sim_monitor): Handle Densan monitor outbyte
1158         and inbyte functions.
1159
1160 1997-12-29  Felix Lee  <flee@cygnus.com>
1161
1162         * interp.c (sim_engine_run): msvc cpp barfs on #if (a==b!=c).
1163
1164 Wed Dec 17 14:48:20 1997  Jeffrey A Law  (law@cygnus.com)
1165
1166         * Makefile.in (tmp-igen): Arrange for $zero to always be
1167         reset to zero after every instruction.
1168
1169 Mon Dec 15 23:17:11 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1170
1171         * configure: Regenerated to track ../common/aclocal.m4 changes.
1172         * config.in: Ditto.
1173
1174 Wed Dec 10 17:10:45 1997  Jeffrey A Law  (law@cygnus.com)
1175
1176         * mips.igen (MSUB): Fix to work like MADD.
1177         * gencode.c (MSUB): Similarly.
1178
1179 Thu Dec  4 09:21:05 1997  Doug Evans  <devans@canuck.cygnus.com>
1180
1181         * configure: Regenerated to track ../common/aclocal.m4 changes.
1182
1183 Wed Nov 26 11:00:23 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1184
1185         * mips.igen (LWC1): Correct assembler - lwc1 not swc1.
1186
1187 Sun Nov 23 01:45:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1188
1189         * sim-main.h (sim-fpu.h): Include.
1190
1191         * interp.c (convert, SquareRoot, Recip, Divide, Multiply, Sub,
1192         Add, Negate, AbsoluteValue, Equal, Less, Infinity, NaN): Rewrite
1193         using host independant sim_fpu module.
1194
1195 Thu Nov 20 19:56:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1196
1197         * interp.c (signal_exception): Report internal errors with SIGABRT
1198         not SIGQUIT.
1199
1200         * sim-main.h (C0_CONFIG): New register.
1201         (signal.h): No longer include.
1202
1203         * interp.c (decode_coproc): Allow access C0_CONFIG to register.
1204
1205 Tue Nov 18 15:33:48 1997  Doug Evans  <devans@canuck.cygnus.com>
1206
1207         * Makefile.in (SIM_OBJS): Use $(SIM_NEW_COMMON_OBJS).
1208
1209 Fri Nov 14 11:56:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1210
1211         * mips.igen: Tag vr5000 instructions.
1212         (ANDI): Was missing mipsIV model, fix assembler syntax.
1213         (do_c_cond_fmt): New function.
1214         (C.cond.fmt): Handle mips I-III which do not support CC field
1215         separatly.
1216         (bc1): Handle mips IV which do not have a delaed FCC separatly.
1217         (SDR): Mask paddr when BigEndianMem, not the converse as specified
1218         in IV3.2 spec.
1219         (DMULT, DMULTU): Force use of hosts 64bit multiplication.  Handle
1220         vr5000 which saves LO in a GPR separatly.
1221         
1222         * configure.in (enable-sim-igen): For vr5000, select vr5000
1223         specific instructions.
1224         * configure: Re-generate.
1225         
1226 Wed Nov 12 14:42:52 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1227
1228         * Makefile.in (SIM_OBJS): Add sim-fpu module.
1229
1230         * interp.c (store_fpr), sim-main.h: Add separate fmt_uninterpreted_32 and
1231         fmt_uninterpreted_64 bit cases to switch.  Convert to
1232         fmt_formatted,
1233
1234         * sim-main.h (ENGINE_ISSUE_PREFIX_HOOK): Define,
1235
1236         * mips.igen (SWR): Mask paddr when BigEndianMem, not the converse
1237         as specified in IV3.2 spec.
1238         (MTC1, DMTC1): Call StoreFPR to store the GPR in the FPR.
1239
1240 Tue Nov 11 12:38:23 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1241
1242         * mips.igen: Delay slot branches add OFFSET to NIA not CIA.
1243         (MFC0, MTC0, SWC1, LWC1, SDC1, LDC1): Implement.
1244         (MTC1, MFC1, DMTC1, DMFC1, CFC1, CTC1): Implement separate non
1245         PENDING_FILL versions of instructions.  Simplify.
1246         (X): New function.
1247         (MULT, MULTU): Implement separate RD==0 and RD!=0 versions of
1248         instructions.
1249         (BEQZ, ..., SLT, SLTI, TLT, TLE, TLI, ...): Explicitly cast GPR to
1250         a signed value.
1251         (MTHI, MFHI): Disable code checking HI-LO.
1252         
1253         * sim-main.h (dotrace,tracefh), interp.c: Make dotrace & tracefh
1254         global.
1255         (NULLIFY_NEXT_INSTRUCTION): Call dotrace.
1256
1257 Thu Nov  6 16:36:35 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1258
1259         * gencode.c (build_mips16_operands): Replace IPC with cia.
1260
1261         * interp.c (sim_monitor, signal_exception, cache_op, store_fpr,
1262         value_fpr, cop_ld, cop_lw, cop_sw, cop_sd, decode_coproc): Replace
1263         IPC to `cia'.
1264         (UndefinedResult): Replace function with macro/function
1265         combination.
1266         (sim_engine_run): Don't save PC in IPC.
1267
1268         * sim-main.h (IPC): Delete.
1269
1270
1271         * interp.c (signal_exception, store_word, load_word,
1272         address_translation, load_memory, store_memory, cache_op,
1273         prefetch, sync_operation, ifetch, value_fpr, store_fpr, convert,
1274         cop_lw, cop_ld, cop_sw, cop_sd, decode_coproc, sim_monitor): Add
1275         current instruction address - cia - argument.
1276         (sim_read, sim_write): Call address_translation directly.
1277         (sim_engine_run): Rename variable vaddr to cia.
1278         (signal_exception): Pass cia to sim_monitor
1279         
1280         * sim-main.h (SignalException, LoadWord, StoreWord, CacheOp,
1281         Prefetch, SyncOperation, ValueFPR, StoreFPR, Convert, COP_LW,
1282         COP_LD, COP_SW, COP_SD, DecodeCoproc): Update.
1283
1284         * sim-main.h (SignalExceptionSimulatorFault): Delete definition.
1285         * interp.c (sim_open): Replace SignalExceptionSimulatorFault with
1286         SIM_ASSERT.
1287         
1288         * interp.c (signal_exception): Pass restart address to
1289         sim_engine_restart.
1290
1291         * Makefile.in (semantics.o, engine.o, support.o, itable.o,
1292         idecode.o): Add dependency.
1293
1294         * sim-main.h (SIM_ENGINE_HALT_HOOK, SIM_ENGINE_RESUME_HOOK):
1295         Delete definitions
1296         (DELAY_SLOT): Update NIA not PC with branch address.
1297         (NULLIFY_NEXT_INSTRUCTION): Set NIA to instruction after next.
1298
1299         * mips.igen: Use CIA not PC in branch calculations.
1300         (illegal): Call SignalException.
1301         (BEQ, ADDIU): Fix assembler.
1302
1303 Wed Nov  5 12:19:56 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1304
1305         * m16.igen (JALX): Was missing.
1306
1307         * configure.in (enable-sim-igen): New configuration option.
1308         * configure: Re-generate.
1309         
1310         * sim-main.h (MAX_INSNS, INSN_NAME): Define.
1311
1312         * interp.c (load_memory, store_memory): Delete parameter RAW.
1313         (sim_read, sim_write): Use sim_core_{read,write}_buffer directly
1314         bypassing {load,store}_memory.
1315
1316         * sim-main.h (ByteSwapMem): Delete definition.
1317
1318         * Makefile.in (SIM_OBJS): Add sim-memopt module.
1319
1320         * interp.c (sim_do_command, sim_commands): Delete mips specific
1321         commands.  Handled by module sim-options.
1322                 
1323         * sim-main.h (SIM_HAVE_FLATMEM): Undefine, use sim-core.o module.
1324         (WITH_MODULO_MEMORY): Define.
1325
1326         * interp.c (sim_info): Delete code printing memory size.
1327
1328         * interp.c (mips_size): Nee sim_size, delete function.
1329         (power2): Delete.
1330         (monitor, monitor_base, monitor_size): Delete global variables.
1331         (sim_open, sim_close): Delete code creating monitor and other
1332         memory regions.  Use sim-memopts module, via sim_do_commandf, to
1333         manage memory regions.
1334         (load_memory, store_memory): Use sim-core for memory model.
1335         
1336         * interp.c (address_translation): Delete all memory map code
1337         except line forcing 32 bit addresses.
1338
1339 Wed Nov  5 11:21:11 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1340
1341         * sim-main.h (WITH_TRACE): Delete definition.  Enables common
1342         trace options.
1343
1344         * interp.c (logfh, logfile): Delete globals.
1345         (sim_open, sim_close): Delete code opening & closing log file.
1346         (mips_option_handler): Delete -l and -n options.
1347         (OPTION mips_options): Ditto.
1348
1349         * interp.c (OPTION mips_options): Rename option trace to dinero.
1350         (mips_option_handler): Update.
1351
1352 Wed Nov  5 09:35:59 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1353
1354         * interp.c (fetch_str): New function.
1355         (sim_monitor): Rewrite using sim_read & sim_write.
1356         (sim_open): Check magic number.
1357         (sim_open): Write monitor vectors into memory using sim_write.
1358         (MONITOR_BASE, MONITOR_SIZE, MEM_SIZE): Define.
1359         (sim_read, sim_write): Simplify - transfer data one byte at a
1360         time.
1361         (load_memory, store_memory): Clarify meaning of parameter RAW.
1362
1363         * sim-main.h (isHOST): Defete definition.
1364         (isTARGET): Mark as depreciated.
1365         (address_translation): Delete parameter HOST.
1366
1367         * interp.c (address_translation): Delete parameter HOST.
1368
1369 Wed Oct 29 11:13:56 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1370
1371         * mips.igen: 
1372
1373         * Makefile.in (IGEN_INCLUDE): Files included by mips.igen.
1374         (tmp-igen, tmp-m16): Depend on IGEN_INCLUDE.
1375
1376 Tue Oct 28 11:06:47 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1377
1378         * mips.igen: Add model filter field to records.
1379
1380 Mon Oct 27 17:53:59 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1381
1382         * Makefile.in (SIM_NO_CFLAGS): Define.  Define WITH_IGEN=0.
1383         
1384         interp.c (sim_engine_run): Do not compile function sim_engine_run
1385         when WITH_IGEN == 1.
1386
1387         * configure.in (sim_igen_flags, sim_m16_flags): Set according to
1388         target architecture.
1389
1390         Makefile.in (tmp-igen, tmp-m16): Drop -F and -M options to
1391         igen. Replace with configuration variables sim_igen_flags /
1392         sim_m16_flags.
1393
1394         * m16.igen: New file.  Copy mips16 insns here.
1395         * mips.igen: From here.
1396
1397 Mon Oct 27 13:53:59 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1398
1399         * Makefile.in (SIM_NO_OBJ): Define, move SIM_M16_OBJ, SIM_IGEN_OBJ
1400         to top.
1401         (tmp-igen, tmp-m16): Pass -I srcdir to igen.
1402
1403 Sat Oct 25 16:51:40 1997  Gavin Koch  <gavin@cygnus.com>
1404
1405         * gencode.c (build_instruction): Follow sim_write's lead in using
1406         BigEndianMem instead of !ByteSwapMem.
1407
1408 Fri Oct 24 17:41:49 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1409
1410         * configure.in (sim_gen): Dependent on target, select type of
1411         generator.  Always select old style generator.
1412
1413         configure: Re-generate.
1414
1415         Makefile.in (tmp-igen, tmp-m16, clean-m16, clean-igen): New
1416         targets.
1417         (SIM_M16_CFLAGS, SIM_M16_ALL, SIM_M16_OBJ, BUILT_SRC_FROM_M16,
1418         SIM_IGEN_CFLAGS, SIM_IGEN_ALL, SIM_IGEN_OBJ, BUILT_SRC_FROM_IGEN,
1419         IGEN_TRACE, IGEN_INSN, IGEN_DC): Define
1420         (SIM_EXTRA_CFLAGS, SIM_EXTRA_ALL, SIM_OBJS): Add member
1421         SIM_@sim_gen@_*, set by autoconf.
1422         
1423 Wed Oct 22 12:52:06 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1424
1425         * sim-main.h (NULLIFY_NEXT_INSTRUCTION, DELAY_SLOT): Define.
1426
1427         * interp.c (ColdReset): Remove #ifdef HASFPU, check
1428         CURRENT_FLOATING_POINT instead.
1429
1430         * interp.c (ifetch32): New function. Fetch 32 bit instruction.
1431         (address_translation): Raise exception InstructionFetch when
1432         translation fails and isINSTRUCTION.
1433         
1434         * interp.c (sim_open, sim_write, sim_monitor, store_word,
1435         sim_engine_run): Change type of of vaddr and paddr to
1436         address_word.
1437         (address_translation, prefetch, load_memory, store_memory,
1438         cache_op): Change type of vAddr and pAddr to address_word.
1439
1440         * gencode.c (build_instruction): Change type of vaddr and paddr to
1441         address_word.
1442
1443 Mon Oct 20 15:29:04 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1444
1445         * sim-main.h (ALU64_END, ALU32_END): Use ALU*_OVERFLOW_RESULT
1446         macro to obtain result of ALU op.
1447
1448 Tue Oct 21 17:39:14 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1449
1450         * interp.c (sim_info): Call profile_print.
1451
1452 Mon Oct 20 13:31:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1453
1454         * Makefile.in (SIM_OBJS): Add sim-profile.o module.
1455
1456         * sim-main.h (WITH_PROFILE): Do not define, defined in
1457         common/sim-config.h.  Use sim-profile module.
1458         (simPROFILE): Delete defintion.
1459
1460         * interp.c (PROFILE): Delete definition.
1461         (mips_option_handler): Delete 'p', 'y' and 'x' profile options.
1462         (sim_close): Delete code writing profile histogram.
1463         (mips_set_profile, mips_set_profile_size, writeout16, writeout32):
1464         Delete.
1465         (sim_engine_run): Delete code profiling the PC.
1466
1467 Mon Oct 20 13:31:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1468
1469         * sim-main.h (SIGNEXTEND): Force type of result to unsigned_word.
1470
1471         * interp.c (sim_monitor): Make register pointers of type
1472         unsigned_word*.
1473
1474         * sim-main.h: Make registers of type unsigned_word not
1475         signed_word.
1476
1477 Thu Oct 16 10:31:39 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1478
1479         * interp.c (sync_operation): Rename from SyncOperation, make
1480         global, add SD argument.
1481         (prefetch): Rename from Prefetch, make global, add SD argument.
1482         (decode_coproc): Make global.
1483
1484         * sim-main.h (SyncOperation, DecodeCoproc, Pefetch): Define.
1485
1486         * gencode.c (build_instruction): Generate DecodeCoproc not
1487         decode_coproc calls.
1488
1489         * interp.c (SETFCC, GETFCC, PREVCOC1): Move to sim-main.h
1490         (SizeFGR): Move to sim-main.h
1491         (simHALTEX, simHALTIN, simTRACE, simPROFILE, simDELAYSLOT,
1492         simSIGINT, simJALDELAYSLOT): Move to sim-main.h
1493         (FP_FLAGS, FP_ENABLE, FP_CAUSE, IR, UF, OF, DZ, IO, UO): Move to
1494         sim-main.h.
1495         (FP_FS, FP_MASK_RM, FP_SH_RM, FP_RM_NEAREST, FP_RM_TOPINF,
1496         FP_RM_TOMINF, GETRM): Move to sim-main.h.
1497         (Uncached, CachedNoncoherent, CachedCoherent, Cached,
1498         isINSTRUCTION, ..., AccessLength_BYTE, ...): Move to sim-main.h.
1499         (UserMode, BigEndianMem, ByteSwapMem, ReverseEndian,
1500         BigEndianCPU, status_KSU_mask, ...). Moved to sim-main.h
1501         
1502         * sim-main.h (ALU32_END, ALU64_END): Define. When overflow raise
1503         exception.
1504         (sim-alu.h): Include.
1505         (NULLIFY_NIA, NULL_CIA, CPU_CIA): Define.
1506         (sim_cia): Typedef to instruction_address.
1507         
1508 Thu Oct 16 10:31:41 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1509
1510         * Makefile.in (interp.o): Rename generated file engine.c to
1511         oengine.c.
1512         
1513         * interp.c: Update.
1514         
1515 Thu Oct 16 10:31:40 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1516
1517         * gencode.c (build_instruction): Use FPR_STATE not fpr_state.
1518         
1519 Thu Oct 16 10:31:39 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1520
1521         * gencode.c (build_instruction): For "FPSQRT", output correct
1522         number of arguments to Recip.
1523         
1524 Tue Oct 14 17:38:18 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1525
1526         * Makefile.in (interp.o): Depends on sim-main.h
1527
1528         * interp.c (mips16_entry, ColdReset,dotrace): Add SD argument. Use GPR not registers.
1529
1530         * sim-main.h (sim_cpu): Add registers, register_widths, fpr_state,
1531         ipc, dspc, pending_*, hiaccess, loaccess, state, dsstate fields.
1532         (REGISTERS, REGISTER_WIDTHS, FPR_STATE, IPC, DSPC, PENDING_*,
1533         STATE, DSSTATE): Define
1534         (GPR, FGRIDX, ..): Define.
1535
1536         * interp.c (registers, register_widths, fpr_state, ipc, dspc,
1537         pending_*, hiaccess, loaccess, state, dsstate): Delete globals.
1538         (GPR, FGRIDX, ...): Delete macros.
1539         
1540         * interp.c: Update names to match defines from sim-main.h
1541         
1542 Tue Oct 14 15:11:45 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1543
1544         * interp.c (sim_monitor): Add SD argument.
1545         (sim_warning): Delete.  Replace calls with calls to
1546         sim_io_eprintf.
1547         (sim_error): Delete. Replace calls with sim_io_error.
1548         (open_trace, writeout32, writeout16, getnum): Add SD argument.
1549         (mips_set_profile): Rename from sim_set_profile. Add SD argument.
1550         (mips_set_profile_size): Rename from sim_set_profile_size. Add SD
1551         argument.
1552         (mips_size): Rename from sim_size. Add SD argument.
1553
1554         * interp.c (simulator): Delete global variable.
1555         (callback): Delete global variable.
1556         (mips_option_handler, sim_open, sim_write, sim_read,
1557         sim_store_register, sim_fetch_register, sim_info, sim_do_command,
1558         sim_size,sim_monitor): Use sim_io_* not callback->*.
1559         (sim_open): ZALLOC simulator struct.
1560         (PROFILE): Do not define.
1561
1562 Tue Oct 14 13:35:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1563
1564         * interp.c (sim_open), support.h: Replace CHECKSIM macro found in
1565         support.h with corresponding code.
1566
1567         * sim-main.h (word64, uword64), support.h: Move definition to
1568         sim-main.h.
1569         (WORD64LO, WORD64HI, SET64LO, SET64HI, WORD64, UWORD64): Ditto.
1570
1571         * support.h: Delete
1572         * Makefile.in: Update dependencies
1573         * interp.c: Do not include.
1574         
1575 Tue Oct 14 13:35:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1576
1577         * interp.c (address_translation, load_memory, store_memory,
1578         cache_op): Rename to from AddressTranslation et.al., make global,
1579         add SD argument
1580         
1581         * sim-main.h (AddressTranslation, LoadMemory, StoreMemory,
1582         CacheOp): Define.
1583         
1584         * interp.c (SignalException): Rename to signal_exception, make
1585         global.
1586
1587         * interp.c (Interrupt, ...): Move definitions to sim-main.h.
1588         
1589         * sim-main.h (SignalException, SignalExceptionInterrupt,
1590         SignalExceptionInstructionFetch, SignalExceptionAddressStore,
1591         SignalExceptionAddressLoad, SignalExceptionSimulatorFault,
1592         SignalExceptionIntegerOverflow, SignalExceptionCoProcessorUnusable):
1593         Define.
1594         
1595         * interp.c, support.h: Use.
1596         
1597 Tue Oct 14 13:19:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1598
1599         * interp.c (ValueFPR, StoreFPR), sim-main.h: Make global, rename
1600         to value_fpr / store_fpr. Add SD argument.
1601         (NaN, Infinity, Less, Equal, AbsoluteValue, Negate, Add, Sub,
1602         Multiply, Divide, Recip, SquareRoot, Convert): Make global.
1603
1604         * sim-main.h (ValueFPR, StoreFPR): Define.
1605         
1606 Tue Oct 14 13:06:55 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1607
1608         * interp.c (sim_engine_run): Check consistency between configure
1609         WITH_TARGET_WORD_BITSIZE and WITH_FLOATING_POINT and gensim GPRLEN
1610         and HASFPU.
1611
1612         * configure.in (mips_bitsize): Configure WITH_TARGET_WORD_BITSIZE.
1613         (mips_fpu): Configure WITH_FLOATING_POINT.
1614         (mips_endian): Configure WITH_TARGET_ENDIAN.
1615         * configure: Update.
1616
1617 Fri Oct  3 09:28:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1618
1619         * configure: Regenerated to track ../common/aclocal.m4 changes.
1620
1621 Mon Sep 29 14:45:00 1997  Bob Manson  <manson@charmed.cygnus.com>
1622
1623         * configure: Regenerated.
1624
1625 Fri Sep 26 12:48:18 1997  Mark Alexander  <marka@cygnus.com>
1626
1627         * interp.c: Allow Debug, DEPC, and EPC registers to be examined in GDB.
1628
1629 Thu Sep 25 11:15:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1630
1631         * gencode.c (print_igen_insn_models): Assume certain architectures
1632         include all mips* instructions.
1633         (print_igen_insn_format): Use data_size==-1 as marker for MIPS16
1634         instruction.
1635
1636         * Makefile.in (tmp.igen): Add target. Generate igen input from
1637         gencode file.
1638
1639         * gencode.c (FEATURE_IGEN): Define.
1640         (main): Add --igen option.  Generate output in igen format.
1641         (process_instructions): Format output according to igen option.
1642         (print_igen_insn_format): New function.
1643         (print_igen_insn_models): New function.
1644         (process_instructions): Only issue warnings and ignore
1645         instructions when no FEATURE_IGEN.
1646
1647 Wed Sep 24 17:38:57 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1648
1649         * interp.c (COP_SD, COP_LD): Add UNUSED to pacify GCC for some
1650         MIPS targets.
1651
1652 Tue Sep 23 11:04:38 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1653
1654         * configure: Regenerated to track ../common/aclocal.m4 changes.
1655
1656 Tue Sep 23 10:19:51 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1657
1658         * Makefile.in (SIM_ALIGNMENT, SIM_ENDIAN, SIM_HOSTENDIAN,
1659         SIM_RESERVED_BITS): Delete, moved to common.
1660         (SIM_EXTRA_CFLAGS): Update.
1661         
1662 Mon Sep 22 11:46:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1663
1664         * configure.in: Configure non-strict memory alignment.
1665         * configure: Regenerated to track ../common/aclocal.m4 changes.
1666
1667 Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1668
1669         * configure: Regenerated to track ../common/aclocal.m4 changes.
1670
1671 Sat Sep 20 14:07:28 1997  Gavin Koch  <gavin@cygnus.com>
1672
1673         * gencode.c (SDBBP,DERET): Added (3900) insns.
1674         (RFE): Turn on for 3900.
1675         * interp.c (DebugBreakPoint,DEPC,Debug,Debug_*): Added.
1676         (dsstate): Made global.
1677         (SUBTARGET_R3900): Added.
1678         (CANCELDELAYSLOT): New.
1679         (SignalException): Ignore SystemCall rather than ignore and
1680         terminate.  Add DebugBreakPoint handling.
1681         (decode_coproc): New insns RFE, DERET; and new registers Debug
1682         and DEPC protected by SUBTARGET_R3900.
1683         (sim_engine_run): Use CANCELDELAYSLOT rather than clearing
1684         bits explicitly.
1685         * Makefile.in,configure.in: Add mips subtarget option.
1686         * configure: Update.    
1687
1688 Fri Sep 19 09:33:27 1997  Gavin Koch  <gavin@cygnus.com>
1689
1690         * gencode.c: Add r3900 (tx39).
1691         
1692
1693 Tue Sep 16 15:52:04 1997  Gavin Koch  <gavin@cygnus.com>
1694
1695         * gencode.c (build_instruction): Don't need to subtract 4 for
1696         JALR, just 2.
1697
1698 Tue Sep 16 11:32:28 1997  Gavin Koch  <gavin@cygnus.com>
1699
1700         * interp.c: Correct some HASFPU problems.
1701
1702 Mon Sep 15 17:36:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1703
1704         * configure: Regenerated to track ../common/aclocal.m4 changes.
1705
1706 Fri Sep 12 12:01:39 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1707
1708         * interp.c (mips_options): Fix samples option short form, should
1709         be `x'.
1710
1711 Thu Sep 11 09:35:29 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1712
1713         * interp.c (sim_info): Enable info code.  Was just returning.
1714
1715 Tue Sep  9 17:30:57 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1716
1717         * interp.c (decode_coproc): Clarify warning about unsuported MTC0,
1718         MFC0.
1719
1720 Tue Sep  9 16:28:28 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1721
1722         * gencode.c (build_instruction): Use SIGNED64 for 64 bit
1723         constants.
1724         (build_instruction): Ditto for LL.
1725
1726 Thu Sep  4 17:21:23 1997  Doug Evans  <dje@seba>
1727
1728         * configure: Regenerated to track ../common/aclocal.m4 changes.
1729
1730 Wed Aug 27 18:13:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1731
1732         * configure: Regenerated to track ../common/aclocal.m4 changes.
1733         * config.in: Ditto.
1734
1735 Wed Aug 27 14:12:27 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1736
1737         * interp.c (sim_open): Add call to sim_analyze_program, update
1738         call to sim_config.
1739
1740 Tue Aug 26 10:40:07 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1741
1742         * interp.c (sim_kill): Delete.
1743         (sim_create_inferior): Add ABFD argument. Set PC from same.
1744         (sim_load): Move code initializing trap handlers from here.
1745         (sim_open): To here.
1746         (sim_load): Delete, use sim-hload.c.
1747
1748         * Makefile.in (SIM_OBJS): Add sim-hload.o module.
1749
1750 Mon Aug 25 17:50:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1751
1752         * configure: Regenerated to track ../common/aclocal.m4 changes.
1753         * config.in: Ditto.
1754
1755 Mon Aug 25 15:59:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1756
1757         * interp.c (sim_open): Add ABFD argument.
1758         (sim_load): Move call to sim_config from here.
1759         (sim_open): To here.  Check return status.
1760
1761 Fri Jul 25 15:00:45 1997  Gavin Koch  <gavin@cygnus.com>
1762  
1763         * gencode.c (build_instruction): Two arg MADD should
1764         not assign result to $0.
1765  
1766 Thu Jun 26 12:13:17 1997  Angela Marie Thomas (angela@cygnus.com)
1767
1768         * sim/mips/configure: Change default_sim_endian to 0 (bi-endian)
1769         * sim/mips/configure.in: Regenerate.
1770
1771 Wed Jul  9 10:29:21 1997  Andrew Cagney  <cagney@critters.cygnus.com>
1772
1773         * interp.c (SUB_REG_UW, SUB_REG_SW, SUB_REG_*): Use more explicit
1774         signed8, unsigned8 et.al. types.
1775
1776         * interp.c (SUB_REG_FETCH): Handle both little and big endian
1777         hosts when selecting subreg.
1778
1779 Wed Jul  2 11:54:10 1997  Jeffrey A Law  (law@cygnus.com)
1780
1781         * interp.c (sim_engine_run): Reset the ZERO register to zero
1782         regardless of FEATURE_WARN_ZERO.
1783         * gencode.c (FEATURE_WARNINGS): Remove FEATURE_WARN_ZERO.
1784
1785 Wed Jun  4 10:43:14 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1786
1787         * interp.c (decode_coproc): Implement MTC0 N, CAUSE.
1788         (SignalException): For BreakPoints ignore any mode bits and just
1789         save the PC.
1790         (SignalException): Always set the CAUSE register.
1791
1792 Tue Jun  3 05:00:33 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1793
1794         * interp.c (SignalException): Clear the simDELAYSLOT flag when an
1795         exception has been taken.
1796
1797         * interp.c: Implement the ERET and mt/f sr instructions.
1798
1799 Sat May 31 00:44:16 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1800
1801         * interp.c (SignalException): Don't bother restarting an
1802         interrupt.
1803
1804 Fri May 30 23:41:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1805
1806         * interp.c (SignalException): Really take an interrupt.
1807         (interrupt_event): Only deliver interrupts when enabled.
1808
1809 Tue May 27 20:08:06 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1810
1811         * interp.c (sim_info): Only print info when verbose.
1812         (sim_info) Use sim_io_printf for output.
1813         
1814 Tue May 27 14:22:23 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1815
1816         * interp.c (CoProcPresent): Add UNUSED attribute - not used by all
1817         mips architectures.
1818
1819 Tue May 27 14:22:23 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1820
1821         * interp.c (sim_do_command): Check for common commands if a
1822         simulator specific command fails.
1823
1824 Thu May 22 09:32:03 1997  Gavin Koch  <gavin@cygnus.com>
1825
1826         * interp.c (sim_engine_run): ifdef out uses of simSTOP, simSTEP
1827         and simBE when DEBUG is defined.
1828
1829 Wed May 21 09:08:10 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1830
1831         * interp.c (interrupt_event): New function.  Pass exception event
1832         onto exception handler.
1833
1834         * configure.in: Check for stdlib.h.
1835         * configure: Regenerate.
1836
1837         * gencode.c (build_instruction): Add UNUSED attribute to tempS
1838         variable declaration.
1839         (build_instruction): Initialize memval1.
1840         (build_instruction): Add UNUSED attribute to byte, bigend,
1841         reverse.
1842         (build_operands): Ditto.
1843
1844         * interp.c: Fix GCC warnings.
1845         (sim_get_quit_code): Delete.
1846
1847         * configure.in: Add INLINE, ENDIAN, HOSTENDIAN and WARNINGS.
1848         * Makefile.in: Ditto.
1849         * configure: Re-generate.
1850         
1851         * Makefile.in (SIM_OBJS): Add sim-watch.o module.
1852
1853 Tue May 20 15:08:56 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1854
1855         * interp.c (mips_option_handler): New function parse argumes using
1856         sim-options.
1857         (myname): Replace with STATE_MY_NAME.
1858         (sim_open): Delete check for host endianness - performed by
1859         sim_config.
1860         (simHOSTBE, simBE): Delete, replaced by sim-endian flags.
1861         (sim_open): Move much of the initialization from here.
1862         (sim_load): To here.  After the image has been loaded and
1863         endianness set.
1864         (sim_open): Move ColdReset from here.
1865         (sim_create_inferior): To here.
1866         (sim_open): Make FP check less dependant on host endianness.
1867
1868         * Makefile.in (SIM_RUN_OBJS): Set to nrun.o - use new version or
1869         run.
1870         * interp.c (sim_set_callbacks): Delete.
1871
1872         * interp.c (membank, membank_base, membank_size): Replace with
1873         STATE_MEMORY, STATE_MEM_SIZE, STATE_MEM_BASE.
1874         (sim_open): Remove call to callback->init. gdb/run do this.
1875
1876         * interp.c: Update
1877
1878         * sim-main.h (SIM_HAVE_FLATMEM): Define.
1879
1880         * interp.c (big_endian_p): Delete, replaced by
1881         current_target_byte_order.
1882
1883 Tue May 20 13:55:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1884
1885         * interp.c (host_read_long, host_read_word, host_swap_word,
1886         host_swap_long): Delete. Using common sim-endian.
1887         (sim_fetch_register, sim_store_register): Use H2T.
1888         (pipeline_ticks): Delete.  Handled by sim-events.
1889         (sim_info): Update.
1890         (sim_engine_run): Update.
1891
1892 Tue May 20 13:42:03 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1893
1894         * interp.c (sim_stop_reason): Move code determining simEXCEPTION
1895         reason from here.
1896         (SignalException): To here. Signal using sim_engine_halt.
1897         (sim_stop_reason): Delete, moved to common.
1898         
1899 Tue May 20 10:19:48 1997  Andrew Cagney  <cagney@b2.cygnus.com>
1900
1901         * interp.c (sim_open): Add callback argument.
1902         (sim_set_callbacks): Delete SIM_DESC argument.
1903         (sim_size): Ditto.
1904
1905 Mon May 19 18:20:38 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1906
1907         * Makefile.in (SIM_OBJS): Add common modules.
1908
1909         * interp.c (sim_set_callbacks): Also set SD callback.
1910         (set_endianness, xfer_*, swap_*): Delete.
1911         (host_read_word, host_read_long, host_swap_word, host_swap_long):
1912         Change to functions using sim-endian macros.
1913         (control_c, sim_stop): Delete, use common version.
1914         (simulate): Convert into.
1915         (sim_engine_run): This function.
1916         (sim_resume): Delete.
1917         
1918         * interp.c (simulation): New variable - the simulator object.
1919         (sim_kind): Delete global - merged into simulation.
1920         (sim_load): Cleanup.  Move PC assignment from here.
1921         (sim_create_inferior): To here.
1922
1923         * sim-main.h: New file.
1924         * interp.c (sim-main.h): Include.
1925         
1926 Thu Apr 24 00:39:51 1997  Doug Evans  <dje@canuck.cygnus.com>
1927
1928         * configure: Regenerated to track ../common/aclocal.m4 changes.
1929
1930 Wed Apr 23 17:32:19 1997  Doug Evans  <dje@canuck.cygnus.com>
1931
1932         * tconfig.in (SIM_HAVE_BIENDIAN): Define.
1933
1934 Mon Apr 21 17:16:13 1997  Gavin Koch  <gavin@cygnus.com>
1935
1936         * gencode.c (build_instruction): DIV instructions: check 
1937         for division by zero and integer overflow before using 
1938         host's division operation.
1939
1940 Thu Apr 17 03:18:14 1997  Doug Evans  <dje@canuck.cygnus.com>
1941
1942         * Makefile.in (SIM_OBJS): Add sim-load.o.
1943         * interp.c: #include bfd.h.
1944         (target_byte_order): Delete.
1945         (sim_kind, myname, big_endian_p): New static locals.
1946         (sim_open): Set sim_kind, myname.  Move call to set_endianness to
1947         after argument parsing.  Recognize -E arg, set endianness accordingly.
1948         (sim_load): Return SIM_RC.  New arg abfd.  Call sim_load_file to
1949         load file into simulator.  Set PC from bfd.
1950         (sim_create_inferior): Return SIM_RC.  Delete arg start_address.
1951         (set_endianness): Use big_endian_p instead of target_byte_order.
1952
1953 Wed Apr 16 17:55:37 1997  Andrew Cagney  <cagney@b1.cygnus.com>
1954
1955         * interp.c (sim_size): Delete prototype - conflicts with
1956         definition in remote-sim.h.  Correct definition.
1957
1958 Mon Apr  7 15:45:02 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
1959
1960         * configure: Regenerated to track ../common/aclocal.m4 changes.
1961         * config.in: Ditto.
1962
1963 Wed Apr  2 15:06:28 1997  Doug Evans  <dje@canuck.cygnus.com>
1964
1965         * interp.c (sim_open): New arg `kind'.
1966
1967         * configure: Regenerated to track ../common/aclocal.m4 changes.
1968
1969 Wed Apr  2 14:34:19 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
1970
1971         * configure: Regenerated to track ../common/aclocal.m4 changes.
1972
1973 Tue Mar 25 11:38:22 1997  Doug Evans  <dje@canuck.cygnus.com>
1974
1975         * interp.c (sim_open): Set optind to 0 before calling getopt.
1976
1977 Wed Mar 19 01:14:00 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
1978
1979         * configure: Regenerated to track ../common/aclocal.m4 changes.
1980
1981 Mon Mar 17 10:52:59 1997  Gavin Koch  <gavin@cetus.cygnus.com>
1982
1983         * interp.c : Replace uses of pr_addr with pr_uword64
1984         where the bit length is always 64 independent of SIM_ADDR.
1985         (pr_uword64) : added.
1986
1987 Mon Mar 17 15:10:07 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
1988
1989         * configure: Re-generate.
1990
1991 Fri Mar 14 10:34:11 1997  Michael Meissner  <meissner@cygnus.com>
1992
1993         * configure: Regenerate to track ../common/aclocal.m4 changes.
1994
1995 Thu Mar 13 12:51:36 1997  Doug Evans  <dje@canuck.cygnus.com>
1996
1997         * interp.c (sim_open): New SIM_DESC result.  Argument is now
1998         in argv form.
1999         (other sim_*): New SIM_DESC argument.
2000
2001 Mon Feb 24 22:47:14 1997  Dawn Perchik  <dawn@cygnus.com>
2002
2003         * interp.c: Fix printing of addresses for non-64-bit targets.
2004         (pr_addr): Add function to print address based on size.
2005
2006 Wed Feb 19 14:42:09 1997  Mark Alexander  <marka@cygnus.com>
2007
2008         * interp.c (simopen): Add support for LSI MiniRISC PMON vectors.
2009
2010 Thu Feb 13 14:08:30 1997  Ian Lance Taylor  <ian@cygnus.com>
2011
2012         * gencode.c (build_mips16_operands): Correct computation of base
2013         address for extended PC relative instruction.
2014
2015 Thu Feb  6 17:16:15 1997  Ian Lance Taylor  <ian@cygnus.com>
2016
2017         * interp.c (mips16_entry): Add support for floating point cases.
2018         (SignalException): Pass floating point cases to mips16_entry.
2019         (ValueFPR): Don't restrict fmt_single and fmt_word to even
2020         registers.
2021         (StoreFPR): Likewise.  Also, don't clobber fpr + 1 for fmt_single
2022         or fmt_word.
2023         (COP_LW): Pass fmt_word rather than fmt_uninterpreted to StoreFPR,
2024         and then set the state to fmt_uninterpreted.
2025         (COP_SW): Temporarily set the state to fmt_word while calling
2026         ValueFPR.
2027
2028 Tue Feb  4 16:48:25 1997  Ian Lance Taylor  <ian@cygnus.com>
2029
2030         * gencode.c (build_instruction): The high order may be set in the
2031         comparison flags at any ISA level, not just ISA 4.
2032
2033 Tue Feb  4 13:33:30 1997  Doug Evans  <dje@canuck.cygnus.com>
2034
2035         * Makefile.in (@COMMON_MAKEFILE_FRAG): Use
2036         COMMON_{PRE,POST}_CONFIG_FRAG instead.
2037         * configure.in: sinclude ../common/aclocal.m4.
2038         * configure: Regenerated.
2039
2040 Fri Jan 31 11:11:45 1997  Ian Lance Taylor  <ian@cygnus.com>
2041
2042         * configure: Rebuild after change to aclocal.m4.
2043
2044 Thu Jan 23 11:46:23 1997  Stu Grossman  (grossman@critters.cygnus.com)
2045
2046         * configure configure.in Makefile.in:  Update to new configure
2047         scheme which is more compatible with WinGDB builds.
2048         * configure.in:  Improve comment on how to run autoconf.
2049         * configure:  Re-run autoconf to get new ../common/aclocal.m4.
2050         * Makefile.in:  Use autoconf substitution to install common
2051         makefile fragment.
2052
2053 Wed Jan  8 12:39:03 1997  Jim Wilson  <wilson@cygnus.com>
2054
2055         * gencode.c (build_instruction): Use BigEndianCPU instead of
2056         ByteSwapMem.
2057
2058 Thu Jan 02 22:23:04 1997  Mark Alexander  <marka@cygnus.com>
2059
2060         * interp.c (sim_monitor): Make output to stdout visible in
2061         wingdb's I/O log window.
2062
2063 Tue Dec 31 07:04:00 1996  Mark Alexander  <marka@cygnus.com>
2064
2065         * support.h: Undo previous change to SIGTRAP
2066         and SIGQUIT values.
2067
2068 Mon Dec 30 17:36:06 1996  Ian Lance Taylor  <ian@cygnus.com>
2069
2070         * interp.c (store_word, load_word): New static functions.
2071         (mips16_entry): New static function.
2072         (SignalException): Look for mips16 entry and exit instructions.
2073         (simulate): Use the correct index when setting fpr_state after
2074         doing a pending move.
2075
2076 Sun Dec 29 09:37:18 1996  Mark Alexander  <marka@cygnus.com>
2077
2078         * interp.c: Fix byte-swapping code throughout to work on
2079         both little- and big-endian hosts.
2080
2081 Sun Dec 29 09:18:32 1996  Mark Alexander  <marka@cygnus.com>
2082
2083         * support.h: Make definitions of SIGTRAP and SIGQUIT consistent
2084         with gdb/config/i386/xm-windows.h.
2085
2086 Fri Dec 27 22:48:51 1996  Mark Alexander  <marka@cygnus.com>
2087
2088         * gencode.c (build_instruction): Work around MSVC++ code gen bug
2089         that messes up arithmetic shifts.
2090
2091 Fri Dec 20 11:04:05 1996  Stu Grossman  (grossman@critters.cygnus.com)
2092
2093         * support.h:  Use _WIN32 instead of __WIN32__.  Also add defs for
2094         SIGTRAP and SIGQUIT for _WIN32.
2095
2096 Thu Dec 19 14:07:27 1996  Ian Lance Taylor  <ian@cygnus.com>
2097
2098         * gencode.c (build_instruction) [MUL]: Cast operands to word64, to
2099         force a 64 bit multiplication.
2100         (build_instruction) [OR]: In mips16 mode, don't do anything if the
2101         destination register is 0, since that is the default mips16 nop
2102         instruction.
2103
2104 Mon Dec 16 14:59:38 1996  Ian Lance Taylor  <ian@cygnus.com>
2105
2106         * gencode.c (MIPS16_DECODE): SWRASP is I8, not RI.
2107         (build_endian_shift): Don't check proc64.
2108         (build_instruction): Always set memval to uword64.  Cast op2 to
2109         uword64 when shifting it left in memory instructions.  Always use
2110         the same code for stores--don't special case proc64.
2111
2112         * gencode.c (build_mips16_operands): Fix base PC value for PC
2113         relative operands.
2114         (build_instruction): Call JALDELAYSLOT rather than DELAYSLOT for a
2115         jal instruction.
2116         * interp.c (simJALDELAYSLOT): Define.
2117         (JALDELAYSLOT): Define.
2118         (INDELAYSLOT, INJALDELAYSLOT): Define.
2119         (simulate): Clear simJALDELAYSLOT when simDELAYSLOT is cleared.
2120
2121 Tue Dec 24 22:11:20 1996  Angela Marie Thomas (angela@cygnus.com)
2122
2123         * interp.c (sim_open): add flush_cache as a PMON routine
2124         (sim_monitor): handle flush_cache by ignoring it
2125
2126 Wed Dec 11 13:53:51 1996  Jim Wilson  <wilson@cygnus.com>
2127
2128         * gencode.c (build_instruction): Use !ByteSwapMem instead of
2129         BigEndianMem.
2130         * interp.c (CONFIG, config_EP_{mask,shift,D,DxxDxx, config_BE): Delete.
2131         (BigEndianMem): Rename to ByteSwapMem and change sense.
2132         (BigEndianCPU, sim_write, LoadMemory, StoreMemory): Change
2133         BigEndianMem references to !ByteSwapMem.
2134         (set_endianness): New function, with prototype.
2135         (sim_open): Call set_endianness.
2136         (sim_info): Use simBE instead of BigEndianMem.
2137         (xfer_direct_word, xfer_direct_long, swap_direct_word,
2138         swap_direct_long, xfer_big_word, xfer_big_long, xfer_little_word,
2139         xfer_little_long, swap_word, swap_long): Delete unnecessary MSC_VER
2140         ifdefs, keeping the prototype declaration.
2141         (swap_word): Rewrite correctly.
2142         (ColdReset): Delete references to CONFIG.  Delete endianness related
2143         code; moved to set_endianness.
2144         
2145 Tue Dec 10 11:32:04 1996  Jim Wilson  <wilson@cygnus.com>
2146
2147         * gencode.c (build_instruction, case JUMP): Truncate PC to 32 bits.
2148         * interp.c (CHECKHILO): Define away.
2149         (simSIGINT): New macro.
2150         (membank_size): Increase from 1MB to 2MB.
2151         (control_c): New function.
2152         (sim_resume): Rename parameter signal to signal_number.  Add local
2153         variable prev.  Call signal before and after simulate.
2154         (sim_stop_reason): Add simSIGINT support.
2155         (sim_warning, sim_error, dotrace, SignalException): Define as stdarg
2156         functions always.
2157         (sim_warning): Delete call to SignalException.  Do call printf_filtered
2158         if logfh is NULL.
2159         (AddressTranslation): Add #ifdef DEBUG around debugging message and
2160         a call to sim_warning.
2161
2162 Wed Nov 27 11:53:50 1996  Ian Lance Taylor  <ian@cygnus.com>
2163
2164         * gencode.c (process_instructions): If ! proc64, skip DOUBLEWORD
2165         16 bit instructions.
2166
2167 Tue Nov 26 11:53:12 1996  Ian Lance Taylor  <ian@cygnus.com>
2168
2169         Add support for mips16 (16 bit MIPS implementation):
2170         * gencode.c (inst_type): Add mips16 instruction encoding types.
2171         (GETDATASIZEINSN): Define.
2172         (MIPS_DECODE): Add REG flag to dsllv, dsrav, and dsrlv.  Add
2173         jalx.  Add LEFT flag to mfhi and mflo.  Add RIGHT flag to mthi and
2174         mtlo.
2175         (MIPS16_DECODE): New table, for mips16 instructions.
2176         (bitmap_val): New static function.
2177         (struct mips16_op): Define.
2178         (mips16_op_table): New table, for mips16 operands.
2179         (build_mips16_operands): New static function.
2180         (process_instructions): If PC is odd, decode a mips16
2181         instruction.  Break out instruction handling into new
2182         build_instruction function.
2183         (build_instruction): New static function, broken out of
2184         process_instructions.  Check modifiers rather than flags for SHIFT
2185         bit count and m[ft]{hi,lo} direction.
2186         (usage): Pass program name to fprintf.
2187         (main): Remove unused variable this_option_optind.  Change
2188         ``*loptarg++'' to ``loptarg++''.
2189         (my_strtoul): Parenthesize && within ||.
2190         * interp.c (LoadMemory): Accept a halfword pAddr if vAddr is odd.
2191         (simulate): If PC is odd, fetch a 16 bit instruction, and
2192         increment PC by 2 rather than 4.
2193         * configure.in: Add case for mips16*-*-*.
2194         * configure: Rebuild.
2195
2196 Fri Nov 22 08:49:36 1996  Mark Alexander  <marka@cygnus.com>
2197
2198         * interp.c: Allow -t to enable tracing in standalone simulator.
2199         Fix garbage output in trace file and error messages.
2200
2201 Wed Nov 20 01:54:37 1996  Doug Evans  <dje@canuck.cygnus.com>
2202
2203         * Makefile.in: Delete stuff moved to ../common/Make-common.in.
2204         (SIM_{OBJS,EXTRA_CFLAGS,EXTRA_CLEAN}): Define.
2205         * configure.in: Simplify using macros in ../common/aclocal.m4.
2206         * configure: Regenerated.
2207         * tconfig.in: New file.
2208
2209 Tue Nov 12 13:34:00 1996  Dawn Perchik  <dawn@cygnus.com>
2210
2211         * interp.c: Fix bugs in 64-bit port.
2212         Use ansi function declarations for msvc compiler.
2213         Initialize and test file pointer in trace code.
2214         Prevent duplicate definition of LAST_EMED_REGNUM.
2215
2216 Tue Oct 15 11:07:06 1996  Mark Alexander  <marka@cygnus.com>
2217
2218         * interp.c (xfer_big_long): Prevent unwanted sign extension.
2219
2220 Thu Sep 26 17:35:00 1996  James G. Smith  <jsmith@cygnus.co.uk>
2221
2222         * interp.c (SignalException): Check for explicit terminating
2223         breakpoint value.
2224         * gencode.c: Pass instruction value through SignalException()
2225         calls for Trap, Breakpoint and Syscall.
2226
2227 Thu Sep 26 11:35:17 1996  James G. Smith  <jsmith@cygnus.co.uk>
2228
2229         * interp.c (SquareRoot): Add HAVE_SQRT check to ensure sqrt() is
2230         only used on those hosts that provide it.
2231         * configure.in: Add sqrt() to list of functions to be checked for.
2232         * config.in: Re-generated.
2233         * configure: Re-generated.
2234
2235 Fri Sep 20 15:47:12 1996  Ian Lance Taylor  <ian@cygnus.com>
2236
2237         * gencode.c (process_instructions): Call build_endian_shift when
2238         expanding STORE RIGHT, to fix swr.
2239         * support.h (SIGNEXTEND): If the sign bit is not set, explicitly
2240         clear the high bits.
2241         * interp.c (Convert): Fix fmt_single to fmt_long to not truncate.
2242         Fix float to int conversions to produce signed values.
2243
2244 Thu Sep 19 15:34:17 1996  Ian Lance Taylor  <ian@cygnus.com>
2245
2246         * gencode.c (MIPS_DECODE): Set UNSIGNED for multu instruction.
2247         (process_instructions): Correct handling of nor instruction.
2248         Correct shift count for 32 bit shift instructions. Correct sign
2249         extension for arithmetic shifts to not shift the number of bits in
2250         the type.  Fix 64 bit multiply high word calculation.  Fix 32 bit
2251         unsigned multiply.  Fix ldxc1 and friends to use coprocessor 1.
2252         Fix madd.
2253         * interp.c (CHECKHILO): Don't set HIACCESS, LOACCESS, or HLPC.
2254         It's OK to have a mult follow a mult.  What's not OK is to have a
2255         mult follow an mfhi.
2256         (Convert): Comment out incorrect rounding code.
2257
2258 Mon Sep 16 11:38:16 1996  James G. Smith  <jsmith@cygnus.co.uk>
2259
2260         * interp.c (sim_monitor): Improved monitor printf
2261         simulation. Tidied up simulator warnings, and added "--log" option
2262         for directing warning message output.
2263         * gencode.c: Use sim_warning() rather than WARNING macro.
2264
2265 Thu Aug 22 15:03:12 1996  Ian Lance Taylor  <ian@cygnus.com>
2266
2267         * Makefile.in (gencode): Depend upon gencode.o, getopt.o, and
2268         getopt1.o, rather than on gencode.c.  Link objects together.
2269         Don't link against -liberty.
2270         (gencode.o, getopt.o, getopt1.o): New targets.
2271         * gencode.c: Include <ctype.h> and "ansidecl.h".
2272         (AND): Undefine after including "ansidecl.h".
2273         (ULONG_MAX): Define if not defined.
2274         (OP_*): Don't define macros; now defined in opcode/mips.h.
2275         (main): Call my_strtoul rather than strtoul.
2276         (my_strtoul): New static function.
2277
2278 Wed Jul 17 18:12:38 1996  Stu Grossman  (grossman@critters.cygnus.com)
2279
2280         * gencode.c (process_instructions):  Generate word64 and uword64
2281         instead of `long long' and `unsigned long long' data types.
2282         * interp.c:  #include sysdep.h to get signals, and define default
2283         for SIGBUS.
2284         * (Convert):  Work around for Visual-C++ compiler bug with type
2285         conversion.
2286         * support.h:  Make things compile under Visual-C++ by using
2287         __int64 instead of `long long'.  Change many refs to long long
2288         into word64/uword64 typedefs.
2289
2290 Wed Jun 26 12:24:55 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)
2291
2292         * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
2293         INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
2294         (docdir): Removed.
2295         * configure.in (AC_PREREQ): autoconf 2.5 or higher.
2296         (AC_PROG_INSTALL): Added.
2297         (AC_PROG_CC): Moved to before configure.host call.
2298         * configure: Rebuilt.
2299         
2300 Wed Jun  5 08:28:13 1996  James G. Smith  <jsmith@cygnus.co.uk>
2301
2302         * configure.in: Define @SIMCONF@ depending on mips target.
2303         * configure: Rebuild.
2304         * Makefile.in (run): Add @SIMCONF@ to control simulator
2305         construction.
2306         * gencode.c: Change LOADDRMASK to 64bit memory model only.
2307         * interp.c: Remove some debugging, provide more detailed error
2308         messages, update memory accesses to use LOADDRMASK.
2309         
2310 Mon Jun  3 11:55:03 1996  Ian Lance Taylor  <ian@cygnus.com>
2311
2312         * configure.in: Add calls to AC_CONFIG_HEADER, AC_CHECK_HEADERS,
2313         AC_CHECK_LIB, and AC_CHECK_FUNCS.  Change AC_OUTPUT to set
2314         stamp-h.
2315         * configure: Rebuild.
2316         * config.in: New file, generated by autoheader.
2317         * interp.c: Include "config.h".  Include <stdlib.h>, <string.h>,
2318         and <strings.h> if they exist.  Replace #ifdef sun with #ifdef
2319         HAVE_ANINT and HAVE_AINT, as appropriate.
2320         * Makefile.in (run): Use @LIBS@ rather than -lm.
2321         (interp.o): Depend upon config.h.
2322         (Makefile): Just rebuild Makefile.
2323         (clean): Remove stamp-h.
2324         (mostlyclean): Make the same as clean, not as distclean.
2325         (config.h, stamp-h): New targets.
2326
2327 Fri May 10 00:41:17 1996  James G. Smith  <jsmith@cygnus.co.uk>
2328
2329         * interp.c (ColdReset): Fix boolean test. Make all simulator
2330         globals static.
2331
2332 Wed May  8 15:12:58 1996  James G. Smith  <jsmith@cygnus.co.uk>
2333
2334         * interp.c (xfer_direct_word, xfer_direct_long,
2335         swap_direct_word, swap_direct_long, xfer_big_word,
2336         xfer_big_long, xfer_little_word, xfer_little_long,
2337         swap_word,swap_long): Added.
2338         * interp.c (ColdReset): Provide function indirection to
2339         host<->simulated_target transfer routines.
2340         * interp.c (sim_store_register, sim_fetch_register): Updated to
2341         make use of indirected transfer routines.
2342
2343 Fri Apr 19 15:48:24 1996  James G. Smith  <jsmith@cygnus.co.uk>
2344
2345         * gencode.c (process_instructions): Ensure FP ABS instruction
2346         recognised.
2347         * interp.c (AbsoluteValue): Add routine. Also provide simple PMON
2348         system call support.
2349
2350 Wed Apr 10 09:51:38 1996  James G. Smith  <jsmith@cygnus.co.uk>
2351
2352         * interp.c (sim_do_command): Complain if callback structure not
2353         initialised.
2354
2355 Thu Mar 28 13:50:51 1996  James G. Smith  <jsmith@cygnus.co.uk>
2356
2357         * interp.c (Convert): Provide round-to-nearest and round-to-zero
2358         support for Sun hosts.
2359         * Makefile.in (gencode): Ensure the host compiler and libraries
2360         used for cross-hosted build.
2361
2362 Wed Mar 27 14:42:12 1996  James G. Smith  <jsmith@cygnus.co.uk>
2363
2364         * interp.c, gencode.c: Some more (TODO) tidying.
2365
2366 Thu Mar  7 11:19:33 1996  James G. Smith  <jsmith@cygnus.co.uk>
2367
2368         * gencode.c, interp.c: Replaced explicit long long references with
2369         WORD64HI, WORD64LO, SET64HI and SET64LO macro calls.
2370         * support.h (SET64LO, SET64HI): Macros added.
2371
2372 Wed Feb 21 12:16:21 1996  Ian Lance Taylor  <ian@cygnus.com>
2373
2374         * configure: Regenerate with autoconf 2.7.
2375
2376 Tue Jan 30 08:48:18 1996  Fred Fish  <fnf@cygnus.com>
2377
2378         * interp.c (LoadMemory): Enclose text following #endif in /* */.
2379         * support.h: Remove superfluous "1" from #if.
2380         * support.h (CHECKSIM): Remove stray 'a' at end of line.
2381
2382 Mon Dec  4 11:44:40 1995  Jamie Smith  <jsmith@cygnus.com>
2383
2384         * interp.c (StoreFPR): Control UndefinedResult() call on
2385         WARN_RESULT manifest.
2386
2387 Fri Dec  1 16:37:19 1995  James G. Smith  <jsmith@cygnus.co.uk>
2388
2389         * gencode.c: Tidied instruction decoding, and added FP instruction
2390         support.
2391
2392         * interp.c: Added dineroIII, and BSD profiling support. Also
2393         run-time FP handling.
2394
2395 Sun Oct 22 00:57:18 1995  James G. Smith  <jsmith@pasanda.cygnus.co.uk>
2396
2397         * Changelog, Makefile.in, README.Cygnus, configure, configure.in,
2398         gencode.c, interp.c, support.h: created.