Fix doco on enable-sim-inline.
[platform/upstream/binutils.git] / sim / mips / ChangeLog
1 Wed Aug 27 18:13:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
2
3         * configure: Regenerated to track ../common/aclocal.m4 changes.
4         * config.in: Ditto.
5
6 Wed Aug 27 14:12:27 1997  Andrew Cagney  <cagney@b1.cygnus.com>
7
8         * interp.c (sim_open): Add call to sim_analyze_program, update
9         call to sim_config.
10
11 Tue Aug 26 10:40:07 1997  Andrew Cagney  <cagney@b1.cygnus.com>
12
13         * interp.c (sim_kill): Delete.
14         (sim_create_inferior): Add ABFD argument. Set PC from same.
15         (sim_load): Move code initializing trap handlers from here.
16         (sim_open): To here.
17         (sim_load): Delete, use sim-hload.c.
18
19         * Makefile.in (SIM_OBJS): Add sim-hload.o module.
20
21 Mon Aug 25 17:50:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
22
23         * configure: Regenerated to track ../common/aclocal.m4 changes.
24         * config.in: Ditto.
25
26 Mon Aug 25 15:59:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>
27
28         * interp.c (sim_open): Add ABFD argument.
29         (sim_load): Move call to sim_config from here.
30         (sim_open): To here.  Check return status.
31
32 start-sanitize-r5900
33         * gencode.c (build_instruction): Do not define x8000000000000000,
34         x7FFFFFFFFFFFFFFF, or xFFFFFFFF80000000.
35
36 end-sanitize-r5900
37 start-sanitize-r5900
38 Mon Jul 28 19:49:29 1997  Andrew Cagney  <cagney@b1.cygnus.com>
39
40         * gencode.c (build_instruction): For "pdivw", "pdivbw" and
41         "pdivuw" check for overflow due to signed divide by -1.
42
43 end-sanitize-r5900
44 Fri Jul 25 15:00:45 1997  Gavin Koch  <gavin@cygnus.com>
45  
46         * gencode.c (build_instruction): Two arg MADD should
47         not assign result to $0.
48  
49 start-sanitize-r5900
50 Thu Jul 10 11:58:48 1997  Andrew Cagney  <cagney@critters.cygnus.com>
51
52         * gencode.c (build_instruction): For "ppac5" use unsigned
53         arrithmetic so that the sign bit doesn't smear when right shifted.
54         (build_instruction): For "pdiv" perform sign extension when
55         storing results in HI and LO.
56         (build_instructions): For "pdiv" and "pdivbw" check for
57         divide-by-zero.
58         (build_instruction): For "pmfhl.slw" update hi part of dest
59         register as well as low part.
60         (build_instruction): For "pmfhl" portably handle long long values.
61         (build_instruction): For "pmfhl.sh" correctly negative values.
62         Store half words 2 and three in the correct place.
63         (build_instruction): For "psllvw", sign extend value after shift.
64
65 end-sanitize-r5900
66 Thu Jun 26 12:13:17 1997  Angela Marie Thomas (angela@cygnus.com)
67
68         * sim/mips/configure: Change default_sim_endian to 0 (bi-endian)
69         * sim/mips/configure.in: Regenerate.
70
71 Wed Jul  9 10:29:21 1997  Andrew Cagney  <cagney@critters.cygnus.com>
72
73         * interp.c (SUB_REG_UW, SUB_REG_SW, SUB_REG_*): Use more explicit
74         signed8, unsigned8 et.al. types.
75
76 start-sanitize-r5900
77         * gencode.c (build_instruction): For PMULTU* do not sign extend
78         registers.  Make generated code easier to debug.
79
80 end-sanitize-r5900
81         * interp.c (SUB_REG_FETCH): Handle both little and big endian
82         hosts when selecting subreg.
83
84 start-sanitize-r5900
85 Tue Jul  8 18:07:20 1997  Andrew Cagney  <cagney@andros.cygnus.com>
86
87         * gencode.c (type_for_data_len): For 32bit operations concerned
88         with overflow, perform op using 64bits.
89         (build_instruction): For PADD, always compute operation using type
90         returned by type_for_data_len.
91         (build_instruction): For PSUBU, when overflow, saturate to zero as
92         actually underflow.
93
94 end-sanitize-r5900
95 Wed Jul  2 11:54:10 1997  Jeffrey A Law  (law@cygnus.com)
96
97 start-sanitize-r5900
98         * gencode.c (build_instruction): Handle "pext5" according to
99         version 1.95 of the r5900 ISA.
100
101         * gencode.c (build_instruction): Handle "ppac5" according to
102         version 1.95 of the r5900 ISA.
103
104 end-sanitize-r5900
105         * interp.c (sim_engine_run): Reset the ZERO register to zero
106         regardless of FEATURE_WARN_ZERO.
107         * gencode.c (FEATURE_WARNINGS): Remove FEATURE_WARN_ZERO.
108
109 Wed Jun  4 10:43:14 1997  Andrew Cagney  <cagney@b1.cygnus.com>
110
111         * interp.c (decode_coproc): Implement MTC0 N, CAUSE.
112         (SignalException): For BreakPoints ignore any mode bits and just
113         save the PC.
114         (SignalException): Always set the CAUSE register.
115
116 Tue Jun  3 05:00:33 1997  Andrew Cagney  <cagney@b1.cygnus.com>
117
118         * interp.c (SignalException): Clear the simDELAYSLOT flag when an
119         exception has been taken.
120
121         * interp.c: Implement the ERET and mt/f sr instructions.
122
123 start-sanitize-r5900
124 Mon Jun  2 23:28:19 1997  Andrew Cagney  <cagney@b1.cygnus.com>
125
126         * gencode.c (build_instruction): For paddu, extract unsigned
127         sub-fields.
128
129         * gencode.c (build_instruction): Saturate padds instead of padd
130         instructions.
131
132 end-sanitize-r5900
133 Sat May 31 00:44:16 1997  Andrew Cagney  <cagney@b1.cygnus.com>
134
135         * interp.c (SignalException): Don't bother restarting an
136         interrupt.
137
138 Fri May 30 23:41:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>
139
140         * interp.c (SignalException): Really take an interrupt.
141         (interrupt_event): Only deliver interrupts when enabled.
142
143 Tue May 27 20:08:06 1997  Andrew Cagney  <cagney@b1.cygnus.com>
144
145         * interp.c (sim_info): Only print info when verbose.
146         (sim_info) Use sim_io_printf for output.
147         
148 Tue May 27 14:22:23 1997  Andrew Cagney  <cagney@b1.cygnus.com>
149
150         * interp.c (CoProcPresent): Add UNUSED attribute - not used by all
151         mips architectures.
152
153 Tue May 27 14:22:23 1997  Andrew Cagney  <cagney@b1.cygnus.com>
154
155         * interp.c (sim_do_command): Check for common commands if a
156         simulator specific command fails.
157
158 Thu May 22 09:32:03 1997  Gavin Koch  <gavin@cygnus.com>
159
160         * interp.c (sim_engine_run): ifdef out uses of simSTOP, simSTEP
161         and simBE when DEBUG is defined.
162
163 Wed May 21 09:08:10 1997  Andrew Cagney  <cagney@b1.cygnus.com>
164
165         * interp.c (interrupt_event): New function.  Pass exception event
166         onto exception handler.
167
168         * configure.in: Check for stdlib.h.
169         * configure: Regenerate.
170
171         * gencode.c (build_instruction): Add UNUSED attribute to tempS
172         variable declaration.
173         (build_instruction): Initialize memval1.
174         (build_instruction): Add UNUSED attribute to byte, bigend,
175         reverse.
176         (build_operands): Ditto.
177
178         * interp.c: Fix GCC warnings.
179         (sim_get_quit_code): Delete.
180
181         * configure.in: Add INLINE, ENDIAN, HOSTENDIAN and WARNINGS.
182         * Makefile.in: Ditto.
183         * configure: Re-generate.
184         
185         * Makefile.in (SIM_OBJS): Add sim-watch.o module.
186
187 Tue May 20 15:08:56 1997  Andrew Cagney  <cagney@b1.cygnus.com>
188
189         * interp.c (mips_option_handler): New function parse argumes using
190         sim-options.
191         (myname): Replace with STATE_MY_NAME.
192         (sim_open): Delete check for host endianness - performed by
193         sim_config.
194         (simHOSTBE, simBE): Delete, replaced by sim-endian flags.
195         (sim_open): Move much of the initialization from here.
196         (sim_load): To here.  After the image has been loaded and
197         endianness set.
198         (sim_open): Move ColdReset from here.
199         (sim_create_inferior): To here.
200         (sim_open): Make FP check less dependant on host endianness.
201
202         * Makefile.in (SIM_RUN_OBJS): Set to nrun.o - use new version or
203         run.
204         * interp.c (sim_set_callbacks): Delete.
205
206         * interp.c (membank, membank_base, membank_size): Replace with
207         STATE_MEMORY, STATE_MEM_SIZE, STATE_MEM_BASE.
208         (sim_open): Remove call to callback->init. gdb/run do this.
209
210         * interp.c: Update
211
212         * sim-main.h (SIM_HAVE_FLATMEM): Define.
213
214         * interp.c (big_endian_p): Delete, replaced by
215         current_target_byte_order.
216
217 Tue May 20 13:55:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>
218
219         * interp.c (host_read_long, host_read_word, host_swap_word,
220         host_swap_long): Delete. Using common sim-endian.
221         (sim_fetch_register, sim_store_register): Use H2T.
222         (pipeline_ticks): Delete.  Handled by sim-events.
223         (sim_info): Update.
224         (sim_engine_run): Update.
225
226 Tue May 20 13:42:03 1997  Andrew Cagney  <cagney@b1.cygnus.com>
227
228         * interp.c (sim_stop_reason): Move code determining simEXCEPTION
229         reason from here.
230         (SignalException): To here. Signal using sim_engine_halt.
231         (sim_stop_reason): Delete, moved to common.
232         
233 Tue May 20 10:19:48 1997  Andrew Cagney  <cagney@b2.cygnus.com>
234
235         * interp.c (sim_open): Add callback argument.
236         (sim_set_callbacks): Delete SIM_DESC argument.
237         (sim_size): Ditto.
238
239 Mon May 19 18:20:38 1997  Andrew Cagney  <cagney@b1.cygnus.com>
240
241         * Makefile.in (SIM_OBJS): Add common modules.
242
243         * interp.c (sim_set_callbacks): Also set SD callback.
244         (set_endianness, xfer_*, swap_*): Delete.
245         (host_read_word, host_read_long, host_swap_word, host_swap_long):
246         Change to functions using sim-endian macros.
247         (control_c, sim_stop): Delete, use common version.
248         (simulate): Convert into.
249         (sim_engine_run): This function.
250         (sim_resume): Delete.
251         
252         * interp.c (simulation): New variable - the simulator object.
253         (sim_kind): Delete global - merged into simulation.
254         (sim_load): Cleanup.  Move PC assignment from here.
255         (sim_create_inferior): To here.
256
257         * sim-main.h: New file.
258         * interp.c (sim-main.h): Include.
259         
260 Thu Apr 24 00:39:51 1997  Doug Evans  <dje@canuck.cygnus.com>
261
262         * configure: Regenerated to track ../common/aclocal.m4 changes.
263
264 Wed Apr 23 17:32:19 1997  Doug Evans  <dje@canuck.cygnus.com>
265
266         * tconfig.in (SIM_HAVE_BIENDIAN): Define.
267
268 Mon Apr 21 17:16:13 1997  Gavin Koch  <gavin@cygnus.com>
269
270         * gencode.c (build_instruction): DIV instructions: check 
271         for division by zero and integer overflow before using 
272         host's division operation.
273
274 Thu Apr 17 03:18:14 1997  Doug Evans  <dje@canuck.cygnus.com>
275
276         * Makefile.in (SIM_OBJS): Add sim-load.o.
277         * interp.c: #include bfd.h.
278         (target_byte_order): Delete.
279         (sim_kind, myname, big_endian_p): New static locals.
280         (sim_open): Set sim_kind, myname.  Move call to set_endianness to
281         after argument parsing.  Recognize -E arg, set endianness accordingly.
282         (sim_load): Return SIM_RC.  New arg abfd.  Call sim_load_file to
283         load file into simulator.  Set PC from bfd.
284         (sim_create_inferior): Return SIM_RC.  Delete arg start_address.
285         (set_endianness): Use big_endian_p instead of target_byte_order.
286
287 Wed Apr 16 17:55:37 1997  Andrew Cagney  <cagney@b1.cygnus.com>
288
289         * interp.c (sim_size): Delete prototype - conflicts with
290         definition in remote-sim.h.  Correct definition.
291
292 Mon Apr  7 15:45:02 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
293
294         * configure: Regenerated to track ../common/aclocal.m4 changes.
295         * config.in: Ditto.
296
297 Wed Apr  2 15:06:28 1997  Doug Evans  <dje@canuck.cygnus.com>
298
299         * interp.c (sim_open): New arg `kind'.
300
301         * configure: Regenerated to track ../common/aclocal.m4 changes.
302
303 Wed Apr  2 14:34:19 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
304
305         * configure: Regenerated to track ../common/aclocal.m4 changes.
306
307 Tue Mar 25 11:38:22 1997  Doug Evans  <dje@canuck.cygnus.com>
308
309         * interp.c (sim_open): Set optind to 0 before calling getopt.
310
311 Wed Mar 19 01:14:00 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
312
313         * configure: Regenerated to track ../common/aclocal.m4 changes.
314
315 Mon Mar 17 10:52:59 1997  Gavin Koch  <gavin@cetus.cygnus.com>
316
317         * interp.c : Replace uses of pr_addr with pr_uword64
318         where the bit length is always 64 independent of SIM_ADDR.
319         (pr_uword64) : added.
320
321 Mon Mar 17 15:10:07 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
322
323         * configure: Re-generate.
324
325 Fri Mar 14 10:34:11 1997  Michael Meissner  <meissner@cygnus.com>
326
327         * configure: Regenerate to track ../common/aclocal.m4 changes.
328
329 Thu Mar 13 12:51:36 1997  Doug Evans  <dje@canuck.cygnus.com>
330
331         * interp.c (sim_open): New SIM_DESC result.  Argument is now
332         in argv form.
333         (other sim_*): New SIM_DESC argument.
334
335 start-sanitize-r5900
336 Wed Feb 26 18:32:21 1997  Gavin Koch  <gavin@cygnus.com>
337
338         * gencode.c (POP_AND,POP_OR,POP_NOR,POP_XOR): 
339         Change values to avoid overloading DOUBLEWORD which is tested
340         for all insns.
341         * gencode.c: reinstate "offending code".
342
343 end-sanitize-r5900
344 Mon Feb 24 22:47:14 1997  Dawn Perchik  <dawn@cygnus.com>
345
346         * interp.c: Fix printing of addresses for non-64-bit targets.
347         (pr_addr): Add function to print address based on size.
348 start-sanitize-r5900
349         * gencode.c: #ifdef out offending code until a permanent fix 
350         can be added.  Code is causing build errors for non-5900 mips targets.
351 end-sanitize-r5900
352
353 start-sanitize-r5900
354 Thu Feb 20 10:40:24 1997  Gavin Koch  <gavin@cetus.cygnus.com>
355
356         * gencode.c (process_instructions): Correct test for ISA dependent
357         architecture bits in isa field of MIPS_DECODE.
358
359 end-sanitize-r5900
360 Wed Feb 19 14:42:09 1997  Mark Alexander  <marka@cygnus.com>
361
362         * interp.c (simopen): Add support for LSI MiniRISC PMON vectors.
363
364 start-sanitize-r5900
365 Tue Feb 18 17:03:47 1997  Gavin Koch  <gavin@cygnus.com>
366
367         * gencode.c (MIPS_DECODE): Correct instruction feature flags for 
368         PMADDUW.
369
370 end-sanitize-r5900
371 Thu Feb 13 14:08:30 1997  Ian Lance Taylor  <ian@cygnus.com>
372
373         * gencode.c (build_mips16_operands): Correct computation of base
374         address for extended PC relative instruction.
375
376 start-sanitize-r5900
377 Fri Feb  7 11:12:44 1997  Gavin Koch  <gavin@cygnus.com>
378
379         * Makefile.in, configure, configure.in, gencode.c, 
380         interp.c, support.h: add r5900.
381
382 end-sanitize-r5900
383 Thu Feb  6 17:16:15 1997  Ian Lance Taylor  <ian@cygnus.com>
384
385         * interp.c (mips16_entry): Add support for floating point cases.
386         (SignalException): Pass floating point cases to mips16_entry.
387         (ValueFPR): Don't restrict fmt_single and fmt_word to even
388         registers.
389         (StoreFPR): Likewise.  Also, don't clobber fpr + 1 for fmt_single
390         or fmt_word.
391         (COP_LW): Pass fmt_word rather than fmt_uninterpreted to StoreFPR,
392         and then set the state to fmt_uninterpreted.
393         (COP_SW): Temporarily set the state to fmt_word while calling
394         ValueFPR.
395
396 Tue Feb  4 16:48:25 1997  Ian Lance Taylor  <ian@cygnus.com>
397
398         * gencode.c (build_instruction): The high order may be set in the
399         comparison flags at any ISA level, not just ISA 4.
400
401 Tue Feb  4 13:33:30 1997  Doug Evans  <dje@canuck.cygnus.com>
402
403         * Makefile.in (@COMMON_MAKEFILE_FRAG): Use
404         COMMON_{PRE,POST}_CONFIG_FRAG instead.
405         * configure.in: sinclude ../common/aclocal.m4.
406         * configure: Regenerated.
407
408 Fri Jan 31 11:11:45 1997  Ian Lance Taylor  <ian@cygnus.com>
409
410         * configure: Rebuild after change to aclocal.m4.
411
412 Thu Jan 23 11:46:23 1997  Stu Grossman  (grossman@critters.cygnus.com)
413
414         * configure configure.in Makefile.in:  Update to new configure
415         scheme which is more compatible with WinGDB builds.
416         * configure.in:  Improve comment on how to run autoconf.
417         * configure:  Re-run autoconf to get new ../common/aclocal.m4.
418         * Makefile.in:  Use autoconf substitution to install common
419         makefile fragment.
420
421 Wed Jan  8 12:39:03 1997  Jim Wilson  <wilson@cygnus.com>
422
423         * gencode.c (build_instruction): Use BigEndianCPU instead of
424         ByteSwapMem.
425
426 Thu Jan 02 22:23:04 1997  Mark Alexander  <marka@cygnus.com>
427
428         * interp.c (sim_monitor): Make output to stdout visible in
429         wingdb's I/O log window.
430
431 Tue Dec 31 07:04:00 1996  Mark Alexander  <marka@cygnus.com>
432
433         * support.h: Undo previous change to SIGTRAP
434         and SIGQUIT values.
435
436 Mon Dec 30 17:36:06 1996  Ian Lance Taylor  <ian@cygnus.com>
437
438         * interp.c (store_word, load_word): New static functions.
439         (mips16_entry): New static function.
440         (SignalException): Look for mips16 entry and exit instructions.
441         (simulate): Use the correct index when setting fpr_state after
442         doing a pending move.
443
444 Sun Dec 29 09:37:18 1996  Mark Alexander  <marka@cygnus.com>
445
446         * interp.c: Fix byte-swapping code throughout to work on
447         both little- and big-endian hosts.
448
449 Sun Dec 29 09:18:32 1996  Mark Alexander  <marka@cygnus.com>
450
451         * support.h: Make definitions of SIGTRAP and SIGQUIT consistent
452         with gdb/config/i386/xm-windows.h.
453
454 Fri Dec 27 22:48:51 1996  Mark Alexander  <marka@cygnus.com>
455
456         * gencode.c (build_instruction): Work around MSVC++ code gen bug
457         that messes up arithmetic shifts.
458
459 Fri Dec 20 11:04:05 1996  Stu Grossman  (grossman@critters.cygnus.com)
460
461         * support.h:  Use _WIN32 instead of __WIN32__.  Also add defs for
462         SIGTRAP and SIGQUIT for _WIN32.
463
464 Thu Dec 19 14:07:27 1996  Ian Lance Taylor  <ian@cygnus.com>
465
466         * gencode.c (build_instruction) [MUL]: Cast operands to word64, to
467         force a 64 bit multiplication.
468         (build_instruction) [OR]: In mips16 mode, don't do anything if the
469         destination register is 0, since that is the default mips16 nop
470         instruction.
471
472 Mon Dec 16 14:59:38 1996  Ian Lance Taylor  <ian@cygnus.com>
473
474         * gencode.c (MIPS16_DECODE): SWRASP is I8, not RI.
475         (build_endian_shift): Don't check proc64.
476         (build_instruction): Always set memval to uword64.  Cast op2 to
477         uword64 when shifting it left in memory instructions.  Always use
478         the same code for stores--don't special case proc64.
479
480         * gencode.c (build_mips16_operands): Fix base PC value for PC
481         relative operands.
482         (build_instruction): Call JALDELAYSLOT rather than DELAYSLOT for a
483         jal instruction.
484         * interp.c (simJALDELAYSLOT): Define.
485         (JALDELAYSLOT): Define.
486         (INDELAYSLOT, INJALDELAYSLOT): Define.
487         (simulate): Clear simJALDELAYSLOT when simDELAYSLOT is cleared.
488
489 Tue Dec 24 22:11:20 1996  Angela Marie Thomas (angela@cygnus.com)
490
491         * interp.c (sim_open): add flush_cache as a PMON routine
492         (sim_monitor): handle flush_cache by ignoring it
493
494 Wed Dec 11 13:53:51 1996  Jim Wilson  <wilson@cygnus.com>
495
496         * gencode.c (build_instruction): Use !ByteSwapMem instead of
497         BigEndianMem.
498         * interp.c (CONFIG, config_EP_{mask,shift,D,DxxDxx, config_BE): Delete.
499         (BigEndianMem): Rename to ByteSwapMem and change sense.
500         (BigEndianCPU, sim_write, LoadMemory, StoreMemory): Change
501         BigEndianMem references to !ByteSwapMem.
502         (set_endianness): New function, with prototype.
503         (sim_open): Call set_endianness.
504         (sim_info): Use simBE instead of BigEndianMem.
505         (xfer_direct_word, xfer_direct_long, swap_direct_word,
506         swap_direct_long, xfer_big_word, xfer_big_long, xfer_little_word,
507         xfer_little_long, swap_word, swap_long): Delete unnecessary MSC_VER
508         ifdefs, keeping the prototype declaration.
509         (swap_word): Rewrite correctly.
510         (ColdReset): Delete references to CONFIG.  Delete endianness related
511         code; moved to set_endianness.
512         
513 Tue Dec 10 11:32:04 1996  Jim Wilson  <wilson@cygnus.com>
514
515         * gencode.c (build_instruction, case JUMP): Truncate PC to 32 bits.
516         * interp.c (CHECKHILO): Define away.
517         (simSIGINT): New macro.
518         (membank_size): Increase from 1MB to 2MB.
519         (control_c): New function.
520         (sim_resume): Rename parameter signal to signal_number.  Add local
521         variable prev.  Call signal before and after simulate.
522         (sim_stop_reason): Add simSIGINT support.
523         (sim_warning, sim_error, dotrace, SignalException): Define as stdarg
524         functions always.
525         (sim_warning): Delete call to SignalException.  Do call printf_filtered
526         if logfh is NULL.
527         (AddressTranslation): Add #ifdef DEBUG around debugging message and
528         a call to sim_warning.
529
530 Wed Nov 27 11:53:50 1996  Ian Lance Taylor  <ian@cygnus.com>
531
532         * gencode.c (process_instructions): If ! proc64, skip DOUBLEWORD
533         16 bit instructions.
534
535 Tue Nov 26 11:53:12 1996  Ian Lance Taylor  <ian@cygnus.com>
536
537         Add support for mips16 (16 bit MIPS implementation):
538         * gencode.c (inst_type): Add mips16 instruction encoding types.
539         (GETDATASIZEINSN): Define.
540         (MIPS_DECODE): Add REG flag to dsllv, dsrav, and dsrlv.  Add
541         jalx.  Add LEFT flag to mfhi and mflo.  Add RIGHT flag to mthi and
542         mtlo.
543         (MIPS16_DECODE): New table, for mips16 instructions.
544         (bitmap_val): New static function.
545         (struct mips16_op): Define.
546         (mips16_op_table): New table, for mips16 operands.
547         (build_mips16_operands): New static function.
548         (process_instructions): If PC is odd, decode a mips16
549         instruction.  Break out instruction handling into new
550         build_instruction function.
551         (build_instruction): New static function, broken out of
552         process_instructions.  Check modifiers rather than flags for SHIFT
553         bit count and m[ft]{hi,lo} direction.
554         (usage): Pass program name to fprintf.
555         (main): Remove unused variable this_option_optind.  Change
556         ``*loptarg++'' to ``loptarg++''.
557         (my_strtoul): Parenthesize && within ||.
558         * interp.c (LoadMemory): Accept a halfword pAddr if vAddr is odd.
559         (simulate): If PC is odd, fetch a 16 bit instruction, and
560         increment PC by 2 rather than 4.
561         * configure.in: Add case for mips16*-*-*.
562         * configure: Rebuild.
563
564 Fri Nov 22 08:49:36 1996  Mark Alexander  <marka@cygnus.com>
565
566         * interp.c: Allow -t to enable tracing in standalone simulator.
567         Fix garbage output in trace file and error messages.
568
569 Wed Nov 20 01:54:37 1996  Doug Evans  <dje@canuck.cygnus.com>
570
571         * Makefile.in: Delete stuff moved to ../common/Make-common.in.
572         (SIM_{OBJS,EXTRA_CFLAGS,EXTRA_CLEAN}): Define.
573         * configure.in: Simplify using macros in ../common/aclocal.m4.
574         * configure: Regenerated.
575         * tconfig.in: New file.
576
577 Tue Nov 12 13:34:00 1996  Dawn Perchik  <dawn@cygnus.com>
578
579         * interp.c: Fix bugs in 64-bit port.
580         Use ansi function declarations for msvc compiler.
581         Initialize and test file pointer in trace code.
582         Prevent duplicate definition of LAST_EMED_REGNUM.
583
584 Tue Oct 15 11:07:06 1996  Mark Alexander  <marka@cygnus.com>
585
586         * interp.c (xfer_big_long): Prevent unwanted sign extension.
587
588 Thu Sep 26 17:35:00 1996  James G. Smith  <jsmith@cygnus.co.uk>
589
590         * interp.c (SignalException): Check for explicit terminating
591         breakpoint value.
592         * gencode.c: Pass instruction value through SignalException()
593         calls for Trap, Breakpoint and Syscall.
594
595 Thu Sep 26 11:35:17 1996  James G. Smith  <jsmith@cygnus.co.uk>
596
597         * interp.c (SquareRoot): Add HAVE_SQRT check to ensure sqrt() is
598         only used on those hosts that provide it.
599         * configure.in: Add sqrt() to list of functions to be checked for.
600         * config.in: Re-generated.
601         * configure: Re-generated.
602
603 Fri Sep 20 15:47:12 1996  Ian Lance Taylor  <ian@cygnus.com>
604
605         * gencode.c (process_instructions): Call build_endian_shift when
606         expanding STORE RIGHT, to fix swr.
607         * support.h (SIGNEXTEND): If the sign bit is not set, explicitly
608         clear the high bits.
609         * interp.c (Convert): Fix fmt_single to fmt_long to not truncate.
610         Fix float to int conversions to produce signed values.
611
612 Thu Sep 19 15:34:17 1996  Ian Lance Taylor  <ian@cygnus.com>
613
614         * gencode.c (MIPS_DECODE): Set UNSIGNED for multu instruction.
615         (process_instructions): Correct handling of nor instruction.
616         Correct shift count for 32 bit shift instructions. Correct sign
617         extension for arithmetic shifts to not shift the number of bits in
618         the type.  Fix 64 bit multiply high word calculation.  Fix 32 bit
619         unsigned multiply.  Fix ldxc1 and friends to use coprocessor 1.
620         Fix madd.
621         * interp.c (CHECKHILO): Don't set HIACCESS, LOACCESS, or HLPC.
622         It's OK to have a mult follow a mult.  What's not OK is to have a
623         mult follow an mfhi.
624         (Convert): Comment out incorrect rounding code.
625
626 Mon Sep 16 11:38:16 1996  James G. Smith  <jsmith@cygnus.co.uk>
627
628         * interp.c (sim_monitor): Improved monitor printf
629         simulation. Tidied up simulator warnings, and added "--log" option
630         for directing warning message output.
631         * gencode.c: Use sim_warning() rather than WARNING macro.
632
633 Thu Aug 22 15:03:12 1996  Ian Lance Taylor  <ian@cygnus.com>
634
635         * Makefile.in (gencode): Depend upon gencode.o, getopt.o, and
636         getopt1.o, rather than on gencode.c.  Link objects together.
637         Don't link against -liberty.
638         (gencode.o, getopt.o, getopt1.o): New targets.
639         * gencode.c: Include <ctype.h> and "ansidecl.h".
640         (AND): Undefine after including "ansidecl.h".
641         (ULONG_MAX): Define if not defined.
642         (OP_*): Don't define macros; now defined in opcode/mips.h.
643         (main): Call my_strtoul rather than strtoul.
644         (my_strtoul): New static function.
645
646 Wed Jul 17 18:12:38 1996  Stu Grossman  (grossman@critters.cygnus.com)
647
648         * gencode.c (process_instructions):  Generate word64 and uword64
649         instead of `long long' and `unsigned long long' data types.
650         * interp.c:  #include sysdep.h to get signals, and define default
651         for SIGBUS.
652         * (Convert):  Work around for Visual-C++ compiler bug with type
653         conversion.
654         * support.h:  Make things compile under Visual-C++ by using
655         __int64 instead of `long long'.  Change many refs to long long
656         into word64/uword64 typedefs.
657
658 Wed Jun 26 12:24:55 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)
659
660         * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
661         INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
662         (docdir): Removed.
663         * configure.in (AC_PREREQ): autoconf 2.5 or higher.
664         (AC_PROG_INSTALL): Added.
665         (AC_PROG_CC): Moved to before configure.host call.
666         * configure: Rebuilt.
667         
668 Wed Jun  5 08:28:13 1996  James G. Smith  <jsmith@cygnus.co.uk>
669
670         * configure.in: Define @SIMCONF@ depending on mips target.
671         * configure: Rebuild.
672         * Makefile.in (run): Add @SIMCONF@ to control simulator
673         construction.
674         * gencode.c: Change LOADDRMASK to 64bit memory model only.
675         * interp.c: Remove some debugging, provide more detailed error
676         messages, update memory accesses to use LOADDRMASK.
677         
678 Mon Jun  3 11:55:03 1996  Ian Lance Taylor  <ian@cygnus.com>
679
680         * configure.in: Add calls to AC_CONFIG_HEADER, AC_CHECK_HEADERS,
681         AC_CHECK_LIB, and AC_CHECK_FUNCS.  Change AC_OUTPUT to set
682         stamp-h.
683         * configure: Rebuild.
684         * config.in: New file, generated by autoheader.
685         * interp.c: Include "config.h".  Include <stdlib.h>, <string.h>,
686         and <strings.h> if they exist.  Replace #ifdef sun with #ifdef
687         HAVE_ANINT and HAVE_AINT, as appropriate.
688         * Makefile.in (run): Use @LIBS@ rather than -lm.
689         (interp.o): Depend upon config.h.
690         (Makefile): Just rebuild Makefile.
691         (clean): Remove stamp-h.
692         (mostlyclean): Make the same as clean, not as distclean.
693         (config.h, stamp-h): New targets.
694
695 Fri May 10 00:41:17 1996  James G. Smith  <jsmith@cygnus.co.uk>
696
697         * interp.c (ColdReset): Fix boolean test. Make all simulator
698         globals static.
699
700 Wed May  8 15:12:58 1996  James G. Smith  <jsmith@cygnus.co.uk>
701
702         * interp.c (xfer_direct_word, xfer_direct_long,
703         swap_direct_word, swap_direct_long, xfer_big_word,
704         xfer_big_long, xfer_little_word, xfer_little_long,
705         swap_word,swap_long): Added.
706         * interp.c (ColdReset): Provide function indirection to
707         host<->simulated_target transfer routines.
708         * interp.c (sim_store_register, sim_fetch_register): Updated to
709         make use of indirected transfer routines.
710
711 Fri Apr 19 15:48:24 1996  James G. Smith  <jsmith@cygnus.co.uk>
712
713         * gencode.c (process_instructions): Ensure FP ABS instruction
714         recognised.
715         * interp.c (AbsoluteValue): Add routine. Also provide simple PMON
716         system call support.
717
718 Wed Apr 10 09:51:38 1996  James G. Smith  <jsmith@cygnus.co.uk>
719
720         * interp.c (sim_do_command): Complain if callback structure not
721         initialised.
722
723 Thu Mar 28 13:50:51 1996  James G. Smith  <jsmith@cygnus.co.uk>
724
725         * interp.c (Convert): Provide round-to-nearest and round-to-zero
726         support for Sun hosts.
727         * Makefile.in (gencode): Ensure the host compiler and libraries
728         used for cross-hosted build.
729
730 Wed Mar 27 14:42:12 1996  James G. Smith  <jsmith@cygnus.co.uk>
731
732         * interp.c, gencode.c: Some more (TODO) tidying.
733
734 Thu Mar  7 11:19:33 1996  James G. Smith  <jsmith@cygnus.co.uk>
735
736         * gencode.c, interp.c: Replaced explicit long long references with
737         WORD64HI, WORD64LO, SET64HI and SET64LO macro calls.
738         * support.h (SET64LO, SET64HI): Macros added.
739
740 Wed Feb 21 12:16:21 1996  Ian Lance Taylor  <ian@cygnus.com>
741
742         * configure: Regenerate with autoconf 2.7.
743
744 Tue Jan 30 08:48:18 1996  Fred Fish  <fnf@cygnus.com>
745
746         * interp.c (LoadMemory): Enclose text following #endif in /* */.
747         * support.h: Remove superfluous "1" from #if.
748         * support.h (CHECKSIM): Remove stray 'a' at end of line.
749
750 Mon Dec  4 11:44:40 1995  Jamie Smith  <jsmith@cygnus.com>
751
752         * interp.c (StoreFPR): Control UndefinedResult() call on
753         WARN_RESULT manifest.
754
755 Fri Dec  1 16:37:19 1995  James G. Smith  <jsmith@cygnus.co.uk>
756
757         * gencode.c: Tidied instruction decoding, and added FP instruction
758         support.
759
760         * interp.c: Added dineroIII, and BSD profiling support. Also
761         run-time FP handling.
762
763 Sun Oct 22 00:57:18 1995  James G. Smith  <jsmith@pasanda.cygnus.co.uk>
764
765         * Changelog, Makefile.in, README.Cygnus, configure, configure.in,
766         gencode.c, interp.c, support.h: created.