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