]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/mips/ChangeLog
gdb/
[thirdparty/binutils-gdb.git] / sim / mips / ChangeLog
CommitLineData
b1004875
TS
12007-02-19 Thiemo Seufer <ths@mips.com>
2 Nigel Stephens <nigel@mips.com>
3
4 * mips.igen (jalr.hb, jr.hb): Add decoder for mip32r2/mips64r2
5 jumps with hazard barrier.
6
f8df4c77
TS
72007-02-19 Thiemo Seufer <ths@mips.com>
8 Nigel Stephens <nigel@mips.com>
9
10 * interp.c (sim_monitor): Flush stdout and stderr file descriptors
11 after each call to sim_io_write.
12
b1004875 132007-02-19 Thiemo Seufer <ths@mips.com>
07802d98 14 Nigel Stephens <nigel@mips.com>
b1004875
TS
15
16 * interp.c (ColdReset): Set CP0 Config0 to reflect the address size
17 supported by this simulator.
07802d98
TS
18 (decode_coproc): Recognise additional CP0 Config registers
19 correctly.
20
14fb6c5a
TS
212007-02-19 Thiemo Seufer <ths@mips.com>
22 Nigel Stephens <nigel@mips.com>
23 David Ung <davidu@mips.com>
24
25 * cp1.c (value_fpr): Don't inherit existing FPR_STATE for
26 uninterpreted formats. If fmt is one of the uninterpreted types
27 don't update the FPR_STATE. Handle fmt_uninterpreted_32 like
28 fmt_word, and fmt_uninterpreted_64 like fmt_long.
29 (store_fpr): When writing an invalid odd register, set the
30 matching even register to fmt_unknown, not the following register.
31 * interp.c (sim_open): If STATE_MEM_SIZE isn't set then set it to
32 the the memory window at offset 0 set by --memory-size command
33 line option.
34 (sim_store_register): Handle storing 4 bytes to an 8 byte floating
35 point register.
36 (sim_fetch_register): Likewise for reading 4 bytes from an 8 byte
37 register.
38 (sim_monitor): When returning the memory size to the MIPS
39 application, use the value in STATE_MEM_SIZE, not an arbitrary
40 hardcoded value.
41 (cop_lw): Don' mess around with FPR_STATE, just pass
42 fmt_uninterpreted_32 to StoreFPR.
43 (cop_sw): Similarly.
44 (cop_ld): Pass fmt_uninterpreted_64 not fmt_uninterpreted.
45 (cop_sd): Similarly.
46 * mips.igen (not_word_value): Single version for mips32, mips64
47 and mips16.
48
c8847145
TS
492007-02-19 Thiemo Seufer <ths@mips.com>
50 Nigel Stephens <nigel@mips.com>
51
52 * interp.c (MEM_SIZE): Increase default memory size from 2 to 8
53 MBytes.
54
4b5d35ee
TS
552007-02-17 Thiemo Seufer <ths@mips.com>
56
57 * configure.ac (mips*-sde-elf*): Move in front of generic machine
58 configuration.
59 * configure: Regenerate.
60
3669427c
TS
612007-02-17 Thiemo Seufer <ths@mips.com>
62
63 * configure.ac (mips*-sde-elf*, mipsisa32r2*-*-*, mipsisa64r2*-*-*):
64 Add mdmx to sim_igen_machine.
65 (mipsisa64*-*-*): Likewise. Remove dsp.
66 (mipsisa32*-*-*): Remove dsp.
67 * configure: Regenerate.
68
109ad085
TS
692007-02-13 Thiemo Seufer <ths@mips.com>
70
71 * configure.ac: Add mips*-sde-elf* target.
72 * configure: Regenerate.
73
921d7ad3
HPN
742006-12-21 Hans-Peter Nilsson <hp@axis.com>
75
76 * acconfig.h: Remove.
77 * config.in, configure: Regenerate.
78
02f97da7
TS
792006-11-07 Thiemo Seufer <ths@mips.com>
80
81 * dsp.igen (do_w_op): Fix compiler warning.
82
2d2733fc
TS
832006-08-29 Thiemo Seufer <ths@mips.com>
84 David Ung <davidu@mips.com>
85
86 * configure.ac (mipsisa32r2*-*-*, mipsisa32*-*-*): Add smartmips to
87 sim_igen_machine.
88 * configure: Regenerate.
89 * mips.igen (model): Add smartmips.
90 (MADDU): Increment ACX if carry.
91 (do_mult): Clear ACX.
92 (ROR,RORV): Add smartmips.
93 (include): Include smartmips.igen.
94 * sim-main.h (ACX): Set to REGISTERS[89].
95 * smartmips.igen: New file.
96
d85c3a10
TS
972006-08-29 Thiemo Seufer <ths@mips.com>
98 David Ung <davidu@mips.com>
99
100 * Makefile.in (IGEN_INCLUDE): Add missing includes for m16e.igen and
101 mips3264r2.igen. Add missing dependency rules.
102 * m16e.igen: Support for mips16e save/restore instructions.
103
e85e3205
RE
1042006-06-13 Richard Earnshaw <rearnsha@arm.com>
105
106 * configure: Regenerated.
107
2f0122dc
DJ
1082006-06-05 Daniel Jacobowitz <dan@codesourcery.com>
109
110 * configure: Regenerated.
111
20e95c23
DJ
1122006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
113
114 * configure: Regenerated.
115
69088b17
CF
1162006-05-15 Chao-ying Fu <fu@mips.com>
117
118 * dsp.igen (do_ph_shift, do_w_shra): Fix bugs for rounding instructions.
119
0275de4e
NC
1202006-04-18 Nick Clifton <nickc@redhat.com>
121
122 * dv-tx3904tmr.c (deliver_tx3904tmr_tick): Add missing break
123 statement.
124
b3a3ffef
HPN
1252006-03-29 Hans-Peter Nilsson <hp@axis.com>
126
127 * configure: Regenerate.
128
40a5538e
CF
1292005-12-14 Chao-ying Fu <fu@mips.com>
130
131 * Makefile.in (SIM_OBJS): Add dsp.o.
132 (dsp.o): New dependency.
133 (IGEN_INCLUDE): Add dsp.igen.
134 * configure.ac (mipsisa32r2*-*-*, mipsisa32*-*-*, mipsisa64r2*-*-*,
135 mipsisa64*-*-*): Add dsp to sim_igen_machine.
136 * configure: Regenerate.
137 * mips.igen: Add dsp model and include dsp.igen.
138 (MFHI, MFLO, MTHI, MTLO): Remove mips32, mips32r2, mips64, mips64r2,
139 because these instructions are extended in DSP ASE.
140 * sim-main.h (LAST_EMBED_REGNUM): Change from 89 to 96 because of
141 adding 6 DSP accumulator registers and 1 DSP control register.
142 (AC0LOIDX, AC0HIIDX, AC1LOIDX, AC1HIIDX, AC2LOIDX, AC2HIIDX, AC3LOIDX,
143 AC3HIIDX, DSPLO, DSPHI, DSPCRIDX, DSPCR, DSPCR_POS_SHIFT,
144 DSPCR_POS_MASK, DSPCR_POS_SMASK, DSPCR_SCOUNT_SHIFT, DSPCR_SCOUNT_MASK,
145 DSPCR_SCOUNT_SMASK, DSPCR_CARRY_SHIFT, DSPCR_CARRY_MASK,
146 DSPCR_CARRY_SMASK, DSPCR_CARRY, DSPCR_EFI_SHIFT, DSPCR_EFI_MASK,
147 DSPCR_EFI_SMASK, DSPCR_EFI, DSPCR_OUFLAG_SHIFT, DSPCR_OUFLAG_MASK,
148 DSPCR_OUFLAG_SMASK, DSPCR_OUFLAG4, DSPCR_OUFLAG5, DSPCR_OUFLAG6,
149 DSPCR_OUFLAG7, DSPCR_CCOND_SHIFT, DSPCR_CCOND_MASK,
150 DSPCR_CCOND_SMASK): New define.
151 (DSPLO_REGNUM, DSPHI_REGNUM): New array for DSP accumulators.
152 * dsp.c, dsp.igen: New files for MIPS DSP ASE.
153
21d14896
ILT
1542005-07-08 Ian Lance Taylor <ian@airs.com>
155
156 * tconfig.in (SIM_QUIET_NAN_NEGATED): Define.
157
b16d63da
DU
1582005-06-16 David Ung <davidu@mips.com>
159 Nigel Stephens <nigel@mips.com>
160
161 * mips.igen: New mips16e model and include m16e.igen.
162 (check_u64): Add mips16e tag.
163 * m16e.igen: New file for MIPS16e instructions.
164 * configure.ac (mipsisa32*-*-*, mipsisa32r2*-*-*, mipsisa64*-*-*,
165 mipsisa64r2*-*-*): Change sim_gen to M16, add mips16 and mips16e
166 models.
167 * configure: Regenerate.
168
e70cb6cd
CD
1692005-05-26 David Ung <davidu@mips.com>
170
171 * mips.igen (mips32r2, mips64r2): New ISA models. Add new model
172 tags to all instructions which are applicable to the new ISAs.
173 (do_ror, do_dror, ROR, RORV, DROR, DROR32, DRORV): Add, moved from
174 vr.igen.
175 * mips3264r2.igen: New file for MIPS 32/64 revision 2 specific
176 instructions.
177 * vr.igen (do_ror, do_dror, ROR, RORV, DROR, DROR32, DRORV): Move
178 to mips.igen.
179 * configure.ac (mipsisa32r2*-*-*, mipsisa64r2*-*-*): Add new targets.
180 * configure: Regenerate.
181
2b193c4a
MK
1822005-03-23 Mark Kettenis <kettenis@gnu.org>
183
184 * configure: Regenerate.
185
35695fd6
AC
1862005-01-14 Andrew Cagney <cagney@gnu.org>
187
188 * configure.ac: Sinclude aclocal.m4 before common.m4. Add
189 explicit call to AC_CONFIG_HEADER.
190 * configure: Regenerate.
191
f0569246
AC
1922005-01-12 Andrew Cagney <cagney@gnu.org>
193
194 * configure.ac: Update to use ../common/common.m4.
195 * configure: Re-generate.
196
38f48d72
AC
1972005-01-11 Andrew Cagney <cagney@localhost.localdomain>
198
199 * configure: Regenerated to track ../common/aclocal.m4 changes.
200
b7026657
AC
2012005-01-07 Andrew Cagney <cagney@gnu.org>
202
203 * configure.ac: Rename configure.in, require autoconf 2.59.
204 * configure: Re-generate.
205
379832de
HPN
2062004-12-08 Hans-Peter Nilsson <hp@axis.com>
207
208 * configure: Regenerate for ../common/aclocal.m4 update.
209
cd62154c
AC
2102004-09-24 Monika Chaddha <monika@acmet.com>
211
212 Committed by Andrew Cagney.
213 * m16.igen (CMP, CMPI): Fix assembler.
214
e5da76ec
CD
2152004-08-18 Chris Demetriou <cgd@broadcom.com>
216
217 * configure.in (mipsisa64sb1*-*-*): Add mips3d to sim_igen_machine.
218 * configure: Regenerate.
219
139181c8
CD
2202004-06-25 Chris Demetriou <cgd@broadcom.com>
221
222 * configure.in (sim_m16_machine): Include mipsIII.
223 * configure: Regenerate.
224
1a27f959
CD
2252004-05-11 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
226
227 * mips/interp.c (decode_coproc): Sign-extend the address retrieved
228 from COP0_BADVADDR.
229 * mips/sim-main.h (COP0_BADVADDR): Remove a cast.
230
5dbb7b5a
CD
2312004-04-10 Chris Demetriou <cgd@broadcom.com>
232
233 * sb1.igen (DIV.PS, RECIP.PS, RSQRT.PS, SQRT.PS): New.
234
14234056
CD
2352004-04-09 Chris Demetriou <cgd@broadcom.com>
236
237 * mips.igen (check_fmt): Remove.
238 (ABS.fmt, ADD.fmt, C.cond.fmta, C.cond.fmtb, CEIL.L.fmt, CEIL.W)
239 (CVT.D.fmt, CVT.L.fmt, CVT.S.fmt, CVT.W.fmt, DIV.fmt, FLOOR.L.fmt)
240 (FLOOR.W.fmt, MADD.fmt, MOV.fmt, MOVtf.fmt, MOVN.fmt, MOVZ.fmt)
241 (MSUB.fmt, MUL.fmt, NEG.fmt, NMADD.fmt, NMSUB.fmt, RECIP.fmt)
242 (ROUND.L.fmt, ROUND.W.fmt, RSQRT.fmt, SQRT.fmt, SUB.fmt)
243 (TRUNC.L.fmt, TRUNC.W): Explicitly specify allowed FPU formats.
244 (check_fmt_p, CEIL.L.fmt, CEIL.W, DIV.fmt, FLOOR.L.fmt)
245 (FLOOR.W.fmt, RECIP.fmt, ROUND.L.fmt, ROUND.W.fmt, RSQRT.fmt)
246 (SQRT.fmt, TRUNC.L.fmt, TRUNC.W): Remove all uses of check_fmt.
247 (C.cnd.fmta): Remove incorrect call to check_fmt_p.
248
c6f9085c
CD
2492004-04-09 Chris Demetriou <cgd@broadcom.com>
250
251 * sb1.igen (check_sbx): New function.
252 (PABSDIFF.fmt, PABSDIFC.fmt, PAVG.fmt): Use check_sbx.
253
11d66e66 2542004-03-29 Chris Demetriou <cgd@broadcom.com>
0e1b7197
RS
255 Richard Sandiford <rsandifo@redhat.com>
256
257 * sim-main.h (MIPS_MACH_HAS_MT_HILO_HAZARD)
258 (MIPS_MACH_HAS_MULT_HILO_HAZARD, MIPS_MACH_HAS_DIV_HILO_HAZARD): New.
259 * mips.igen (check_mt_hilo, check_mult_hilo, check_div_hilo): Provide
260 separate implementations for mipsIV and mipsV. Use new macros to
261 determine whether the restrictions apply.
262
b3208fb8
CD
2632004-01-19 Chris Demetriou <cgd@broadcom.com>
264
265 * mips.igen (check_mf_cycles, check_mt_hilo, check_mf_hilo)
266 (check_mult_hilo): Improve comments.
267 (check_div_hilo): Likewise. Also, fork off a new version
268 to handle mips32/mips64 (since there are no hazards to check
269 in MIPS32/MIPS64).
270
9a1d84fb
CD
2712003-06-17 Richard Sandiford <rsandifo@redhat.com>
272
273 * mips.igen (do_dmultx): Fix check for negative operands.
274
ae451ac6
ILT
2752003-05-16 Ian Lance Taylor <ian@airs.com>
276
277 * Makefile.in (SHELL): Make sure this is defined.
278 (various): Use $(SHELL) whenever we invoke move-if-change.
279
dd69d292
CD
2802003-05-03 Chris Demetriou <cgd@broadcom.com>
281
282 * cp1.c: Tweak attribution slightly.
283 * cp1.h: Likewise.
284 * mdmx.c: Likewise.
285 * mdmx.igen: Likewise.
286 * mips3d.igen: Likewise.
287 * sb1.igen: Likewise.
288
bcd0068e
CD
2892003-04-15 Richard Sandiford <rsandifo@redhat.com>
290
291 * vr.igen (do_vr_mul_op): Zero-extend the low 32 bits of
292 unsigned operands.
293
6b4a8935
AC
2942003-02-27 Andrew Cagney <cagney@redhat.com>
295
601da316
AC
296 * interp.c (sim_open): Rename _bfd to bfd.
297 (sim_create_inferior): Ditto.
6b4a8935 298
d29e330f
CD
2992003-01-14 Chris Demetriou <cgd@broadcom.com>
300
301 * mips.igen (LUXC1, SUXC1): New, for mipsV and mips64.
302
a2353a08
CD
3032003-01-14 Chris Demetriou <cgd@broadcom.com>
304
305 * mips.igen (EI, DI): Remove.
306
80551777
CD
3072003-01-05 Richard Sandiford <rsandifo@redhat.com>
308
309 * Makefile.in (tmp-run-multi): Fix mips16 filter.
310
4c54fc26
CD
3112003-01-04 Richard Sandiford <rsandifo@redhat.com>
312 Andrew Cagney <ac131313@redhat.com>
313 Gavin Romig-Koch <gavin@redhat.com>
314 Graydon Hoare <graydon@redhat.com>
315 Aldy Hernandez <aldyh@redhat.com>
316 Dave Brolley <brolley@redhat.com>
317 Chris Demetriou <cgd@broadcom.com>
318
319 * configure.in (mips64vr*): Define TARGET_ENABLE_FR to 1.
320 (sim_mach_default): New variable.
321 (mips64vr-*-*, mips64vrel-*-*): New configurations.
322 Add a new simulator generator, MULTI.
323 * configure: Regenerate.
324 * Makefile.in (SIM_MULTI_OBJ, SIM_EXTRA_DISTCLEAN): New variables.
325 (multi-run.o): New dependency.
326 (SIM_MULTI_ALL, SIM_MULTI_IGEN_CONFIGS): New variables.
327 (tmp-mach-multi, tmp-itable-multi, tmp-run-multi): New rules.
328 (tmp-multi): Combine them.
329 (BUILT_SRC_FROM_MULTI): New variable. Depend on tmp-multi.
330 (clean-extra): Remove sources in BUILT_SRC_FROM_MULTI.
331 (distclean-extra): New rule.
332 * sim-main.h: Include bfd.h.
333 (MIPS_MACH): New macro.
334 * mips.igen (vr4120, vr5400, vr5500): New models.
335 (clo, clz, dclo, dclz, madd, maddu, msub, msub, mul): Add *vr5500.
336 * vr.igen: Replace with new version.
337
e6c674b8
CD
3382003-01-04 Chris Demetriou <cgd@broadcom.com>
339
340 * configure.in: Use SIM_AC_OPTION_RESERVED_BITS(1).
341 * configure: Regenerate.
342
28f50ac8
CD
3432002-12-31 Chris Demetriou <cgd@broadcom.com>
344
345 * sim-main.h (check_branch_bug, mark_branch_bug): Remove.
346 * mips.igen: Remove all invocations of check_branch_bug and
347 mark_branch_bug.
348
5071ffe6
CD
3492002-12-16 Chris Demetriou <cgd@broadcom.com>
350
351 * tconfig.in: Include "gdb/callback.h" and "gdb/remote-sim.h".
352
06e7837e
CD
3532002-07-30 Chris Demetriou <cgd@broadcom.com>
354
355 * mips.igen (do_load_double, do_store_double): New functions.
356 (LDC1, SDC1): Rename to...
357 (LDC1b, SDC1b): respectively.
358 (LDC1a, SDC1a): New instructions for MIPS II and MIPS32 support.
359
2265c243
MS
3602002-07-29 Michael Snyder <msnyder@redhat.com>
361
362 * cp1.c (fp_recip2): Modify initialization expression so that
363 GCC will recognize it as constant.
364
a2f8b4f3
CD
3652002-06-18 Chris Demetriou <cgd@broadcom.com>
366
367 * mdmx.c (SD_): Delete.
368 (Unpredictable): Re-define, for now, to directly invoke
369 unpredictable_action().
370 (mdmx_acc_op): Fix error in .ob immediate handling.
371
b4b6c939
AC
3722002-06-18 Andrew Cagney <cagney@redhat.com>
373
374 * interp.c (sim_firmware_command): Initialize `address'.
375
c8cca39f
AC
3762002-06-16 Andrew Cagney <ac131313@redhat.com>
377
378 * configure: Regenerated to track ../common/aclocal.m4 changes.
379
e7e81181
CD
3802002-06-14 Chris Demetriou <cgd@broadcom.com>
381 Ed Satterthwaite <ehs@broadcom.com>
382
383 * mips3d.igen: New file which contains MIPS-3D ASE instructions.
384 * Makefile.in (IGEN_INCLUDE): Add mips3d.igen.
385 * mips.igen: Include mips3d.igen.
386 (mips3d): New model name for MIPS-3D ASE instructions.
387 (CVT.W.fmt): Don't use this instruction for word (source) format
388 instructions.
389 * cp1.c (fp_binary_r, fp_add_r, fp_mul_r, fpu_inv1, fpu_inv1_32)
390 (fpu_inv1_64, fp_recip1, fp_recip2, fpu_inv_sqrt1, fpu_inv_sqrt1_32)
391 (fpu_inv_sqrt1_64, fp_rsqrt1, fp_rsqrt2): New functions.
392 (NR_FRAC_GUARD, IMPLICIT_1): New macros.
393 * sim-main.h (fmt_pw, CompareAbs, AddR, MultiplyR, Recip1, Recip2)
394 (RSquareRoot1, RSquareRoot2): New macros.
395 (fp_add_r, fp_mul_r, fp_recip1, fp_recip2, fp_rsqrt1)
396 (fp_rsqrt2): New functions.
397 * configure.in: Add MIPS-3D support to mipsisa64 simulator.
398 * configure: Regenerate.
399
3a2b820e 4002002-06-13 Chris Demetriou <cgd@broadcom.com>
eab54952 401 Ed Satterthwaite <ehs@broadcom.com>
3a2b820e
CD
402
403 * cp1.c (FP_PS_upper, FP_PS_lower, FP_PS_cat, FPQNaN_PS): New macros.
404 (value_fpr, store_fpr, fp_cmp, fp_unary, fp_binary, fp_mac)
405 (fp_inv_sqrt, fpu_format_name): Add paired-single support.
406 (convert): Note that this function is not used for paired-single
407 format conversions.
408 (ps_lower, ps_upper, pack_ps, convert_ps): New functions.
409 * mips.igen (FMT, MOVtf.fmt): Add paired-single support.
410 (check_fmt_p): Enable paired-single support.
411 (ALNV.PS, CVT.PS.S, CVT.S.PL, CVT.S.PU, PLL.PS, PLU.PS, PUL.PS)
412 (PUU.PS): New instructions.
413 (CVT.S.fmt): Don't use this instruction for paired-single format
414 destinations.
415 * sim-main.h (FP_formats): New value 'fmt_ps.'
416 (ps_lower, ps_upper, pack_ps, convert_ps): New prototypes.
417 (PSLower, PSUpper, PackPS, ConvertPS): New macros.
418
d18ea9c2
CD
4192002-06-12 Chris Demetriou <cgd@broadcom.com>
420
421 * mips.igen: Fix formatting of function calls in
422 many FP operations.
423
95fd5cee
CD
4242002-06-12 Chris Demetriou <cgd@broadcom.com>
425
426 * mips.igen (MOVN, MOVZ): Trace result.
427 (TNEI): Print "tnei" as the opcode name in traces.
428 (CEIL.W): Add disassembly string for traces.
429 (RSQRT.fmt): Make location of disassembly string consistent
430 with other instructions.
431
4f0d55ae
CD
4322002-06-12 Chris Demetriou <cgd@broadcom.com>
433
434 * mips.igen (X): Delete unused function.
435
3c25f8c7
AC
4362002-06-08 Andrew Cagney <cagney@redhat.com>
437
438 * interp.c: Include "gdb/callback.h" and "gdb/remote-sim.h".
439
f3c08b7e
CD
4402002-06-07 Chris Demetriou <cgd@broadcom.com>
441 Ed Satterthwaite <ehs@broadcom.com>
442
443 * cp1.c (inner_mac, fp_mac, inner_rsqrt, fp_inv_sqrt)
444 (fp_rsqrt, fp_madd, fp_msub, fp_nmadd, fp_nmsub): New functions.
445 * sim-main.h (fp_rsqrt, fp_madd, fp_msub, fp_nmadd)
446 (fp_nmsub): New prototypes.
447 (RSquareRoot, MultiplyAdd, MultiplySub, NegMultiplyAdd)
448 (NegMultiplySub): New defines.
449 * mips.igen (RSQRT.fmt): Use RSquareRoot().
450 (MADD.D, MADD.S): Replace with...
451 (MADD.fmt): New instruction.
452 (MSUB.D, MSUB.S): Replace with...
453 (MSUB.fmt): New instruction.
454 (NMADD.D, NMADD.S): Replace with...
455 (NMADD.fmt): New instruction.
456 (NMSUB.D, MSUB.S): Replace with...
457 (NMSUB.fmt): New instruction.
458
52714ff9
CD
4592002-06-07 Chris Demetriou <cgd@broadcom.com>
460 Ed Satterthwaite <ehs@broadcom.com>
461
462 * cp1.c: Fix more comment spelling and formatting.
463 (value_fcr, store_fcr): Use fenr_FS rather than hard-coding value.
464 (denorm_mode): New function.
465 (fpu_unary, fpu_binary): Round results after operation, collect
466 status from rounding operations, and update the FCSR.
467 (convert): Collect status from integer conversions and rounding
468 operations, and update the FCSR. Adjust NaN values that result
469 from conversions. Convert to use sim_io_eprintf rather than
470 fprintf, and remove some debugging code.
471 * cp1.h (fenr_FS): New define.
472
577d8c4b
CD
4732002-06-07 Chris Demetriou <cgd@broadcom.com>
474
475 * cp1.c (convert): Remove unusable debugging code, and move MIPS
476 rounding mode to sim FP rounding mode flag conversion code into...
477 (rounding_mode): New function.
478
196496ed
CD
4792002-06-07 Chris Demetriou <cgd@broadcom.com>
480
481 * cp1.c: Clean up formatting of a few comments.
482 (value_fpr): Reformat switch statement.
483
cfe9ea23
CD
4842002-06-06 Chris Demetriou <cgd@broadcom.com>
485 Ed Satterthwaite <ehs@broadcom.com>
486
487 * cp1.h: New file.
488 * sim-main.h: Include cp1.h.
489 (SETFCC, GETFCC, IR, UF, OF, DX, IO, UO, FP_FLAGS, FP_ENABLE)
490 (FP_CAUSE, GETFS, FP_RM_NEAREST, FP_RM_TOZERO, FP_RM_TOPINF)
491 (FP_RM_TOMINF, GETRM): Remove. Moved to cp1.h.
492 (FP_FS, FP_MASK_RM, FP_SH_RM, Nan, Less, Equal): Remove.
493 (value_fcr, store_fcr, test_fcsr, fp_cmp): New prototypes.
494 (ValueFCR, StoreFCR, TestFCSR, Compare): New macros.
495 * cp1.c: Don't include sim-fpu.h; already included by
496 sim-main.h. Clean up formatting of some comments.
497 (NaN, Equal, Less): Remove.
498 (test_fcsr, value_fcr, store_fcr, update_fcsr, fp_test)
499 (fp_cmp): New functions.
500 * mips.igen (do_c_cond_fmt): Remove.
501 (C.cond.fmta, C.cond.fmtb): Replace uses of do_c_cond_fmt_a with
502 Compare. Add result tracing.
503 (CxC1): Remove, replace with...
504 (CFC1a, CFC1b, CFC1c, CTC1a, CTC1b, CTC1c): New instructions.
505 (DMxC1): Remove, replace with...
506 (DMFC1a, DMFC1b, DMTC1a, DMTC1b): New instructions.
507 (MxC1): Remove, replace with...
508 (MFC1a, MFC1b, MTC1a, MTC1b): New instructions.
509
ee7254b0
CD
5102002-06-04 Chris Demetriou <cgd@broadcom.com>
511
512 * sim-main.h (FGRIDX): Remove, replace all uses with...
513 (FGR_BASE): New macro.
514 (FP0_REGNUM, FCRCS_REGNUM, FCRIR_REGNUM): New macros.
515 (_sim_cpu): Move 'fgr' member to be right before 'fpr_state' member.
516 (NR_FGR, FGR): Likewise.
517 * interp.c: Replace all uses of FGRIDX with FGR_BASE.
518 * mips.igen: Likewise.
519
d3eb724f
CD
5202002-06-04 Chris Demetriou <cgd@broadcom.com>
521
522 * cp1.c: Add an FSF Copyright notice to this file.
523
ba46ddd0
CD
5242002-06-04 Chris Demetriou <cgd@broadcom.com>
525 Ed Satterthwaite <ehs@broadcom.com>
526
527 * cp1.c (Infinity): Remove.
528 * sim-main.h (Infinity): Likewise.
529
530 * cp1.c (fp_unary, fp_binary): New functions.
531 (fp_abs, fp_neg, fp_add, fp_sub, fp_mul, fp_div, fp_recip)
532 (fp_sqrt): New functions, implemented in terms of the above.
533 (AbsoluteValue, Negate, Add, Sub, Multiply, Divide)
534 (Recip, SquareRoot): Remove (replaced by functions above).
535 * sim-main.h (fp_abs, fp_neg, fp_add, fp_sub, fp_mul, fp_div)
536 (fp_recip, fp_sqrt): New prototypes.
537 (AbsoluteValue, Negate, Add, Sub, Multiply, Divide)
538 (Recip, SquareRoot): Replace prototypes with #defines which
539 invoke the functions above.
540
18d8a52d
CD
5412002-06-03 Chris Demetriou <cgd@broadcom.com>
542
543 * sim-main.h (Nan, Infinity, Less, Equal, AbsoluteValue, Negate)
544 (Add, Sub, Multiply, Divide, Recip, SquareRoot): Move lower in
545 file, remove PARAMS from prototypes.
546 (value_fpr, store_fpr, convert): Likewise. Use SIM_STATE to provide
547 simulator state arguments.
548 (ValueFPR, StoreFPR, Convert): Move lower in file. Use SIM_ARGS to
549 pass simulator state arguments.
550 * cp1.c (SD): Redefine as CPU_STATE(cpu).
551 (store_fpr, convert): Remove 'sd' argument.
552 (value_fpr): Likewise. Convert to use 'SD' instead.
553
0f154cbd
CD
5542002-06-03 Chris Demetriou <cgd@broadcom.com>
555
556 * cp1.c (Min, Max): Remove #if 0'd functions.
557 * sim-main.h (Min, Max): Remove.
558
e80fc152
CD
5592002-06-03 Chris Demetriou <cgd@broadcom.com>
560
561 * cp1.c: fix formatting of switch case and default labels.
562 * interp.c: Likewise.
563 * sim-main.c: Likewise.
564
bad673a9
CD
5652002-06-03 Chris Demetriou <cgd@broadcom.com>
566
567 * cp1.c: Clean up comments which describe FP formats.
568 (FPQNaN_DOUBLE, FPQNaN_LONG): Generate using UNSIGNED64.
569
7cbea089
CD
5702002-06-03 Chris Demetriou <cgd@broadcom.com>
571 Ed Satterthwaite <ehs@broadcom.com>
572
573 * configure.in (mipsisa64sb1*-*-*): New target for supporting
574 Broadcom SiByte SB-1 processor configurations.
575 * configure: Regenerate.
576 * sb1.igen: New file.
577 * mips.igen: Include sb1.igen.
578 (sb1): New model.
579 * Makefile.in (IGEN_INCLUDE): Add sb1.igen.
580 * mdmx.igen: Add "sb1" model to all appropriate functions and
581 instructions.
582 * mdmx.c (AbsDiffOB, AvgOB, AccAbsDiffOB): New functions.
583 (ob_func, ob_acc): Reference the above.
584 (qh_acc): Adjust to keep the same size as ob_acc.
585 * sim-main.h (status_SBX, MX_VECT_ABSD, MX_VECT_AVG, MX_AbsDiff)
586 (MX_Avg, MX_VECT_ABSDA, MX_AbsDiffC): New macros.
587
909daa82
CD
5882002-06-03 Chris Demetriou <cgd@broadcom.com>
589
590 * Makefile.in (IGEN_INCLUDE): Add mdmx.igen.
591
f4f1b9f1
CD
5922002-06-02 Chris Demetriou <cgd@broadcom.com>
593 Ed Satterthwaite <ehs@broadcom.com>
594
595 * mips.igen (mdmx): New (pseudo-)model.
596 * mdmx.c, mdmx.igen: New files.
597 * Makefile.in (SIM_OBJS): Add mdmx.o.
598 * sim-main.h (MDMX_accumulator, MX_fmtsel, signed24, signed48):
599 New typedefs.
600 (ACC, MX_Add, MX_AddA, MX_AddL, MX_And, MX_C_EQ, MX_C_LT, MX_Comp)
601 (MX_FMT_OB, MX_FMT_QH, MX_Max, MX_Min, MX_Msgn, MX_Mul, MX_MulA)
602 (MX_MulL, MX_MulS, MX_MulSL, MX_Nor, MX_Or, MX_Pick, MX_RAC)
603 (MX_RAC_H, MX_RAC_L, MX_RAC_M, MX_RNAS, MX_RNAU, MX_RND_AS)
604 (MX_RND_AU, MX_RND_ES, MX_RND_EU, MX_RND_ZS, MX_RND_ZU, MX_RNES)
605 (MX_RNEU, MX_RZS, MX_RZU, MX_SHFL, MX_ShiftLeftLogical)
606 (MX_ShiftRightArith, MX_ShiftRightLogical, MX_Sub, MX_SubA, MX_SubL)
607 (MX_VECT_ADD, MX_VECT_ADDA, MX_VECT_ADDL, MX_VECT_AND)
608 (MX_VECT_MAX, MX_VECT_MIN, MX_VECT_MSGN, MX_VECT_MUL, MX_VECT_MULA)
609 (MX_VECT_MULL, MX_VECT_MULS, MX_VECT_MULSL, MX_VECT_NOR)
610 (MX_VECT_OR, MX_VECT_SLL, MX_VECT_SRA, MX_VECT_SRL, MX_VECT_SUB)
611 (MX_VECT_SUBA, MX_VECT_SUBL, MX_VECT_XOR, MX_WACH, MX_WACL, MX_Xor)
612 (SIM_ARGS, SIM_STATE, UnpredictableResult, fmt_mdmx, ob_fmtsel)
613 (qh_fmtsel): New macros.
614 (_sim_cpu): New member "acc".
615 (mdmx_acc_op, mdmx_cc_op, mdmx_cpr_op, mdmx_pick_op, mdmx_rac_op)
616 (mdmx_round_op, mdmx_shuffle, mdmx_wach, mdmx_wacl): New functions.
617
5accf1ff
CD
6182002-05-01 Chris Demetriou <cgd@broadcom.com>
619
620 * interp.c: Use 'deprecated' rather than 'depreciated.'
621 * sim-main.h: Likewise.
622
402586aa
CD
6232002-05-01 Chris Demetriou <cgd@broadcom.com>
624
625 * cp1.c (store_fpr): Remove #ifdef'd out call to UndefinedResult
626 which wouldn't compile anyway.
627 * sim-main.h (unpredictable_action): New function prototype.
628 (Unpredictable): Define to call igen function unpredictable().
629 (NotWordValue): New macro to call igen function not_word_value().
630 (UndefinedResult): Remove.
631 * interp.c (undefined_result): Remove.
632 (unpredictable_action): New function.
633 * mips.igen (not_word_value, unpredictable): New functions.
634 (ADD, ADDI, do_addiu, do_addu, BGEZAL, BGEZALL, BLTZAL, BLTZALL)
635 (CLO, CLZ, MADD, MADDU, MSUB, MSUBU, MUL, do_mult, do_multu)
636 (do_sra, do_srav, do_srl, do_srlv, SUB, do_subu): Invoke
637 NotWordValue() to check for unpredictable inputs, then
638 Unpredictable() to handle them.
639
c9b9995a
CD
6402002-02-24 Chris Demetriou <cgd@broadcom.com>
641
642 * mips.igen: Fix formatting of calls to Unpredictable().
643
e1015982
AC
6442002-04-20 Andrew Cagney <ac131313@redhat.com>
645
646 * interp.c (sim_open): Revert previous change.
647
b882a66b
AO
6482002-04-18 Alexandre Oliva <aoliva@redhat.com>
649
650 * interp.c (sim_open): Disable chunk of code that wrote code in
651 vector table entries.
652
c429b7dd
CD
6532002-03-19 Chris Demetriou <cgd@broadcom.com>
654
655 * cp1.c (FP_S_s, FP_D_s, FP_S_be, FP_D_be, FP_S_e, FP_D_e, FP_S_f)
656 (FP_D_f, FP_S_fb, FP_D_fb, FPINF_SINGLE, FPINF_DOUBLE): Remove
657 unused definitions.
658
37d146fa
CD
6592002-03-19 Chris Demetriou <cgd@broadcom.com>
660
661 * cp1.c: Fix many formatting issues.
662
07892c0b
CD
6632002-03-19 Chris G. Demetriou <cgd@broadcom.com>
664
665 * cp1.c (fpu_format_name): New function to replace...
666 (DOFMT): This. Delete, and update all callers.
667 (fpu_rounding_mode_name): New function to replace...
668 (RMMODE): This. Delete, and update all callers.
669
487f79b7
CD
6702002-03-19 Chris G. Demetriou <cgd@broadcom.com>
671
672 * interp.c: Move FPU support routines from here to...
673 * cp1.c: Here. New file.
674 * Makefile.in (SIM_OBJS): Add cp1.o to object list.
675 (cp1.o): New target.
676
1e799e28
CD
6772002-03-12 Chris Demetriou <cgd@broadcom.com>
678
679 * configure.in (mipsisa32*-*-*, mipsisa64*-*-*): New targets.
680 * mips.igen (mips32, mips64): New models, add to all instructions
681 and functions as appropriate.
682 (loadstore_ea, check_u64): New variant for model mips64.
683 (check_fmt_p): New variant for models mipsV and mips64, remove
684 mipsV model marking fro other variant.
685 (SLL) Rename to...
686 (SLLa) this.
687 (CLO, CLZ, MADD, MADDU, MSUB, MSUBU, MUL, SLLb): New instructions
688 for mips32 and mips64.
689 (DCLO, DCLZ): New instructions for mips64.
690
82f728db
CD
6912002-03-07 Chris Demetriou <cgd@broadcom.com>
692
693 * mips.igen (BREAK, LUI, ORI, SYSCALL, XORI): Print
694 immediate or code as a hex value with the "%#lx" format.
695 (ANDI): Likewise, and fix printed instruction name.
696
b96e7ef1
CD
6972002-03-05 Chris Demetriou <cgd@broadcom.com>
698
699 * sim-main.h (UndefinedResult, Unpredictable): New macros
700 which currently do nothing.
701
d35d4f70
CD
7022002-03-05 Chris Demetriou <cgd@broadcom.com>
703
704 * sim-main.h (status_UX, status_SX, status_KX, status_TS)
705 (status_PX, status_MX, status_CU0, status_CU1, status_CU2)
706 (status_CU3): New definitions.
707
708 * sim-main.h (ExceptionCause): Add new values for MIPS32
709 and MIPS64: MDMX, MCheck, CacheErr. Update comments
710 for DebugBreakPoint and NMIReset to note their status in
711 MIPS32 and MIPS64.
712 (SignalExceptionMDMX, SignalExceptionWatch, SignalExceptionMCheck)
713 (SignalExceptionCacheErr): New exception macros.
714
3ad6f714
CD
7152002-03-05 Chris Demetriou <cgd@broadcom.com>
716
717 * mips.igen (check_fpu): Enable check for coprocessor 1 usability.
718 * sim-main.h (COP_Usable): Define, but for now coprocessor 1
719 is always enabled.
720 (SignalExceptionCoProcessorUnusable): Take as argument the
721 unusable coprocessor number.
722
86b77b47
CD
7232002-03-05 Chris Demetriou <cgd@broadcom.com>
724
725 * mips.igen: Fix formatting of all SignalException calls.
726
97a88e93 7272002-03-05 Chris Demetriou <cgd@broadcom.com>
3dea6720
CD
728
729 * sim-main.h (SIGNEXTEND): Remove.
730
97a88e93 7312002-03-04 Chris Demetriou <cgd@broadcom.com>
b5040d49
CD
732
733 * mips.igen: Remove gencode comment from top of file, fix
734 spelling in another comment.
735
97a88e93 7362002-03-04 Chris Demetriou <cgd@broadcom.com>
8612006b
CD
737
738 * mips.igen (check_fmt, check_fmt_p): New functions to check
739 whether specific floating point formats are usable.
740 (ABS.fmt, ADD.fmt, CEIL.L.fmt, CEIL.W, DIV.fmt, FLOOR.L.fmt)
741 (FLOOR.W.fmt, MOV.fmt, MUL.fmt, NEG.fmt, RECIP.fmt, ROUND.L.fmt)
742 (ROUND.W.fmt, RSQRT.fmt, SQRT.fmt, SUB.fmt, TRUNC.L.fmt, TRUNC.W):
743 Use the new functions.
744 (do_c_cond_fmt): Remove format checks...
745 (C.cond.fmta, C.cond.fmtb): And move them into all callers.
746
97a88e93 7472002-03-03 Chris Demetriou <cgd@broadcom.com>
9b17d183
CD
748
749 * mips.igen: Fix formatting of check_fpu calls.
750
41774c9d
CD
7512002-03-03 Chris Demetriou <cgd@broadcom.com>
752
753 * mips.igen (FLOOR.L.fmt): Store correct destination register.
754
4a0bd876
CD
7552002-03-03 Chris Demetriou <cgd@broadcom.com>
756
757 * mips.igen: Remove whitespace at end of lines.
758
09297648
CD
7592002-03-02 Chris Demetriou <cgd@broadcom.com>
760
761 * mips.igen (loadstore_ea): New function to do effective
762 address calculations.
763 (do_load, do_load_left, do_load_right, LL, LDD, PREF, do_store,
764 do_store_left, do_store_right, SC, SCD, PREFX, SWC1, SWXC1,
765 CACHE): Use loadstore_ea to do effective address computations.
766
043b7057
CD
7672002-03-02 Chris Demetriou <cgd@broadcom.com>
768
769 * interp.c (load_word): Use EXTEND32 rather than SIGNEXTEND.
770 * mips.igen (LL, CxC1, MxC1): Likewise.
771
c1e8ada4
CD
7722002-03-02 Chris Demetriou <cgd@broadcom.com>
773
774 * mips.igen (LL, LLD, PREF, SC, SCD, ABS.fmt, ADD.fmt, CEIL.L.fmt,
775 CEIL.W, CVT.D.fmt, CVT.L.fmt, CVT.S.fmt, CVT.W.fmt, DIV.fmt,
776 FLOOR.L.fmt, FLOOR.W.fmt, MADD.D, MADD.S, MOV.fmt, MOVtf.fmt,
777 MSUB.D, MSUB.S, MUL.fmt, NEG.fmt, NMADD.D, NMADD.S, NMSUB.D,
778 NMSUB.S, PREFX, RECIP.fmt, ROUND.L.fmt, ROUND.W.fmt, RSQRT.fmt,
779 SQRT.fmt, SUB.fmt, SWC1, SWXC1, TRUNC.L.fmt, TRUNC.W, CACHE):
780 Don't split opcode fields by hand, use the opcode field values
781 provided by igen.
782
3e1dca16
CD
7832002-03-01 Chris Demetriou <cgd@broadcom.com>
784
785 * mips.igen (do_divu): Fix spacing.
786
787 * mips.igen (do_dsllv): Move to be right before DSLLV,
788 to match the rest of the do_<shift> functions.
789
fff8d27d
CD
7902002-03-01 Chris Demetriou <cgd@broadcom.com>
791
792 * mips.igen (do_dsll, do_dsllv, DSLL32, do_dsra, DSRA32, do_dsrl,
793 DSRL32, do_dsrlv): Trace inputs and results.
794
0d3e762b
CD
7952002-03-01 Chris Demetriou <cgd@broadcom.com>
796
797 * mips.igen (CACHE): Provide instruction-printing string.
798
799 * interp.c (signal_exception): Comment tokens after #endif.
800
eb5fcf93
CD
8012002-02-28 Chris Demetriou <cgd@broadcom.com>
802
803 * mips.igen (LWXC1): Mark with filter "64,f", rather than just "32".
804 (MOVtf, MxC1, MxC1, DMxC1, DMxC1, CxC1, CxC1, SQRT.fmt, MOV.fmt,
805 NEG.fmt, ROUND.L.fmt, TRUNC.L.fmt, CEIL.L.fmt, FLOOR.L.fmt,
806 ROUND.W.fmt, TRUNC.W, CEIL.W, FLOOR.W.fmt, RECIP.fmt, RSQRT.fmt,
807 CVT.S.fmt, CVT.D.fmt, CVT.W.fmt, CVT.L.fmt, MOVtf.fmt, C.cond.fmta,
808 C.cond.fmtb, SUB.fmt, MUL.fmt, DIV.fmt, MOVZ.fmt, MOVN.fmt, LDXC1,
809 SWXC1, SDXC1, MSUB.D, MSUB.S, NMADD.S, NMADD.D, NMSUB.S, NMSUB.D,
810 LWC1, SWC1): Add "f" to filter, since these are FP instructions.
811
bb22bd7d
CD
8122002-02-28 Chris Demetriou <cgd@broadcom.com>
813
814 * mips.igen (DSRA32, DSRAV): Fix order of arguments in
815 instruction-printing string.
816 (LWU): Use '64' as the filter flag.
817
91a177cf
CD
8182002-02-28 Chris Demetriou <cgd@broadcom.com>
819
820 * mips.igen (SDXC1): Fix instruction-printing string.
821
387f484a
CD
8222002-02-28 Chris Demetriou <cgd@broadcom.com>
823
824 * mips.igen (LDC1, SDC1): Remove mipsI model, and mark with
825 filter flags "32,f".
826
3d81f391
CD
8272002-02-27 Chris Demetriou <cgd@broadcom.com>
828
829 * mips.igen (PREFX): This is a 64-bit instruction, use '64'
830 as the filter flag.
831
af5107af
CD
8322002-02-27 Chris Demetriou <cgd@broadcom.com>
833
834 * mips.igen (PREFX): Tweak instruction opcode fields (i.e.,
835 add a comma) so that it more closely match the MIPS ISA
836 documentation opcode partitioning.
837 (PREF): Put useful names on opcode fields, and include
838 instruction-printing string.
839
ca971540
CD
8402002-02-27 Chris Demetriou <cgd@broadcom.com>
841
842 * mips.igen (check_u64): New function which in the future will
843 check whether 64-bit instructions are usable and signal an
844 exception if not. Currently a no-op.
845 (DADD, DADDI, DADDIU, DADDU, DDIV, DDIVU, DMULT, DMULTU, DSLL,
846 DSLL32, DSLLV, DSRA, DSRA32, DSRAV, DSRL, DSRL32, DSRLV, DSUB,
847 DSUBU, LD, LDL, LDR, LLD, LWU, SCD, SD, SDL, SDR, DMxC1, LDXC1,
848 LWXC1, SDXC1, SWXC1, DMFC0, DMTC0): Use check_u64.
849
850 * mips.igen (check_fpu): New function which in the future will
851 check whether FPU instructions are usable and signal an exception
852 if not. Currently a no-op.
853 (ABS.fmt, ADD.fmt, BC1a, BC1b, C.cond.fmta, C.cond.fmtb,
854 CEIL.L.fmt, CEIL.W, CxC1, CVT.D.fmt, CVT.L.fmt, CVT.S.fmt,
855 CVT.W.fmt, DIV.fmt, DMxC1, DMxC1, FLOOR.L.fmt, FLOOR.W.fmt, LDC1,
856 LDXC1, LWC1, LWXC1, MADD.D, MADD.S, MxC1, MOV.fmt, MOVtf,
857 MOVtf.fmt, MOVN.fmt, MOVZ.fmt, MSUB.D, MSUB.S, MUL.fmt, NEG.fmt,
858 NMADD.D, NMADD.S, NMSUB.D, NMSUB.S, RECIP.fmt, ROUND.L.fmt,
859 ROUND.W.fmt, RSQRT.fmt, SDC1, SDXC1, SQRT.fmt, SUB.fmt, SWC1,
860 SWXC1, TRUNC.L.fmt, TRUNC.W): Use check_fpu.
861
1c47a468
CD
8622002-02-27 Chris Demetriou <cgd@broadcom.com>
863
864 * mips.igen (do_load_left, do_load_right): Move to be immediately
865 following do_load.
866 (do_store_left, do_store_right): Move to be immediately following
867 do_store.
868
603a98e7
CD
8692002-02-27 Chris Demetriou <cgd@broadcom.com>
870
871 * mips.igen (mipsV): New model name. Also, add it to
872 all instructions and functions where it is appropriate.
873
c5d00cc7
CD
8742002-02-18 Chris Demetriou <cgd@broadcom.com>
875
876 * mips.igen: For all functions and instructions, list model
877 names that support that instruction one per line.
878
074e9cb8
CD
8792002-02-11 Chris Demetriou <cgd@broadcom.com>
880
881 * mips.igen: Add some additional comments about supported
882 models, and about which instructions go where.
883 (BC1b, MFC0, MTC0, RFE): Sort supported models in the same
884 order as is used in the rest of the file.
885
9805e229
CD
8862002-02-11 Chris Demetriou <cgd@broadcom.com>
887
888 * mips.igen (ADD, ADDI, DADDI, DSUB, SUB): Add comment
889 indicating that ALU32_END or ALU64_END are there to check
890 for overflow.
891 (DADD): Likewise, but also remove previous comment about
892 overflow checking.
893
f701dad2
CD
8942002-02-10 Chris Demetriou <cgd@broadcom.com>
895
896 * mips.igen (DDIV, DIV, DIVU, DMULT, DMULTU, DSLL, DSLL32,
897 DSLLV, DSRA, DSRA32, DSRAV, DSRL, DSRL32, DSRLV, DSUB, DSUBU,
898 JALR, JR, MOVN, MOVZ, MTLO, MULT, MULTU, SLL, SLLV, SLT, SLTU,
899 SRAV, SRLV, SUB, SUBU, SYNC, XOR, MOVtf, DI, DMFC0, DMTC0, EI,
900 ERET, RFE, TLBP, TLBR, TLBWI, TLBWR): Tweak instruction opcode
901 fields (i.e., add and move commas) so that they more closely
902 match the MIPS ISA documentation opcode partitioning.
903
9042002-02-10 Chris Demetriou <cgd@broadcom.com>
20ae0098
CD
905
906 * mips.igen (ADDI): Print immediate value.
907 (BREAK): Print code.
908 (DADDIU, DSRAV, DSRLV): Print correct instruction name.
909 (SLL): Print "nop" specially, and don't run the code
910 that does the shift for the "nop" case.
911
9e52972e
FF
9122001-11-17 Fred Fish <fnf@redhat.com>
913
914 * sim-main.h (float_operation): Move enum declaration outside
915 of _sim_cpu struct declaration.
916
c0efbca4
JB
9172001-04-12 Jim Blandy <jimb@redhat.com>
918
919 * mips.igen (CFC1, CTC1): Pass the correct register numbers to
920 PENDING_FILL. Use PENDING_SCHED directly to handle the pending
921 set of the FCSR.
922 * sim-main.h (COCIDX): Remove definition; this isn't supported by
923 PENDING_FILL, and you can get the intended effect gracefully by
924 calling PENDING_SCHED directly.
925
fb891446
BE
9262001-02-23 Ben Elliston <bje@redhat.com>
927
928 * sim-main.h (ENGINE_ISSUE_PREFIX_HOOK): Only define if not
929 already defined elsewhere.
930
8030f857
BE
9312001-02-19 Ben Elliston <bje@redhat.com>
932
933 * sim-main.h (sim_monitor): Return an int.
934 * interp.c (sim_monitor): Add return values.
935 (signal_exception): Handle error conditions from sim_monitor.
936
56b48a7a
CD
9372001-02-08 Ben Elliston <bje@redhat.com>
938
939 * sim-main.c (load_memory): Pass cia to sim_core_read* functions.
940 (store_memory): Likewise, pass cia to sim_core_write*.
941
d3ee60d9
FCE
9422000-10-19 Frank Ch. Eigler <fche@redhat.com>
943
944 On advice from Chris G. Demetriou <cgd@sibyte.com>:
945 * sim-main.h (GPR_CLEAR): Remove unused alternative macro.
946
071da002
AC
947Thu Jul 27 22:02:05 2000 Andrew Cagney <cagney@b1.cygnus.com>
948
949 From Maciej W. Rozycki <macro@ds2.pg.gda.pl>:
950 * Makefile.in: Don't delete *.igen when cleaning directory.
951
a28c02cd
AC
952Wed Jul 19 18:50:51 2000 Andrew Cagney <cagney@b1.cygnus.com>
953
954 * m16.igen (break): Call SignalException not sim_engine_halt.
955
80ee11fa
AC
956Mon Jul 3 11:13:20 2000 Andrew Cagney <cagney@b1.cygnus.com>
957
958 From Jason Eckhardt:
959 * mips.igen (MOVZ.fmt, MOVN.fmt): Move conditional on GPR[RT].
960
673388c0
AC
961Tue Jun 13 20:52:07 2000 Andrew Cagney <cagney@b1.cygnus.com>
962
963 * mips.igen (MxC1, DMxC1): Fix printf formatting.
964
4c0deff4
NC
9652000-05-24 Michael Hayes <mhayes@cygnus.com>
966
967 * mips.igen (do_dmultx): Fix typo.
968
eb2d80b4
AC
969Tue May 23 21:39:23 2000 Andrew Cagney <cagney@b1.cygnus.com>
970
971 * configure: Regenerated to track ../common/aclocal.m4 changes.
972
dd37a34b
AC
973Fri Apr 28 20:48:36 2000 Andrew Cagney <cagney@b1.cygnus.com>
974
975 * mips.igen (DMxC1): Fix format arguments for sim_io_eprintf call.
976
4c0deff4
NC
9772000-04-12 Frank Ch. Eigler <fche@redhat.com>
978
979 * sim-main.h (GPR_CLEAR): Define macro.
980
e30db738
AC
981Mon Apr 10 00:07:09 2000 Andrew Cagney <cagney@b1.cygnus.com>
982
983 * interp.c (decode_coproc): Output long using %lx and not %s.
984
cb7450ea
FCE
9852000-03-21 Frank Ch. Eigler <fche@redhat.com>
986
987 * interp.c (sim_open): Sort & extend dummy memory regions for
988 --board=jmr3904 for eCos.
989
a3027dd7
FCE
9902000-03-02 Frank Ch. Eigler <fche@redhat.com>
991
992 * configure: Regenerated.
993
994Tue Feb 8 18:35:01 2000 Donald Lindsay <dlindsay@hound.cygnus.com>
995
996 * interp.c, mips.igen: all 5 DEADC0DE situations now have sim_io_eprintf
997 calls, conditional on the simulator being in verbose mode.
998
dfcd3bfb
JM
999Fri Feb 4 09:45:15 2000 Donald Lindsay <dlindsay@cygnus.com>
1000
1001 * sim-main.c (cache_op): Added case arm so that CACHE ops to a secondary
1002 cache don't get ReservedInstruction traps.
1003
c2d11a7d
JM
10041999-11-29 Mark Salter <msalter@cygnus.com>
1005
1006 * dv-tx3904sio.c (tx3904sio_io_write_buffer): Use write value as a mask
1007 to clear status bits in sdisr register. This is how the hardware works.
1008
1009 * interp.c (sim_open): Added more memory aliases for jmr3904 hardware
1010 being used by cygmon.
1011
4ce44c66
JM
10121999-11-11 Andrew Haley <aph@cygnus.com>
1013
1014 * interp.c (decode_coproc): Correctly handle DMFC0 and DMTC0
1015 instructions.
1016
cff3e48b
JM
1017Thu Sep 9 15:12:08 1999 Geoffrey Keating <geoffk@cygnus.com>
1018
1019 * mips.igen (MULT): Correct previous mis-applied patch.
1020
d4f3574e
SS
1021Tue Sep 7 13:34:54 1999 Geoffrey Keating <geoffk@cygnus.com>
1022
1023 * mips.igen (delayslot32): Handle sequence like
1024 mtc1 $at,$f12 ; jal fp_add ; mov.s $f13,$f12
1025 correctly by calling ENGINE_ISSUE_PREFIX_HOOK() before issue.
1026 (MULT): Actually pass the third register...
1027
10281999-09-03 Mark Salter <msalter@cygnus.com>
1029
1030 * interp.c (sim_open): Added more memory aliases for additional
1031 hardware being touched by cygmon on jmr3904 board.
1032
1033Thu Sep 2 18:15:53 1999 Andrew Cagney <cagney@b1.cygnus.com>
1034
1035 * configure: Regenerated to track ../common/aclocal.m4 changes.
1036
a0b3c4fd
JM
1037Tue Jul 27 16:36:51 1999 Andrew Cagney <cagney@amy.cygnus.com>
1038
1039 * interp.c (sim_store_register): Handle case where client - GDB -
1040 specifies that a 4 byte register is 8 bytes in size.
1041 (sim_fetch_register): Ditto.
1042
adf40b2e
JM
10431999-07-14 Frank Ch. Eigler <fche@cygnus.com>
1044
1045 Implement "sim firmware" option, inspired by jimb's version of 1998-01.
1046 * interp.c (firmware_option_p): New global flag: "sim firmware" given.
1047 (idt_monitor_base): Base address for IDT monitor traps.
1048 (pmon_monitor_base): Ditto for PMON.
1049 (lsipmon_monitor_base): Ditto for LSI PMON.
1050 (MONITOR_BASE, MONITOR_SIZE): Removed macros.
1051 (mips_option): Add "firmware" option with new OPTION_FIRMWARE key.
1052 (sim_firmware_command): New function.
1053 (mips_option_handler): Call it for OPTION_FIRMWARE.
1054 (sim_open): Allocate memory for idt_monitor region. If "--board"
1055 option was given, add no monitor by default. Add BREAK hooks only if
1056 monitors are also there.
1057
43e526b9
JM
1058Mon Jul 12 00:02:27 1999 Andrew Cagney <cagney@amy.cygnus.com>
1059
1060 * interp.c (sim_monitor): Flush output before reading input.
1061
1062Sun Jul 11 19:28:11 1999 Andrew Cagney <cagney@b1.cygnus.com>
1063
1064 * tconfig.in (SIM_HANDLES_LMA): Always define.
1065
1066Thu Jul 8 16:06:59 1999 Andrew Cagney <cagney@b1.cygnus.com>
1067
1068 From Mark Salter <msalter@cygnus.com>:
1069 * interp.c (BOARD_BSP): Define. Add to list of possible boards.
1070 (sim_open): Add setup for BSP board.
1071
9846de1b
JM
1072Wed Jul 7 12:45:58 1999 Andrew Cagney <cagney@b1.cygnus.com>
1073
1074 * mips.igen (MULT, MULTU): Add syntax for two operand version.
1075 (DMFC0, DMTC0): Recognize. Call DecodeCoproc which will report
1076 them as unimplemented.
1077
cd0fc7c3
SS
10781999-05-08 Felix Lee <flee@cygnus.com>
1079
1080 * configure: Regenerated to track ../common/aclocal.m4 changes.
1081
7a292a7a
SS
10821999-04-21 Frank Ch. Eigler <fche@cygnus.com>
1083
1084 * mips.igen (bc0f): For the TX39 only, decode this as a no-op stub.
1085
1086Thu Apr 15 14:15:17 1999 Andrew Cagney <cagney@amy.cygnus.com>
1087
1088 * configure.in: Any mips64vr5*-*-* target should have
1089 -DTARGET_ENABLE_FR=1.
1090 (default_endian): Any mips64vr*el-*-* target should default to
1091 LITTLE_ENDIAN.
1092 * configure: Re-generate.
1093
10941999-02-19 Gavin Romig-Koch <gavin@cygnus.com>
1095
1096 * mips.igen (ldl): Extend from _16_, not 32.
1097
1098Wed Jan 27 18:51:38 1999 Andrew Cagney <cagney@chook.cygnus.com>
1099
1100 * interp.c (sim_store_register): Force registers written to by GDB
1101 into an un-interpreted state.
1102
c906108c
SS
11031999-02-05 Frank Ch. Eigler <fche@cygnus.com>
1104
1105 * dv-tx3904sio.c (tx3904sio_tickle): After a polled I/O from the
1106 CPU, start periodic background I/O polls.
1107 (tx3904sio_poll): New function: periodic I/O poller.
1108
11091998-12-30 Frank Ch. Eigler <fche@cygnus.com>
1110
1111 * mips.igen (BREAK): Call signal_exception instead of sim_engine_halt.
1112
1113Tue Dec 29 16:03:53 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1114
1115 * configure.in, configure (mips64vr5*-*-*): Added missing ;; in
1116 case statement.
1117
11181998-12-29 Frank Ch. Eigler <fche@cygnus.com>
1119
1120 * interp.c (sim_open): Allocate jm3904 memory in smaller chunks.
1121 (load_word): Call SIM_CORE_SIGNAL hook on error.
1122 (signal_exception): Call SIM_CPU_EXCEPTION_TRIGGER hook before
1123 starting. For exception dispatching, pass PC instead of NULL_CIA.
1124 (decode_coproc): Use COP0_BADVADDR to store faulting address.
1125 * sim-main.h (COP0_BADVADDR): Define.
1126 (SIM_CORE_SIGNAL): Define hook to call mips_core_signal.
1127 (SIM_CPU_EXCEPTION*): Define hooks to call mips_cpu_exception*().
1128 (_sim_cpu): Add exc_* fields to store register value snapshots.
1129 * mips.igen (*): Replace memory-related SignalException* calls
1130 with references to SIM_CORE_SIGNAL hook.
1131
1132 * dv-tx3904irc.c (tx3904irc_port_event): printf format warning
1133 fix.
1134 * sim-main.c (*): Minor warning cleanups.
1135
11361998-12-24 Gavin Romig-Koch <gavin@cygnus.com>
1137
1138 * m16.igen (DADDIU5): Correct type-o.
1139
1140Mon Dec 21 10:34:48 1998 Andrew Cagney <cagney@chook>
1141
1142 * mips.igen (do_ddiv, do_ddivu): Pacify GCC. Update hi/lo via tmp
1143 variables.
1144
1145Wed Dec 16 18:20:28 1998 Andrew Cagney <cagney@chook>
1146
1147 * Makefile.in (SIM_EXTRA_CFLAGS): No longer need to add .../newlib
1148 to include path.
1149 (interp.o): Add dependency on itable.h
1150 (oengine.c, gencode): Delete remaining references.
1151 (BUILT_SRC_FROM_GEN): Clean up.
1152
11531998-12-16 Gavin Romig-Koch <gavin@cygnus.com>
1154
1155 * vr4run.c: New.
1156 * Makefile.in (SIM_HACK_OBJ,HACK_OBJS,HACK_GEN_SRCS,libhack.a,
1157 tmp-hack,tmp-m32-hack,tmp-m16-hack,tmp-itable-hack,
1158 tmp-run-hack) : New.
1159 * m16.igen (LD,DADDIU,DADDUI5,DADJSP,DADDIUSP,DADDI,DADDU,DSUBU,
1160 DSLL,DSRL,DSRA,DSLLV,DSRAV,DMULT,DMULTU,DDIV,DDIVU,JALX32,JALX):
1161 Drop the "64" qualifier to get the HACK generator working.
1162 Use IMMEDIATE rather than IMMED. Use SHAMT rather than SHIFT.
1163 * mips.igen (do_daddiu,do_ddiv,do_divu): Remove the 64-only
1164 qualifier to get the hack generator working.
1165 (do_dsll,do_dsllv,do_dsra,do_dsrl,do_dsrlv): New.
1166 (DSLL): Use do_dsll.
1167 (DSLLV): Use do_dsllv.
1168 (DSRA): Use do_dsra.
1169 (DSRL): Use do_dsrl.
1170 (DSRLV): Use do_dsrlv.
1171 (BC1): Move *vr4100 to get the HACK generator working.
1172 (CxC1, DMxC1, MxC1,MACCU,MACCHI,MACCHIU): Rename to
1173 get the HACK generator working.
1174 (MACC) Rename to get the HACK generator working.
1175 (DMACC,MACCS,DMACCS): Add the 64.
1176
11771998-12-12 Gavin Romig-Koch <gavin@cygnus.com>
1178
1179 * mips.igen (BC1): Renamed to BC1a and BC1b to avoid conflicts.
1180 * sim-main.h (SizeFGR): Handle TARGET_ENABLE_FR.
1181
11821998-12-11 Gavin Romig-Koch <gavin@cygnus.com>
1183
1184 * mips/interp.c (DEBUG): Cleanups.
1185
11861998-12-10 Frank Ch. Eigler <fche@cygnus.com>
1187
1188 * dv-tx3904sio.c (tx3904sio_io_read_buffer): Endianness fixes.
1189 (tx3904sio_tickle): fflush after a stdout character output.
1190
11911998-12-03 Frank Ch. Eigler <fche@cygnus.com>
1192
1193 * interp.c (sim_close): Uninstall modules.
1194
1195Wed Nov 25 13:41:03 1998 Andrew Cagney <cagney@b1.cygnus.com>
1196
1197 * sim-main.h, interp.c (sim_monitor): Change to global
1198 function.
1199
1200Wed Nov 25 17:33:24 1998 Andrew Cagney <cagney@b1.cygnus.com>
1201
1202 * configure.in (vr4100): Only include vr4100 instructions in
1203 simulator.
1204 * configure: Re-generate.
1205 * m16.igen (*): Tag all mips16 instructions as also being vr4100.
1206
1207Mon Nov 23 18:20:36 1998 Andrew Cagney <cagney@b1.cygnus.com>
1208
1209 * Makefile.in (SIM_CFLAGS): Do not define WITH_IGEN.
1210 * sim-main.h, sim-main.c, interp.c: Delete #if WITH_IGEN keeping
1211 true alternative.
1212
1213 * configure.in (sim_default_gen, sim_use_gen): Replace with
1214 sim_gen.
1215 (--enable-sim-igen): Delete config option. Always using IGEN.
1216 * configure: Re-generate.
1217
1218 * Makefile.in (gencode): Kill, kill, kill.
1219 * gencode.c: Ditto.
1220
1221Mon Nov 23 18:07:36 1998 Andrew Cagney <cagney@b1.cygnus.com>
1222
1223 * configure.in: Configure mips64vr4100-elf nee mips64vr41* as a 64
1224 bit mips16 igen simulator.
1225 * configure: Re-generate.
1226
1227 * mips.igen (check_div_hilo, check_mult_hilo, check_mf_hilo): Mark
1228 as part of vr4100 ISA.
1229 * vr.igen: Mark all instructions as 64 bit only.
1230
1231Mon Nov 23 17:07:37 1998 Andrew Cagney <cagney@b1.cygnus.com>
1232
1233 * interp.c (get_cell, sim_monitor, fetch_str, CoProcPresent):
1234 Pacify GCC.
1235
1236Mon Nov 23 13:23:40 1998 Andrew Cagney <cagney@b1.cygnus.com>
1237
1238 * configure.in: Configure mips-lsi-elf nee mips*lsi* as a
1239 mipsIII/mips16 igen simulator. Fix sim_gen VS sim_igen typos.
1240 * configure: Re-generate.
1241
1242 * m16.igen (BREAK): Define breakpoint instruction.
1243 (JALX32): Mark instruction as mips16 and not r3900.
1244 * mips.igen (C.cond.fmt): Fix typo in instruction format.
1245
1246 * sim-main.h (PENDING_FILL): Wrap C statements in do/while.
1247
1248Sat Nov 7 09:54:38 1998 Andrew Cagney <cagney@b1.cygnus.com>
1249
1250 * gencode.c (build_instruction - BREAK): For MIPS16, handle BREAK
1251 insn as a debug breakpoint.
1252
1253 * sim-main.h (PENDING_SLOT_BIT): Fix, was incorrectly defined as
1254 pending.slot_size.
1255 (PENDING_SCHED): Clean up trace statement.
1256 (PENDING_SCHED): Increment PENDING_IN and PENDING_TOTAL.
1257 (PENDING_FILL): Delay write by only one cycle.
1258 (PENDING_FILL): For FSRs, write fmt_uninterpreted to FPR_STATE.
1259
1260 * sim-main.c (pending_tick): Clean up trace statements. Add trace
1261 of pending writes.
1262 (pending_tick): Fix sizes in switch statements, 4 & 8 instead of
1263 32 & 64.
1264 (pending_tick): Move incrementing of index to FOR statement.
1265 (pending_tick): Only update PENDING_OUT after a write has occured.
1266
1267 * configure.in: Add explicit mips-lsi-* target. Use gencode to
1268 build simulator.
1269 * configure: Re-generate.
1270
1271 * interp.c (sim_engine_run OLD): Delete explicit call to
1272 PENDING_TICK. Now called via ENGINE_ISSUE_PREFIX_HOOK.
1273
1274Sat Oct 30 09:49:10 1998 Frank Ch. Eigler <fche@cygnus.com>
1275
1276 * dv-tx3904cpu.c (deliver_tx3904cpu_interrupt): Add dummy
1277 interrupt level number to match changed SignalExceptionInterrupt
1278 macro.
1279
1280Fri Oct 9 18:02:25 1998 Doug Evans <devans@canuck.cygnus.com>
1281
1282 * interp.c: #include "itable.h" if WITH_IGEN.
1283 (get_insn_name): New function.
1284 (sim_open): Initialize CPU_INSN_NAME,CPU_MAX_INSNS.
1285 * sim-main.h (MAX_INSNS,INSN_NAME): Delete.
1286
1287Mon Sep 14 12:36:44 1998 Frank Ch. Eigler <fche@cygnus.com>
1288
1289 * configure: Rebuilt to inhale new common/aclocal.m4.
1290
1291Tue Sep 1 15:39:18 1998 Frank Ch. Eigler <fche@cygnus.com>
1292
1293 * dv-tx3904sio.c: Include sim-assert.h.
1294
1295Tue Aug 25 12:49:46 1998 Frank Ch. Eigler <fche@cygnus.com>
1296
1297 * dv-tx3904sio.c: New file: tx3904 serial I/O module.
1298 * configure.in: Add dv-tx3904sio, dv-sockser for tx39 target.
1299 Reorganize target-specific sim-hardware checks.
1300 * configure: rebuilt.
1301 * interp.c (sim_open): For tx39 target boards, set
1302 OPERATING_ENVIRONMENT, add tx3904sio devices.
1303 * tconfig.in: For tx39 target, set SIM_HANDLES_LMA for loading
1304 ROM executables. Install dv-sockser into sim-modules list.
1305
1306 * dv-tx3904irc.c: Compiler warning clean-up.
1307 * dv-tx3904tmr.c: Compiler warning clean-up. Remove particularly
1308 frequent hw-trace messages.
1309
1310Fri Jul 31 18:14:16 1998 Andrew Cagney <cagney@b1.cygnus.com>
1311
1312 * vr.igen (MulAcc): Identify as a vr4100 specific function.
1313
1314Sat Jul 25 16:03:14 1998 Andrew Cagney <cagney@b1.cygnus.com>
1315
1316 * Makefile.in (IGEN_INCLUDE): Add vr.igen.
1317
1318 * vr.igen: New file.
1319 (MAC/MADD16, DMAC/DMADD16): Implement using code from gencode.c.
1320 * mips.igen: Define vr4100 model. Include vr.igen.
1321Mon Jun 29 09:21:07 1998 Gavin Koch <gavin@cygnus.com>
1322
1323 * mips.igen (check_mf_hilo): Correct check.
1324
1325Wed Jun 17 12:20:49 1998 Andrew Cagney <cagney@b1.cygnus.com>
1326
1327 * sim-main.h (interrupt_event): Add prototype.
1328
1329 * dv-tx3904tmr.c (tx3904tmr_io_write_buffer): Delete unused
1330 register_ptr, register_value.
1331 (deliver_tx3904tmr_tick): Fix types passed to printf fmt.
1332
1333 * sim-main.h (tracefh): Make extern.
1334
1335Tue Jun 16 14:39:00 1998 Frank Ch. Eigler <fche@cygnus.com>
1336
1337 * dv-tx3904tmr.c: Deschedule timer event after dispatching.
1338 Reduce unnecessarily high timer event frequency.
1339 * dv-tx3904cpu.c: Ditto for interrupt event.
1340
1341Wed Jun 10 13:22:32 1998 Frank Ch. Eigler <fche@cygnus.com>
1342
1343 * interp.c (decode_coproc): For TX39, add stub COP0 register #7,
1344 to allay warnings.
1345 (interrupt_event): Made non-static.
1346
1347 * dv-tx3904tmr.c (deliver_tx3904tmr_tick): Correct accidental
1348 interchange of configuration values for external vs. internal
1349 clock dividers.
1350
1351Tue Jun 9 12:46:24 1998 Ian Carmichael <iancarm@cygnus.com>
1352
1353 * mips.igen (BREAK): Moved code to here for
1354 simulator-reserved break instructions.
1355 * gencode.c (build_instruction): Ditto.
1356 * interp.c (signal_exception): Code moved from here. Non-
1357 reserved instructions now use exception vector, rather
1358 than halting sim.
1359 * sim-main.h: Moved magic constants to here.
1360
1361Tue Jun 9 12:29:50 1998 Frank Ch. Eigler <fche@cygnus.com>
1362
1363 * dv-tx3904cpu.c (deliver_*_interrupt,*_port_event): Set the CAUSE
1364 register upon non-zero interrupt event level, clear upon zero
1365 event value.
1366 * dv-tx3904irc.c (*_port_event): Handle deactivated interrupt signal
1367 by passing zero event value.
1368 (*_io_{read,write}_buffer): Endianness fixes.
1369 * dv-tx3904tmr.c (*_io_{read,write}_buffer): Endianness fixes.
1370 (deliver_*_tick): Reduce sim event interval to 75% of count interval.
1371
1372 * interp.c (sim_open): Added jmr3904pal board type that adds PAL-based
1373 serial I/O and timer module at base address 0xFFFF0000.
1374
1375Tue Jun 9 11:52:29 1998 Gavin Koch <gavin@cygnus.com>
1376
1377 * mips.igen (SWC1) : Correct the handling of ReverseEndian
1378 and BigEndianCPU.
1379
1380Tue Jun 9 11:40:57 1998 Gavin Koch <gavin@cygnus.com>
1381
1382 * configure.in (mips_fpu_bitsize) : Set this correctly for 32-bit mips
1383 parts.
1384 * configure: Update.
1385
1386Thu Jun 4 15:37:33 1998 Frank Ch. Eigler <fche@cygnus.com>
1387
1388 * dv-tx3904tmr.c: New file - implements tx3904 timer.
1389 * dv-tx3904{irc,cpu}.c: Mild reformatting.
1390 * configure.in: Include tx3904tmr in hw_device list.
1391 * configure: Rebuilt.
1392 * interp.c (sim_open): Instantiate three timer instances.
1393 Fix address typo of tx3904irc instance.
1394
1395Tue Jun 2 15:48:02 1998 Ian Carmichael <iancarm@cygnus.com>
1396
1397 * interp.c (signal_exception): SystemCall exception now uses
1398 the exception vector.
1399
1400Mon Jun 1 18:18:26 1998 Frank Ch. Eigler <fche@cygnus.com>
1401
1402 * interp.c (decode_coproc): For TX39, add stub COP0 register #3,
1403 to allay warnings.
1404
1405Fri May 29 11:40:39 1998 Andrew Cagney <cagney@b1.cygnus.com>
1406
1407 * configure.in (sim_igen_filter): Match mips*tx39 not mipst*tx39.
1408
1409Mon May 25 20:47:45 1998 Andrew Cagney <cagney@b1.cygnus.com>
1410
1411 * dv-tx3904cpu.c, dv-tx3904irc.c: Rename *_callback to *_method.
1412
1413 * dv-tx3904cpu.c, dv-tx3904irc.c: Include hw-main.h and
1414 sim-main.h. Declare a struct hw_descriptor instead of struct
1415 hw_device_descriptor.
1416
1417Mon May 25 12:41:38 1998 Andrew Cagney <cagney@b1.cygnus.com>
1418
1419 * mips.igen (do_store_left, do_load_left): Compute nr of left and
1420 right bits and then re-align left hand bytes to correct byte
1421 lanes. Fix incorrect computation in do_store_left when loading
1422 bytes from second word.
1423
1424Fri May 22 13:34:20 1998 Andrew Cagney <cagney@b1.cygnus.com>
1425
1426 * configure.in (SIM_AC_OPTION_HARDWARE): Only enable when tx3904.
1427 * interp.c (sim_open): Only create a device tree when HW is
1428 enabled.
1429
1430 * dv-tx3904irc.c (tx3904irc_finish): Pacify GCC.
1431 * interp.c (signal_exception): Ditto.
1432
1433Thu May 21 14:24:11 1998 Gavin Koch <gavin@cygnus.com>
1434
1435 * gencode.c: Mark BEGEZALL as LIKELY.
1436
1437Thu May 21 18:57:19 1998 Andrew Cagney <cagney@b1.cygnus.com>
1438
1439 * sim-main.h (ALU32_END): Sign extend 32 bit results.
1440 * mips.igen (ADD, SUB, ADDI, DADD, DSUB): Trace.
1441
1442Mon May 18 18:22:42 1998 Frank Ch. Eigler <fche@cygnus.com>
1443
1444 * configure.in (SIM_AC_OPTION_HARDWARE): Added common hardware
1445 modules. Recognize TX39 target with "mips*tx39" pattern.
1446 * configure: Rebuilt.
1447 * sim-main.h (*): Added many macros defining bits in
1448 TX39 control registers.
1449 (SignalInterrupt): Send actual PC instead of NULL.
1450 (SignalNMIReset): New exception type.
1451 * interp.c (board): New variable for future use to identify
1452 a particular board being simulated.
1453 (mips_option_handler,mips_options): Added "--board" option.
1454 (interrupt_event): Send actual PC.
1455 (sim_open): Make memory layout conditional on board setting.
1456 (signal_exception): Initial implementation of hardware interrupt
1457 handling. Accept another break instruction variant for simulator
1458 exit.
1459 (decode_coproc): Implement RFE instruction for TX39.
1460 (mips.igen): Decode RFE instruction as such.
1461 * configure.in (tx3904cpu,tx3904irc): Added devices for tx3904.
1462 * interp.c: Define "jmr3904" and "jmr3904debug" board types and
1463 bbegin to implement memory map.
1464 * dv-tx3904cpu.c: New file.
1465 * dv-tx3904irc.c: New file.
1466
1467Wed May 13 14:40:11 1998 Gavin Koch <gavin@cygnus.com>
1468
1469 * mips.igen (check_mt_hilo): Create a separate r3900 version.
1470
1471Wed May 13 14:11:46 1998 Gavin Koch <gavin@cygnus.com>
1472
1473 * tx.igen (madd,maddu): Replace calls to check_op_hilo
1474 with calls to check_div_hilo.
1475
1476Wed May 13 09:59:27 1998 Gavin Koch <gavin@cygnus.com>
1477
1478 * mips/mips.igen (check_op_hilo,check_mult_hilo,check_div_hilo):
1479 Replace check_op_hilo with check_mult_hilo and check_div_hilo.
1480 Add special r3900 version of do_mult_hilo.
1481 (do_dmultx,do_mult,do_multu): Replace calls to check_op_hilo
1482 with calls to check_mult_hilo.
1483 (do_ddiv,do_ddivu,do_div,do_divu): Replace calls to check_op_hilo
1484 with calls to check_div_hilo.
1485
1486Tue May 12 15:22:11 1998 Andrew Cagney <cagney@b1.cygnus.com>
1487
1488 * configure.in (SUBTARGET_R3900): Define for mipstx39 target.
1489 Document a replacement.
1490
1491Fri May 8 17:48:19 1998 Ian Carmichael <iancarm@cygnus.com>
1492
1493 * interp.c (sim_monitor): Make mon_printf work.
1494
1495Wed May 6 19:42:19 1998 Doug Evans <devans@canuck.cygnus.com>
1496
1497 * sim-main.h (INSN_NAME): New arg `cpu'.
1498
1499Tue Apr 28 18:33:31 1998 Geoffrey Noer <noer@cygnus.com>
1500
1501 * configure: Regenerated to track ../common/aclocal.m4 changes.
1502
1503Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
1504
1505 * configure: Regenerated to track ../common/aclocal.m4 changes.
1506 * config.in: Ditto.
1507
1508Sun Apr 26 15:20:01 1998 Tom Tromey <tromey@cygnus.com>
1509
1510 * acconfig.h: New file.
1511 * configure.in: Reverted change of Apr 24; use sinclude again.
1512
1513Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
1514
1515 * configure: Regenerated to track ../common/aclocal.m4 changes.
1516 * config.in: Ditto.
1517
1518Fri Apr 24 11:19:20 1998 Tom Tromey <tromey@cygnus.com>
1519
1520 * configure.in: Don't call sinclude.
1521
1522Fri Apr 24 11:35:01 1998 Andrew Cagney <cagney@chook.cygnus.com>
1523
1524 * mips.igen (do_store_left): Pass 0 not NULL to store_memory.
1525
1526Tue Apr 21 11:59:50 1998 Andrew Cagney <cagney@b1.cygnus.com>
1527
1528 * mips.igen (ERET): Implement.
1529
1530 * interp.c (decode_coproc): Return sign-extended EPC.
1531
1532 * mips.igen (ANDI, LUI, MFC0): Add tracing code.
1533
1534 * interp.c (signal_exception): Do not ignore Trap.
1535 (signal_exception): On TRAP, restart at exception address.
1536 (HALT_INSTRUCTION, HALT_INSTRUCTION_MASK): Define.
1537 (signal_exception): Update.
1538 (sim_open): Patch V_COMMON interrupt vector with an abort sequence
1539 so that TRAP instructions are caught.
1540
1541Mon Apr 20 11:26:55 1998 Andrew Cagney <cagney@b1.cygnus.com>
1542
1543 * sim-main.h (struct hilo_access, struct hilo_history): Define,
1544 contains HI/LO access history.
1545 (struct _sim_cpu): Make hiaccess and loaccess of type hilo_access.
1546 (HIACCESS, LOACCESS): Delete, replace with
1547 (HIHISTORY, LOHISTORY): New macros.
1548 (CHECKHILO): Delete all, moved to mips.igen
1549
1550 * gencode.c (build_instruction): Do not generate checks for
1551 correct HI/LO register usage.
1552
1553 * interp.c (old_engine_run): Delete checks for correct HI/LO
1554 register usage.
1555
1556 * mips.igen (check_mt_hilo, check_mf_hilo, check_op_hilo,
1557 check_mf_cycles): New functions.
1558 (do_mfhi, do_mflo, "mthi", "mtlo", do_ddiv, do_ddivu, do_div,
1559 do_divu, domultx, do_mult, do_multu): Use.
1560
1561 * tx.igen ("madd", "maddu"): Use.
1562
1563Wed Apr 15 18:31:54 1998 Andrew Cagney <cagney@b1.cygnus.com>
1564
1565 * mips.igen (DSRAV): Use function do_dsrav.
1566 (SRAV): Use new function do_srav.
1567
1568 * m16.igen (BEQZ, BNEZ): Compare GPR[TRX] not GPR[RX].
1569 (B): Sign extend 11 bit immediate.
1570 (EXT-B*): Shift 16 bit immediate left by 1.
1571 (ADDIU*): Don't sign extend immediate value.
1572
1573Wed Apr 15 10:32:15 1998 Andrew Cagney <cagney@b1.cygnus.com>
1574
1575 * m16run.c (sim_engine_run): Restore CIA after handling an event.
1576
1577 * sim-main.h (DELAY_SLOT, NULLIFY_NEXT_INSTRUCTION): For IGEN, use
1578 functions.
1579
1580 * mips.igen (delayslot32, nullify_next_insn): New functions.
1581 (m16.igen): Always include.
1582 (do_*): Add more tracing.
1583
1584 * m16.igen (delayslot16): Add NIA argument, could be called by a
1585 32 bit MIPS16 instruction.
1586
1587 * interp.c (ifetch16): Move function from here.
1588 * sim-main.c (ifetch16): To here.
1589
1590 * sim-main.c (ifetch16, ifetch32): Update to match current
1591 implementations of LH, LW.
1592 (signal_exception): Don't print out incorrect hex value of illegal
1593 instruction.
1594
1595Wed Apr 15 00:17:25 1998 Andrew Cagney <cagney@b1.cygnus.com>
1596
1597 * m16run.c (sim_engine_run): Use IMEM16 and IMEM32 to fetch an
1598 instruction.
1599
1600 * m16.igen: Implement MIPS16 instructions.
1601
1602 * mips.igen (do_addiu, do_addu, do_and, do_daddiu, do_daddu,
1603 do_ddiv, do_ddivu, do_div, do_divu, do_dmultx, do_dmultu, do_srav,
1604 do_dsubu, do_mfhi, do_mflo, do_mult, do_multu, do_nor, do_or,
1605 do_sll, do_sllv, do_slt, do_slti, do_sltiu, do_sltu, do_sra,
1606 do_srl, do_srlv, do_subu, do_xor, do_xori): New functions. Move
1607 bodies of corresponding code from 32 bit insn to these. Also used
1608 by MIPS16 versions of functions.
1609
1610 * sim-main.h (RAIDX, T8IDX, T8, SPIDX): Define.
1611 (IMEM16): Drop NR argument from macro.
1612
1613Sat Apr 4 22:39:50 1998 Andrew Cagney <cagney@b1.cygnus.com>
1614
1615 * Makefile.in (SIM_OBJS): Add sim-main.o.
1616
1617 * sim-main.h (address_translation, load_memory, store_memory,
1618 cache_op, sync_operation, prefetch, ifetch32, pending_tick): Mark
1619 as INLINE_SIM_MAIN.
1620 (pr_addr, pr_uword64): Declare.
1621 (sim-main.c): Include when H_REVEALS_MODULE_P.
1622
1623 * interp.c (address_translation, load_memory, store_memory,
1624 cache_op, sync_operation, prefetch, ifetch32, pending_tick): Move
1625 from here.
1626 * sim-main.c: To here. Fix compilation problems.
1627
1628 * configure.in: Enable inlining.
1629 * configure: Re-config.
1630
1631Sat Apr 4 20:36:25 1998 Andrew Cagney <cagney@b1.cygnus.com>
1632
1633 * configure: Regenerated to track ../common/aclocal.m4 changes.
1634
1635Fri Apr 3 04:32:35 1998 Andrew Cagney <cagney@b1.cygnus.com>
1636
1637 * mips.igen: Include tx.igen.
1638 * Makefile.in (IGEN_INCLUDE): Add tx.igen.
1639 * tx.igen: New file, contains MADD and MADDU.
1640
1641 * interp.c (load_memory): When shifting bytes, use LOADDRMASK not
1642 the hardwired constant `7'.
1643 (store_memory): Ditto.
1644 (LOADDRMASK): Move definition to sim-main.h.
1645
1646 mips.igen (MTC0): Enable for r3900.
1647 (ADDU): Add trace.
1648
1649 mips.igen (do_load_byte): Delete.
1650 (do_load, do_store, do_load_left, do_load_write, do_store_left,
1651 do_store_right): New functions.
1652 (SW*, LW*, SD*, LD*, SH, LH, SB, LB): Use.
1653
1654 configure.in: Let the tx39 use igen again.
1655 configure: Update.
1656
1657Thu Apr 2 10:59:39 1998 Andrew Cagney <cagney@b1.cygnus.com>
1658
1659 * interp.c (sim_monitor): get_mem_info returns a 4 byte quantity,
1660 not an address sized quantity. Return zero for cache sizes.
1661
1662Wed Apr 1 23:47:53 1998 Andrew Cagney <cagney@b1.cygnus.com>
1663
1664 * mips.igen (r3900): r3900 does not support 64 bit integer
1665 operations.
1666
1667Mon Mar 30 14:46:05 1998 Gavin Koch <gavin@cygnus.com>
1668
1669 * configure.in (mipstx39*-*-*): Use gencode simulator rather
1670 than igen one.
1671 * configure : Rebuild.
1672
1673Fri Mar 27 16:15:52 1998 Andrew Cagney <cagney@b1.cygnus.com>
1674
1675 * configure: Regenerated to track ../common/aclocal.m4 changes.
1676
1677Fri Mar 27 15:01:50 1998 Andrew Cagney <cagney@b1.cygnus.com>
1678
1679 * interp.c (mips_option_handler): Iterate over MAX_NR_PROCESSORS.
1680
1681Wed Mar 25 16:44:27 1998 Ian Carmichael <iancarm@cygnus.com>
1682
1683 * configure: Regenerated to track ../common/aclocal.m4 changes.
1684 * config.in: Regenerated to track ../common/aclocal.m4 changes.
1685
1686Wed Mar 25 12:35:29 1998 Andrew Cagney <cagney@b1.cygnus.com>
1687
1688 * configure: Regenerated to track ../common/aclocal.m4 changes.
1689
1690Wed Mar 25 10:05:46 1998 Andrew Cagney <cagney@b1.cygnus.com>
1691
1692 * interp.c (Max, Min): Comment out functions. Not yet used.
1693
1694Wed Mar 18 12:38:12 1998 Andrew Cagney <cagney@b1.cygnus.com>
1695
1696 * configure: Regenerated to track ../common/aclocal.m4 changes.
1697
1698Tue Mar 17 19:05:20 1998 Frank Ch. Eigler <fche@cygnus.com>
1699
1700 * Makefile.in (MIPS_EXTRA_LIBS, SIM_EXTRA_LIBS): Added
1701 configurable settings for stand-alone simulator.
1702
1703 * configure.in: Added X11 search, just in case.
1704
1705 * configure: Regenerated.
1706
1707Wed Mar 11 14:09:10 1998 Andrew Cagney <cagney@b1.cygnus.com>
1708
1709 * interp.c (sim_write, sim_read, load_memory, store_memory):
1710 Replace sim_core_*_map with read_map, write_map, exec_map resp.
1711
1712Tue Mar 3 13:58:43 1998 Andrew Cagney <cagney@b1.cygnus.com>
1713
1714 * sim-main.h (GETFCC): Return an unsigned value.
1715
1716Tue Mar 3 13:21:37 1998 Andrew Cagney <cagney@b1.cygnus.com>
1717
1718 * mips.igen (DIV): Fix check for -1 / MIN_INT.
1719 (DADD): Result destination is RD not RT.
1720
1721Fri Feb 27 13:49:49 1998 Andrew Cagney <cagney@b1.cygnus.com>
1722
1723 * sim-main.h (HIACCESS, LOACCESS): Always define.
1724
1725 * mdmx.igen (Maxi, Mini): Rename Max, Min.
1726
1727 * interp.c (sim_info): Delete.
1728
1729Fri Feb 27 18:41:01 1998 Doug Evans <devans@canuck.cygnus.com>
1730
1731 * interp.c (DECLARE_OPTION_HANDLER): Use it.
1732 (mips_option_handler): New argument `cpu'.
1733 (sim_open): Update call to sim_add_option_table.
1734
1735Wed Feb 25 18:56:22 1998 Andrew Cagney <cagney@b1.cygnus.com>
1736
1737 * mips.igen (CxC1): Add tracing.
1738
1739Fri Feb 20 17:43:21 1998 Andrew Cagney <cagney@b1.cygnus.com>
1740
1741 * sim-main.h (Max, Min): Declare.
1742
1743 * interp.c (Max, Min): New functions.
1744
1745 * mips.igen (BC1): Add tracing.
1746
1747Thu Feb 19 14:50:00 1998 John Metzler <jmetzler@cygnus.com>
1748
1749 * interp.c Added memory map for stack in vr4100
1750
1751Thu Feb 19 10:21:21 1998 Gavin Koch <gavin@cygnus.com>
1752
1753 * interp.c (load_memory): Add missing "break"'s.
1754
1755Tue Feb 17 12:45:35 1998 Andrew Cagney <cagney@b1.cygnus.com>
1756
1757 * interp.c (sim_store_register, sim_fetch_register): Pass in
1758 length parameter. Return -1.
1759
1760Tue Feb 10 11:57:40 1998 Ian Carmichael <iancarm@cygnus.com>
1761
1762 * interp.c: Added hardware init hook, fixed warnings.
1763
1764Sat Feb 7 17:16:20 1998 Andrew Cagney <cagney@b1.cygnus.com>
1765
1766 * Makefile.in (itable.h itable.c): Depend on SIM_@sim_gen@_ALL.
1767
1768Tue Feb 3 11:36:02 1998 Andrew Cagney <cagney@b1.cygnus.com>
1769
1770 * interp.c (ifetch16): New function.
1771
1772 * sim-main.h (IMEM32): Rename IMEM.
1773 (IMEM16_IMMED): Define.
1774 (IMEM16): Define.
1775 (DELAY_SLOT): Update.
1776
1777 * m16run.c (sim_engine_run): New file.
1778
1779 * m16.igen: All instructions except LB.
1780 (LB): Call do_load_byte.
1781 * mips.igen (do_load_byte): New function.
1782 (LB): Call do_load_byte.
1783
1784 * mips.igen: Move spec for insn bit size and high bit from here.
1785 * Makefile.in (tmp-igen, tmp-m16): To here.
1786
1787 * m16.dc: New file, decode mips16 instructions.
1788
1789 * Makefile.in (SIM_NO_ALL): Define.
1790 (tmp-m16): Generate both 16 bit and 32 bit simulator engines.
1791
1792Tue Feb 3 11:28:00 1998 Andrew Cagney <cagney@b1.cygnus.com>
1793
1794 * configure.in (mips_fpu_bitsize): For tx39, restrict floating
1795 point unit to 32 bit registers.
1796 * configure: Re-generate.
1797
1798Sun Feb 1 15:47:14 1998 Andrew Cagney <cagney@b1.cygnus.com>
1799
1800 * configure.in (sim_use_gen): Make IGEN the default simulator
1801 generator for generic 32 and 64 bit mips targets.
1802 * configure: Re-generate.
1803
1804Sun Feb 1 16:52:37 1998 Andrew Cagney <cagney@b1.cygnus.com>
1805
1806 * sim-main.h (SizeFGR): Determine from floating-point and not gpr
1807 bitsize.
1808
1809 * interp.c (sim_fetch_register, sim_store_register): Read/write
1810 FGR from correct location.
1811 (sim_open): Set size of FGR's according to
1812 WITH_TARGET_FLOATING_POINT_BITSIZE.
1813
1814 * sim-main.h (FGR): Store floating point registers in a separate
1815 array.
1816
1817Sun Feb 1 16:47:51 1998 Andrew Cagney <cagney@b1.cygnus.com>
1818
1819 * configure: Regenerated to track ../common/aclocal.m4 changes.
1820
1821Tue Feb 3 00:10:50 1998 Andrew Cagney <cagney@b1.cygnus.com>
1822
1823 * interp.c (ColdReset): Call PENDING_INVALIDATE.
1824
1825 * sim-main.h (ENGINE_ISSUE_PREFIX_HOOK): Call PENDING_TICK.
1826
1827 * interp.c (pending_tick): New function. Deliver pending writes.
1828
1829 * sim-main.h (PENDING_FILL, PENDING_TICK, PENDING_SCHED,
1830 PENDING_BIT, PENDING_INVALIDATE): Re-write pipeline code so that
1831 it can handle mixed sized quantites and single bits.
1832
1833Mon Feb 2 17:43:15 1998 Andrew Cagney <cagney@b1.cygnus.com>
1834
1835 * interp.c (oengine.h): Do not include when building with IGEN.
1836 (sim_open): Replace GPRLEN by WITH_TARGET_WORD_BITSIZE.
1837 (sim_info): Ditto for PROCESSOR_64BIT.
1838 (sim_monitor): Replace ut_reg with unsigned_word.
1839 (*): Ditto for t_reg.
1840 (LOADDRMASK): Define.
1841 (sim_open): Remove defunct check that host FP is IEEE compliant,
1842 using software to emulate floating point.
1843 (value_fpr, ...): Always compile, was conditional on HASFPU.
1844
1845Sun Feb 1 11:15:29 1998 Andrew Cagney <cagney@b1.cygnus.com>
1846
1847 * sim-main.h (sim_state): Make the cpu array MAX_NR_PROCESSORS in
1848 size.
1849
1850 * interp.c (SD, CPU): Define.
1851 (mips_option_handler): Set flags in each CPU.
1852 (interrupt_event): Assume CPU 0 is the one being iterrupted.
1853 (sim_close): Do not clear STATE, deleted anyway.
1854 (sim_write, sim_read): Assume CPU zero's vm should be used for
1855 data transfers.
1856 (sim_create_inferior): Set the PC for all processors.
1857 (sim_monitor, store_word, load_word, mips16_entry): Add cpu
1858 argument.
1859 (mips16_entry): Pass correct nr of args to store_word, load_word.
1860 (ColdReset): Cold reset all cpu's.
1861 (signal_exception): Pass cpu to sim_monitor & mips16_entry.
1862 (sim_monitor, load_memory, store_memory, signal_exception): Use
1863 `CPU' instead of STATE_CPU.
1864
1865
1866 * sim-main.h: Replace uses of STATE_CPU with CPU. Replace sd with
1867 SD or CPU_.
1868
1869 * sim-main.h (signal_exception): Add sim_cpu arg.
1870 (SignalException*): Pass both SD and CPU to signal_exception.
1871 * interp.c (signal_exception): Update.
1872
1873 * sim-main.h (value_fpr, store_fpr, dotrace, ifetch32), interp.c:
1874 Ditto
1875 (sync_operation, prefetch, cache_op, store_memory, load_memory,
1876 address_translation): Ditto
1877 (decode_coproc, cop_lw, cop_ld, cop_sw, cop_sd): Ditto.
1878
1879Sat Jan 31 18:15:41 1998 Andrew Cagney <cagney@b1.cygnus.com>
1880
1881 * configure: Regenerated to track ../common/aclocal.m4 changes.
1882
1883Sat Jan 31 14:49:24 1998 Andrew Cagney <cagney@b1.cygnus.com>
1884
1885 * interp.c (sim_engine_run): Add `nr_cpus' argument.
1886
1887 * mips.igen (model): Map processor names onto BFD name.
1888
1889 * sim-main.h (CPU_CIA): Delete.
1890 (SET_CIA, GET_CIA): Define
1891
1892Wed Jan 21 16:16:27 1998 Andrew Cagney <cagney@b1.cygnus.com>
1893
1894 * sim-main.h (GPR_SET): Define, used by igen when zeroing a
1895 regiser.
1896
1897 * configure.in (default_endian): Configure a big-endian simulator
1898 by default.
1899 * configure: Re-generate.
1900
1901Mon Jan 19 22:26:29 1998 Doug Evans <devans@seba>
1902
1903 * configure: Regenerated to track ../common/aclocal.m4 changes.
1904
1905Mon Jan 5 20:38:54 1998 Mark Alexander <marka@cygnus.com>
1906
1907 * interp.c (sim_monitor): Handle Densan monitor outbyte
1908 and inbyte functions.
1909
19101997-12-29 Felix Lee <flee@cygnus.com>
1911
1912 * interp.c (sim_engine_run): msvc cpp barfs on #if (a==b!=c).
1913
1914Wed Dec 17 14:48:20 1997 Jeffrey A Law (law@cygnus.com)
1915
1916 * Makefile.in (tmp-igen): Arrange for $zero to always be
1917 reset to zero after every instruction.
1918
1919Mon Dec 15 23:17:11 1997 Andrew Cagney <cagney@b1.cygnus.com>
1920
1921 * configure: Regenerated to track ../common/aclocal.m4 changes.
1922 * config.in: Ditto.
1923
1924Wed Dec 10 17:10:45 1997 Jeffrey A Law (law@cygnus.com)
1925
1926 * mips.igen (MSUB): Fix to work like MADD.
1927 * gencode.c (MSUB): Similarly.
1928
1929Thu Dec 4 09:21:05 1997 Doug Evans <devans@canuck.cygnus.com>
1930
1931 * configure: Regenerated to track ../common/aclocal.m4 changes.
1932
1933Wed Nov 26 11:00:23 1997 Andrew Cagney <cagney@b1.cygnus.com>
1934
1935 * mips.igen (LWC1): Correct assembler - lwc1 not swc1.
1936
1937Sun Nov 23 01:45:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
1938
1939 * sim-main.h (sim-fpu.h): Include.
1940
1941 * interp.c (convert, SquareRoot, Recip, Divide, Multiply, Sub,
1942 Add, Negate, AbsoluteValue, Equal, Less, Infinity, NaN): Rewrite
1943 using host independant sim_fpu module.
1944
1945Thu Nov 20 19:56:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
1946
1947 * interp.c (signal_exception): Report internal errors with SIGABRT
1948 not SIGQUIT.
1949
1950 * sim-main.h (C0_CONFIG): New register.
1951 (signal.h): No longer include.
1952
1953 * interp.c (decode_coproc): Allow access C0_CONFIG to register.
1954
1955Tue Nov 18 15:33:48 1997 Doug Evans <devans@canuck.cygnus.com>
1956
1957 * Makefile.in (SIM_OBJS): Use $(SIM_NEW_COMMON_OBJS).
1958
1959Fri Nov 14 11:56:48 1997 Andrew Cagney <cagney@b1.cygnus.com>
1960
1961 * mips.igen: Tag vr5000 instructions.
1962 (ANDI): Was missing mipsIV model, fix assembler syntax.
1963 (do_c_cond_fmt): New function.
1964 (C.cond.fmt): Handle mips I-III which do not support CC field
1965 separatly.
1966 (bc1): Handle mips IV which do not have a delaed FCC separatly.
1967 (SDR): Mask paddr when BigEndianMem, not the converse as specified
1968 in IV3.2 spec.
1969 (DMULT, DMULTU): Force use of hosts 64bit multiplication. Handle
1970 vr5000 which saves LO in a GPR separatly.
1971
1972 * configure.in (enable-sim-igen): For vr5000, select vr5000
1973 specific instructions.
1974 * configure: Re-generate.
1975
1976Wed Nov 12 14:42:52 1997 Andrew Cagney <cagney@b1.cygnus.com>
1977
1978 * Makefile.in (SIM_OBJS): Add sim-fpu module.
1979
1980 * interp.c (store_fpr), sim-main.h: Add separate fmt_uninterpreted_32 and
1981 fmt_uninterpreted_64 bit cases to switch. Convert to
1982 fmt_formatted,
1983
1984 * sim-main.h (ENGINE_ISSUE_PREFIX_HOOK): Define,
1985
1986 * mips.igen (SWR): Mask paddr when BigEndianMem, not the converse
1987 as specified in IV3.2 spec.
1988 (MTC1, DMTC1): Call StoreFPR to store the GPR in the FPR.
1989
1990Tue Nov 11 12:38:23 1997 Andrew Cagney <cagney@b1.cygnus.com>
1991
1992 * mips.igen: Delay slot branches add OFFSET to NIA not CIA.
1993 (MFC0, MTC0, SWC1, LWC1, SDC1, LDC1): Implement.
1994 (MTC1, MFC1, DMTC1, DMFC1, CFC1, CTC1): Implement separate non
1995 PENDING_FILL versions of instructions. Simplify.
1996 (X): New function.
1997 (MULT, MULTU): Implement separate RD==0 and RD!=0 versions of
1998 instructions.
1999 (BEQZ, ..., SLT, SLTI, TLT, TLE, TLI, ...): Explicitly cast GPR to
2000 a signed value.
2001 (MTHI, MFHI): Disable code checking HI-LO.
2002
2003 * sim-main.h (dotrace,tracefh), interp.c: Make dotrace & tracefh
2004 global.
2005 (NULLIFY_NEXT_INSTRUCTION): Call dotrace.
2006
2007Thu Nov 6 16:36:35 1997 Andrew Cagney <cagney@b1.cygnus.com>
2008
2009 * gencode.c (build_mips16_operands): Replace IPC with cia.
2010
2011 * interp.c (sim_monitor, signal_exception, cache_op, store_fpr,
2012 value_fpr, cop_ld, cop_lw, cop_sw, cop_sd, decode_coproc): Replace
2013 IPC to `cia'.
2014 (UndefinedResult): Replace function with macro/function
2015 combination.
2016 (sim_engine_run): Don't save PC in IPC.
2017
2018 * sim-main.h (IPC): Delete.
2019
2020
2021 * interp.c (signal_exception, store_word, load_word,
2022 address_translation, load_memory, store_memory, cache_op,
2023 prefetch, sync_operation, ifetch, value_fpr, store_fpr, convert,
2024 cop_lw, cop_ld, cop_sw, cop_sd, decode_coproc, sim_monitor): Add
2025 current instruction address - cia - argument.
2026 (sim_read, sim_write): Call address_translation directly.
2027 (sim_engine_run): Rename variable vaddr to cia.
2028 (signal_exception): Pass cia to sim_monitor
2029
2030 * sim-main.h (SignalException, LoadWord, StoreWord, CacheOp,
2031 Prefetch, SyncOperation, ValueFPR, StoreFPR, Convert, COP_LW,
2032 COP_LD, COP_SW, COP_SD, DecodeCoproc): Update.
2033
2034 * sim-main.h (SignalExceptionSimulatorFault): Delete definition.
2035 * interp.c (sim_open): Replace SignalExceptionSimulatorFault with
2036 SIM_ASSERT.
2037
2038 * interp.c (signal_exception): Pass restart address to
2039 sim_engine_restart.
2040
2041 * Makefile.in (semantics.o, engine.o, support.o, itable.o,
2042 idecode.o): Add dependency.
2043
2044 * sim-main.h (SIM_ENGINE_HALT_HOOK, SIM_ENGINE_RESUME_HOOK):
2045 Delete definitions
2046 (DELAY_SLOT): Update NIA not PC with branch address.
2047 (NULLIFY_NEXT_INSTRUCTION): Set NIA to instruction after next.
2048
2049 * mips.igen: Use CIA not PC in branch calculations.
2050 (illegal): Call SignalException.
2051 (BEQ, ADDIU): Fix assembler.
2052
2053Wed Nov 5 12:19:56 1997 Andrew Cagney <cagney@b1.cygnus.com>
2054
2055 * m16.igen (JALX): Was missing.
2056
2057 * configure.in (enable-sim-igen): New configuration option.
2058 * configure: Re-generate.
2059
2060 * sim-main.h (MAX_INSNS, INSN_NAME): Define.
2061
2062 * interp.c (load_memory, store_memory): Delete parameter RAW.
2063 (sim_read, sim_write): Use sim_core_{read,write}_buffer directly
2064 bypassing {load,store}_memory.
2065
2066 * sim-main.h (ByteSwapMem): Delete definition.
2067
2068 * Makefile.in (SIM_OBJS): Add sim-memopt module.
2069
2070 * interp.c (sim_do_command, sim_commands): Delete mips specific
2071 commands. Handled by module sim-options.
2072
2073 * sim-main.h (SIM_HAVE_FLATMEM): Undefine, use sim-core.o module.
2074 (WITH_MODULO_MEMORY): Define.
2075
2076 * interp.c (sim_info): Delete code printing memory size.
2077
2078 * interp.c (mips_size): Nee sim_size, delete function.
2079 (power2): Delete.
2080 (monitor, monitor_base, monitor_size): Delete global variables.
2081 (sim_open, sim_close): Delete code creating monitor and other
2082 memory regions. Use sim-memopts module, via sim_do_commandf, to
2083 manage memory regions.
2084 (load_memory, store_memory): Use sim-core for memory model.
2085
2086 * interp.c (address_translation): Delete all memory map code
2087 except line forcing 32 bit addresses.
2088
2089Wed Nov 5 11:21:11 1997 Andrew Cagney <cagney@b1.cygnus.com>
2090
2091 * sim-main.h (WITH_TRACE): Delete definition. Enables common
2092 trace options.
2093
2094 * interp.c (logfh, logfile): Delete globals.
2095 (sim_open, sim_close): Delete code opening & closing log file.
2096 (mips_option_handler): Delete -l and -n options.
2097 (OPTION mips_options): Ditto.
2098
2099 * interp.c (OPTION mips_options): Rename option trace to dinero.
2100 (mips_option_handler): Update.
2101
2102Wed Nov 5 09:35:59 1997 Andrew Cagney <cagney@b1.cygnus.com>
2103
2104 * interp.c (fetch_str): New function.
2105 (sim_monitor): Rewrite using sim_read & sim_write.
2106 (sim_open): Check magic number.
2107 (sim_open): Write monitor vectors into memory using sim_write.
2108 (MONITOR_BASE, MONITOR_SIZE, MEM_SIZE): Define.
2109 (sim_read, sim_write): Simplify - transfer data one byte at a
2110 time.
2111 (load_memory, store_memory): Clarify meaning of parameter RAW.
2112
2113 * sim-main.h (isHOST): Defete definition.
2114 (isTARGET): Mark as depreciated.
2115 (address_translation): Delete parameter HOST.
2116
2117 * interp.c (address_translation): Delete parameter HOST.
2118
2119Wed Oct 29 11:13:56 1997 Andrew Cagney <cagney@b1.cygnus.com>
2120
2121 * mips.igen:
2122
2123 * Makefile.in (IGEN_INCLUDE): Files included by mips.igen.
2124 (tmp-igen, tmp-m16): Depend on IGEN_INCLUDE.
2125
2126Tue Oct 28 11:06:47 1997 Andrew Cagney <cagney@b1.cygnus.com>
2127
2128 * mips.igen: Add model filter field to records.
2129
2130Mon Oct 27 17:53:59 1997 Andrew Cagney <cagney@b1.cygnus.com>
2131
2132 * Makefile.in (SIM_NO_CFLAGS): Define. Define WITH_IGEN=0.
2133
2134 interp.c (sim_engine_run): Do not compile function sim_engine_run
2135 when WITH_IGEN == 1.
2136
2137 * configure.in (sim_igen_flags, sim_m16_flags): Set according to
2138 target architecture.
2139
2140 Makefile.in (tmp-igen, tmp-m16): Drop -F and -M options to
2141 igen. Replace with configuration variables sim_igen_flags /
2142 sim_m16_flags.
2143
2144 * m16.igen: New file. Copy mips16 insns here.
2145 * mips.igen: From here.
2146
2147Mon Oct 27 13:53:59 1997 Andrew Cagney <cagney@b1.cygnus.com>
2148
2149 * Makefile.in (SIM_NO_OBJ): Define, move SIM_M16_OBJ, SIM_IGEN_OBJ
2150 to top.
2151 (tmp-igen, tmp-m16): Pass -I srcdir to igen.
2152
2153Sat Oct 25 16:51:40 1997 Gavin Koch <gavin@cygnus.com>
2154
2155 * gencode.c (build_instruction): Follow sim_write's lead in using
2156 BigEndianMem instead of !ByteSwapMem.
2157
2158Fri Oct 24 17:41:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
2159
2160 * configure.in (sim_gen): Dependent on target, select type of
2161 generator. Always select old style generator.
2162
2163 configure: Re-generate.
2164
2165 Makefile.in (tmp-igen, tmp-m16, clean-m16, clean-igen): New
2166 targets.
2167 (SIM_M16_CFLAGS, SIM_M16_ALL, SIM_M16_OBJ, BUILT_SRC_FROM_M16,
2168 SIM_IGEN_CFLAGS, SIM_IGEN_ALL, SIM_IGEN_OBJ, BUILT_SRC_FROM_IGEN,
2169 IGEN_TRACE, IGEN_INSN, IGEN_DC): Define
2170 (SIM_EXTRA_CFLAGS, SIM_EXTRA_ALL, SIM_OBJS): Add member
2171 SIM_@sim_gen@_*, set by autoconf.
2172
2173Wed Oct 22 12:52:06 1997 Andrew Cagney <cagney@b1.cygnus.com>
2174
2175 * sim-main.h (NULLIFY_NEXT_INSTRUCTION, DELAY_SLOT): Define.
2176
2177 * interp.c (ColdReset): Remove #ifdef HASFPU, check
2178 CURRENT_FLOATING_POINT instead.
2179
2180 * interp.c (ifetch32): New function. Fetch 32 bit instruction.
2181 (address_translation): Raise exception InstructionFetch when
2182 translation fails and isINSTRUCTION.
2183
2184 * interp.c (sim_open, sim_write, sim_monitor, store_word,
2185 sim_engine_run): Change type of of vaddr and paddr to
2186 address_word.
2187 (address_translation, prefetch, load_memory, store_memory,
2188 cache_op): Change type of vAddr and pAddr to address_word.
2189
2190 * gencode.c (build_instruction): Change type of vaddr and paddr to
2191 address_word.
2192
2193Mon Oct 20 15:29:04 1997 Andrew Cagney <cagney@b1.cygnus.com>
2194
2195 * sim-main.h (ALU64_END, ALU32_END): Use ALU*_OVERFLOW_RESULT
2196 macro to obtain result of ALU op.
2197
2198Tue Oct 21 17:39:14 1997 Andrew Cagney <cagney@b1.cygnus.com>
2199
2200 * interp.c (sim_info): Call profile_print.
2201
2202Mon Oct 20 13:31:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
2203
2204 * Makefile.in (SIM_OBJS): Add sim-profile.o module.
2205
2206 * sim-main.h (WITH_PROFILE): Do not define, defined in
2207 common/sim-config.h. Use sim-profile module.
2208 (simPROFILE): Delete defintion.
2209
2210 * interp.c (PROFILE): Delete definition.
2211 (mips_option_handler): Delete 'p', 'y' and 'x' profile options.
2212 (sim_close): Delete code writing profile histogram.
2213 (mips_set_profile, mips_set_profile_size, writeout16, writeout32):
2214 Delete.
2215 (sim_engine_run): Delete code profiling the PC.
2216
2217Mon Oct 20 13:31:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
2218
2219 * sim-main.h (SIGNEXTEND): Force type of result to unsigned_word.
2220
2221 * interp.c (sim_monitor): Make register pointers of type
2222 unsigned_word*.
2223
2224 * sim-main.h: Make registers of type unsigned_word not
2225 signed_word.
2226
2227Thu Oct 16 10:31:39 1997 Andrew Cagney <cagney@b1.cygnus.com>
2228
2229 * interp.c (sync_operation): Rename from SyncOperation, make
2230 global, add SD argument.
2231 (prefetch): Rename from Prefetch, make global, add SD argument.
2232 (decode_coproc): Make global.
2233
2234 * sim-main.h (SyncOperation, DecodeCoproc, Pefetch): Define.
2235
2236 * gencode.c (build_instruction): Generate DecodeCoproc not
2237 decode_coproc calls.
2238
2239 * interp.c (SETFCC, GETFCC, PREVCOC1): Move to sim-main.h
2240 (SizeFGR): Move to sim-main.h
2241 (simHALTEX, simHALTIN, simTRACE, simPROFILE, simDELAYSLOT,
2242 simSIGINT, simJALDELAYSLOT): Move to sim-main.h
2243 (FP_FLAGS, FP_ENABLE, FP_CAUSE, IR, UF, OF, DZ, IO, UO): Move to
2244 sim-main.h.
2245 (FP_FS, FP_MASK_RM, FP_SH_RM, FP_RM_NEAREST, FP_RM_TOPINF,
2246 FP_RM_TOMINF, GETRM): Move to sim-main.h.
2247 (Uncached, CachedNoncoherent, CachedCoherent, Cached,
2248 isINSTRUCTION, ..., AccessLength_BYTE, ...): Move to sim-main.h.
2249 (UserMode, BigEndianMem, ByteSwapMem, ReverseEndian,
2250 BigEndianCPU, status_KSU_mask, ...). Moved to sim-main.h
2251
2252 * sim-main.h (ALU32_END, ALU64_END): Define. When overflow raise
2253 exception.
2254 (sim-alu.h): Include.
2255 (NULLIFY_NIA, NULL_CIA, CPU_CIA): Define.
2256 (sim_cia): Typedef to instruction_address.
2257
2258Thu Oct 16 10:31:41 1997 Andrew Cagney <cagney@b1.cygnus.com>
2259
2260 * Makefile.in (interp.o): Rename generated file engine.c to
2261 oengine.c.
2262
2263 * interp.c: Update.
2264
2265Thu Oct 16 10:31:40 1997 Andrew Cagney <cagney@b1.cygnus.com>
2266
2267 * gencode.c (build_instruction): Use FPR_STATE not fpr_state.
2268
2269Thu Oct 16 10:31:39 1997 Andrew Cagney <cagney@b1.cygnus.com>
2270
2271 * gencode.c (build_instruction): For "FPSQRT", output correct
2272 number of arguments to Recip.
2273
2274Tue Oct 14 17:38:18 1997 Andrew Cagney <cagney@b1.cygnus.com>
2275
2276 * Makefile.in (interp.o): Depends on sim-main.h
2277
2278 * interp.c (mips16_entry, ColdReset,dotrace): Add SD argument. Use GPR not registers.
2279
2280 * sim-main.h (sim_cpu): Add registers, register_widths, fpr_state,
2281 ipc, dspc, pending_*, hiaccess, loaccess, state, dsstate fields.
2282 (REGISTERS, REGISTER_WIDTHS, FPR_STATE, IPC, DSPC, PENDING_*,
2283 STATE, DSSTATE): Define
2284 (GPR, FGRIDX, ..): Define.
2285
2286 * interp.c (registers, register_widths, fpr_state, ipc, dspc,
2287 pending_*, hiaccess, loaccess, state, dsstate): Delete globals.
2288 (GPR, FGRIDX, ...): Delete macros.
2289
2290 * interp.c: Update names to match defines from sim-main.h
2291
2292Tue Oct 14 15:11:45 1997 Andrew Cagney <cagney@b1.cygnus.com>
2293
2294 * interp.c (sim_monitor): Add SD argument.
2295 (sim_warning): Delete. Replace calls with calls to
2296 sim_io_eprintf.
2297 (sim_error): Delete. Replace calls with sim_io_error.
2298 (open_trace, writeout32, writeout16, getnum): Add SD argument.
2299 (mips_set_profile): Rename from sim_set_profile. Add SD argument.
2300 (mips_set_profile_size): Rename from sim_set_profile_size. Add SD
2301 argument.
2302 (mips_size): Rename from sim_size. Add SD argument.
2303
2304 * interp.c (simulator): Delete global variable.
2305 (callback): Delete global variable.
2306 (mips_option_handler, sim_open, sim_write, sim_read,
2307 sim_store_register, sim_fetch_register, sim_info, sim_do_command,
2308 sim_size,sim_monitor): Use sim_io_* not callback->*.
2309 (sim_open): ZALLOC simulator struct.
2310 (PROFILE): Do not define.
2311
2312Tue Oct 14 13:35:48 1997 Andrew Cagney <cagney@b1.cygnus.com>
2313
2314 * interp.c (sim_open), support.h: Replace CHECKSIM macro found in
2315 support.h with corresponding code.
2316
2317 * sim-main.h (word64, uword64), support.h: Move definition to
2318 sim-main.h.
2319 (WORD64LO, WORD64HI, SET64LO, SET64HI, WORD64, UWORD64): Ditto.
2320
2321 * support.h: Delete
2322 * Makefile.in: Update dependencies
2323 * interp.c: Do not include.
2324
2325Tue Oct 14 13:35:48 1997 Andrew Cagney <cagney@b1.cygnus.com>
2326
2327 * interp.c (address_translation, load_memory, store_memory,
2328 cache_op): Rename to from AddressTranslation et.al., make global,
2329 add SD argument
2330
2331 * sim-main.h (AddressTranslation, LoadMemory, StoreMemory,
2332 CacheOp): Define.
2333
2334 * interp.c (SignalException): Rename to signal_exception, make
2335 global.
2336
2337 * interp.c (Interrupt, ...): Move definitions to sim-main.h.
2338
2339 * sim-main.h (SignalException, SignalExceptionInterrupt,
2340 SignalExceptionInstructionFetch, SignalExceptionAddressStore,
2341 SignalExceptionAddressLoad, SignalExceptionSimulatorFault,
2342 SignalExceptionIntegerOverflow, SignalExceptionCoProcessorUnusable):
2343 Define.
2344
2345 * interp.c, support.h: Use.
2346
2347Tue Oct 14 13:19:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
2348
2349 * interp.c (ValueFPR, StoreFPR), sim-main.h: Make global, rename
2350 to value_fpr / store_fpr. Add SD argument.
2351 (NaN, Infinity, Less, Equal, AbsoluteValue, Negate, Add, Sub,
2352 Multiply, Divide, Recip, SquareRoot, Convert): Make global.
2353
2354 * sim-main.h (ValueFPR, StoreFPR): Define.
2355
2356Tue Oct 14 13:06:55 1997 Andrew Cagney <cagney@b1.cygnus.com>
2357
2358 * interp.c (sim_engine_run): Check consistency between configure
2359 WITH_TARGET_WORD_BITSIZE and WITH_FLOATING_POINT and gensim GPRLEN
2360 and HASFPU.
2361
2362 * configure.in (mips_bitsize): Configure WITH_TARGET_WORD_BITSIZE.
2363 (mips_fpu): Configure WITH_FLOATING_POINT.
2364 (mips_endian): Configure WITH_TARGET_ENDIAN.
2365 * configure: Update.
2366
2367Fri Oct 3 09:28:00 1997 Andrew Cagney <cagney@b1.cygnus.com>
2368
2369 * configure: Regenerated to track ../common/aclocal.m4 changes.
2370
2371Mon Sep 29 14:45:00 1997 Bob Manson <manson@charmed.cygnus.com>
2372
2373 * configure: Regenerated.
2374
2375Fri Sep 26 12:48:18 1997 Mark Alexander <marka@cygnus.com>
2376
2377 * interp.c: Allow Debug, DEPC, and EPC registers to be examined in GDB.
2378
2379Thu Sep 25 11:15:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
2380
2381 * gencode.c (print_igen_insn_models): Assume certain architectures
2382 include all mips* instructions.
2383 (print_igen_insn_format): Use data_size==-1 as marker for MIPS16
2384 instruction.
2385
2386 * Makefile.in (tmp.igen): Add target. Generate igen input from
2387 gencode file.
2388
2389 * gencode.c (FEATURE_IGEN): Define.
2390 (main): Add --igen option. Generate output in igen format.
2391 (process_instructions): Format output according to igen option.
2392 (print_igen_insn_format): New function.
2393 (print_igen_insn_models): New function.
2394 (process_instructions): Only issue warnings and ignore
2395 instructions when no FEATURE_IGEN.
2396
2397Wed Sep 24 17:38:57 1997 Andrew Cagney <cagney@b1.cygnus.com>
2398
2399 * interp.c (COP_SD, COP_LD): Add UNUSED to pacify GCC for some
2400 MIPS targets.
2401
2402Tue Sep 23 11:04:38 1997 Andrew Cagney <cagney@b1.cygnus.com>
2403
2404 * configure: Regenerated to track ../common/aclocal.m4 changes.
2405
2406Tue Sep 23 10:19:51 1997 Andrew Cagney <cagney@b1.cygnus.com>
2407
2408 * Makefile.in (SIM_ALIGNMENT, SIM_ENDIAN, SIM_HOSTENDIAN,
2409 SIM_RESERVED_BITS): Delete, moved to common.
2410 (SIM_EXTRA_CFLAGS): Update.
2411
2412Mon Sep 22 11:46:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
2413
2414 * configure.in: Configure non-strict memory alignment.
2415 * configure: Regenerated to track ../common/aclocal.m4 changes.
2416
2417Fri Sep 19 17:45:25 1997 Andrew Cagney <cagney@b1.cygnus.com>
2418
2419 * configure: Regenerated to track ../common/aclocal.m4 changes.
2420
2421Sat Sep 20 14:07:28 1997 Gavin Koch <gavin@cygnus.com>
2422
2423 * gencode.c (SDBBP,DERET): Added (3900) insns.
2424 (RFE): Turn on for 3900.
2425 * interp.c (DebugBreakPoint,DEPC,Debug,Debug_*): Added.
2426 (dsstate): Made global.
2427 (SUBTARGET_R3900): Added.
2428 (CANCELDELAYSLOT): New.
2429 (SignalException): Ignore SystemCall rather than ignore and
2430 terminate. Add DebugBreakPoint handling.
2431 (decode_coproc): New insns RFE, DERET; and new registers Debug
2432 and DEPC protected by SUBTARGET_R3900.
2433 (sim_engine_run): Use CANCELDELAYSLOT rather than clearing
2434 bits explicitly.
2435 * Makefile.in,configure.in: Add mips subtarget option.
2436 * configure: Update.
2437
2438Fri Sep 19 09:33:27 1997 Gavin Koch <gavin@cygnus.com>
2439
2440 * gencode.c: Add r3900 (tx39).
2441
2442
2443Tue Sep 16 15:52:04 1997 Gavin Koch <gavin@cygnus.com>
2444
2445 * gencode.c (build_instruction): Don't need to subtract 4 for
2446 JALR, just 2.
2447
2448Tue Sep 16 11:32:28 1997 Gavin Koch <gavin@cygnus.com>
2449
2450 * interp.c: Correct some HASFPU problems.
2451
2452Mon Sep 15 17:36:15 1997 Andrew Cagney <cagney@b1.cygnus.com>
2453
2454 * configure: Regenerated to track ../common/aclocal.m4 changes.
2455
2456Fri Sep 12 12:01:39 1997 Andrew Cagney <cagney@b1.cygnus.com>
2457
2458 * interp.c (mips_options): Fix samples option short form, should
2459 be `x'.
2460
2461Thu Sep 11 09:35:29 1997 Andrew Cagney <cagney@b1.cygnus.com>
2462
2463 * interp.c (sim_info): Enable info code. Was just returning.
2464
2465Tue Sep 9 17:30:57 1997 Andrew Cagney <cagney@b1.cygnus.com>
2466
2467 * interp.c (decode_coproc): Clarify warning about unsuported MTC0,
2468 MFC0.
2469
2470Tue Sep 9 16:28:28 1997 Andrew Cagney <cagney@b1.cygnus.com>
2471
2472 * gencode.c (build_instruction): Use SIGNED64 for 64 bit
2473 constants.
2474 (build_instruction): Ditto for LL.
2475
2476Thu Sep 4 17:21:23 1997 Doug Evans <dje@seba>
2477
2478 * configure: Regenerated to track ../common/aclocal.m4 changes.
2479
2480Wed Aug 27 18:13:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
2481
2482 * configure: Regenerated to track ../common/aclocal.m4 changes.
2483 * config.in: Ditto.
2484
2485Wed Aug 27 14:12:27 1997 Andrew Cagney <cagney@b1.cygnus.com>
2486
2487 * interp.c (sim_open): Add call to sim_analyze_program, update
2488 call to sim_config.
2489
2490Tue Aug 26 10:40:07 1997 Andrew Cagney <cagney@b1.cygnus.com>
2491
2492 * interp.c (sim_kill): Delete.
2493 (sim_create_inferior): Add ABFD argument. Set PC from same.
2494 (sim_load): Move code initializing trap handlers from here.
2495 (sim_open): To here.
2496 (sim_load): Delete, use sim-hload.c.
2497
2498 * Makefile.in (SIM_OBJS): Add sim-hload.o module.
2499
2500Mon Aug 25 17:50:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
2501
2502 * configure: Regenerated to track ../common/aclocal.m4 changes.
2503 * config.in: Ditto.
2504
2505Mon Aug 25 15:59:48 1997 Andrew Cagney <cagney@b1.cygnus.com>
2506
2507 * interp.c (sim_open): Add ABFD argument.
2508 (sim_load): Move call to sim_config from here.
2509 (sim_open): To here. Check return status.
2510
2511Fri Jul 25 15:00:45 1997 Gavin Koch <gavin@cygnus.com>
2512
2513 * gencode.c (build_instruction): Two arg MADD should
2514 not assign result to $0.
2515
2516Thu Jun 26 12:13:17 1997 Angela Marie Thomas (angela@cygnus.com)
2517
2518 * sim/mips/configure: Change default_sim_endian to 0 (bi-endian)
2519 * sim/mips/configure.in: Regenerate.
2520
2521Wed Jul 9 10:29:21 1997 Andrew Cagney <cagney@critters.cygnus.com>
2522
2523 * interp.c (SUB_REG_UW, SUB_REG_SW, SUB_REG_*): Use more explicit
2524 signed8, unsigned8 et.al. types.
2525
2526 * interp.c (SUB_REG_FETCH): Handle both little and big endian
2527 hosts when selecting subreg.
2528
2529Wed Jul 2 11:54:10 1997 Jeffrey A Law (law@cygnus.com)
2530
2531 * interp.c (sim_engine_run): Reset the ZERO register to zero
2532 regardless of FEATURE_WARN_ZERO.
2533 * gencode.c (FEATURE_WARNINGS): Remove FEATURE_WARN_ZERO.
2534
2535Wed Jun 4 10:43:14 1997 Andrew Cagney <cagney@b1.cygnus.com>
2536
2537 * interp.c (decode_coproc): Implement MTC0 N, CAUSE.
2538 (SignalException): For BreakPoints ignore any mode bits and just
2539 save the PC.
2540 (SignalException): Always set the CAUSE register.
2541
2542Tue Jun 3 05:00:33 1997 Andrew Cagney <cagney@b1.cygnus.com>
2543
2544 * interp.c (SignalException): Clear the simDELAYSLOT flag when an
2545 exception has been taken.
2546
2547 * interp.c: Implement the ERET and mt/f sr instructions.
2548
2549Sat May 31 00:44:16 1997 Andrew Cagney <cagney@b1.cygnus.com>
2550
2551 * interp.c (SignalException): Don't bother restarting an
2552 interrupt.
2553
2554Fri May 30 23:41:48 1997 Andrew Cagney <cagney@b1.cygnus.com>
2555
2556 * interp.c (SignalException): Really take an interrupt.
2557 (interrupt_event): Only deliver interrupts when enabled.
2558
2559Tue May 27 20:08:06 1997 Andrew Cagney <cagney@b1.cygnus.com>
2560
2561 * interp.c (sim_info): Only print info when verbose.
2562 (sim_info) Use sim_io_printf for output.
2563
2564Tue May 27 14:22:23 1997 Andrew Cagney <cagney@b1.cygnus.com>
2565
2566 * interp.c (CoProcPresent): Add UNUSED attribute - not used by all
2567 mips architectures.
2568
2569Tue May 27 14:22:23 1997 Andrew Cagney <cagney@b1.cygnus.com>
2570
2571 * interp.c (sim_do_command): Check for common commands if a
2572 simulator specific command fails.
2573
2574Thu May 22 09:32:03 1997 Gavin Koch <gavin@cygnus.com>
2575
2576 * interp.c (sim_engine_run): ifdef out uses of simSTOP, simSTEP
2577 and simBE when DEBUG is defined.
2578
2579Wed May 21 09:08:10 1997 Andrew Cagney <cagney@b1.cygnus.com>
2580
2581 * interp.c (interrupt_event): New function. Pass exception event
2582 onto exception handler.
2583
2584 * configure.in: Check for stdlib.h.
2585 * configure: Regenerate.
2586
2587 * gencode.c (build_instruction): Add UNUSED attribute to tempS
2588 variable declaration.
2589 (build_instruction): Initialize memval1.
2590 (build_instruction): Add UNUSED attribute to byte, bigend,
2591 reverse.
2592 (build_operands): Ditto.
2593
2594 * interp.c: Fix GCC warnings.
2595 (sim_get_quit_code): Delete.
2596
2597 * configure.in: Add INLINE, ENDIAN, HOSTENDIAN and WARNINGS.
2598 * Makefile.in: Ditto.
2599 * configure: Re-generate.
2600
2601 * Makefile.in (SIM_OBJS): Add sim-watch.o module.
2602
2603Tue May 20 15:08:56 1997 Andrew Cagney <cagney@b1.cygnus.com>
2604
2605 * interp.c (mips_option_handler): New function parse argumes using
2606 sim-options.
2607 (myname): Replace with STATE_MY_NAME.
2608 (sim_open): Delete check for host endianness - performed by
2609 sim_config.
2610 (simHOSTBE, simBE): Delete, replaced by sim-endian flags.
2611 (sim_open): Move much of the initialization from here.
2612 (sim_load): To here. After the image has been loaded and
2613 endianness set.
2614 (sim_open): Move ColdReset from here.
2615 (sim_create_inferior): To here.
2616 (sim_open): Make FP check less dependant on host endianness.
2617
2618 * Makefile.in (SIM_RUN_OBJS): Set to nrun.o - use new version or
2619 run.
2620 * interp.c (sim_set_callbacks): Delete.
2621
2622 * interp.c (membank, membank_base, membank_size): Replace with
2623 STATE_MEMORY, STATE_MEM_SIZE, STATE_MEM_BASE.
2624 (sim_open): Remove call to callback->init. gdb/run do this.
2625
2626 * interp.c: Update
2627
2628 * sim-main.h (SIM_HAVE_FLATMEM): Define.
2629
2630 * interp.c (big_endian_p): Delete, replaced by
2631 current_target_byte_order.
2632
2633Tue May 20 13:55:00 1997 Andrew Cagney <cagney@b1.cygnus.com>
2634
2635 * interp.c (host_read_long, host_read_word, host_swap_word,
2636 host_swap_long): Delete. Using common sim-endian.
2637 (sim_fetch_register, sim_store_register): Use H2T.
2638 (pipeline_ticks): Delete. Handled by sim-events.
2639 (sim_info): Update.
2640 (sim_engine_run): Update.
2641
2642Tue May 20 13:42:03 1997 Andrew Cagney <cagney@b1.cygnus.com>
2643
2644 * interp.c (sim_stop_reason): Move code determining simEXCEPTION
2645 reason from here.
2646 (SignalException): To here. Signal using sim_engine_halt.
2647 (sim_stop_reason): Delete, moved to common.
2648
2649Tue May 20 10:19:48 1997 Andrew Cagney <cagney@b2.cygnus.com>
2650
2651 * interp.c (sim_open): Add callback argument.
2652 (sim_set_callbacks): Delete SIM_DESC argument.
2653 (sim_size): Ditto.
2654
2655Mon May 19 18:20:38 1997 Andrew Cagney <cagney@b1.cygnus.com>
2656
2657 * Makefile.in (SIM_OBJS): Add common modules.
2658
2659 * interp.c (sim_set_callbacks): Also set SD callback.
2660 (set_endianness, xfer_*, swap_*): Delete.
2661 (host_read_word, host_read_long, host_swap_word, host_swap_long):
2662 Change to functions using sim-endian macros.
2663 (control_c, sim_stop): Delete, use common version.
2664 (simulate): Convert into.
2665 (sim_engine_run): This function.
2666 (sim_resume): Delete.
2667
2668 * interp.c (simulation): New variable - the simulator object.
2669 (sim_kind): Delete global - merged into simulation.
2670 (sim_load): Cleanup. Move PC assignment from here.
2671 (sim_create_inferior): To here.
2672
2673 * sim-main.h: New file.
2674 * interp.c (sim-main.h): Include.
2675
2676Thu Apr 24 00:39:51 1997 Doug Evans <dje@canuck.cygnus.com>
2677
2678 * configure: Regenerated to track ../common/aclocal.m4 changes.
2679
2680Wed Apr 23 17:32:19 1997 Doug Evans <dje@canuck.cygnus.com>
2681
2682 * tconfig.in (SIM_HAVE_BIENDIAN): Define.
2683
2684Mon Apr 21 17:16:13 1997 Gavin Koch <gavin@cygnus.com>
2685
2686 * gencode.c (build_instruction): DIV instructions: check
2687 for division by zero and integer overflow before using
2688 host's division operation.
2689
2690Thu Apr 17 03:18:14 1997 Doug Evans <dje@canuck.cygnus.com>
2691
2692 * Makefile.in (SIM_OBJS): Add sim-load.o.
2693 * interp.c: #include bfd.h.
2694 (target_byte_order): Delete.
2695 (sim_kind, myname, big_endian_p): New static locals.
2696 (sim_open): Set sim_kind, myname. Move call to set_endianness to
2697 after argument parsing. Recognize -E arg, set endianness accordingly.
2698 (sim_load): Return SIM_RC. New arg abfd. Call sim_load_file to
2699 load file into simulator. Set PC from bfd.
2700 (sim_create_inferior): Return SIM_RC. Delete arg start_address.
2701 (set_endianness): Use big_endian_p instead of target_byte_order.
2702
2703Wed Apr 16 17:55:37 1997 Andrew Cagney <cagney@b1.cygnus.com>
2704
2705 * interp.c (sim_size): Delete prototype - conflicts with
2706 definition in remote-sim.h. Correct definition.
2707
2708Mon Apr 7 15:45:02 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
2709
2710 * configure: Regenerated to track ../common/aclocal.m4 changes.
2711 * config.in: Ditto.
2712
2713Wed Apr 2 15:06:28 1997 Doug Evans <dje@canuck.cygnus.com>
2714
2715 * interp.c (sim_open): New arg `kind'.
2716
2717 * configure: Regenerated to track ../common/aclocal.m4 changes.
2718
2719Wed Apr 2 14:34:19 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
2720
2721 * configure: Regenerated to track ../common/aclocal.m4 changes.
2722
2723Tue Mar 25 11:38:22 1997 Doug Evans <dje@canuck.cygnus.com>
2724
2725 * interp.c (sim_open): Set optind to 0 before calling getopt.
2726
2727Wed Mar 19 01:14:00 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
2728
2729 * configure: Regenerated to track ../common/aclocal.m4 changes.
2730
2731Mon Mar 17 10:52:59 1997 Gavin Koch <gavin@cetus.cygnus.com>
2732
2733 * interp.c : Replace uses of pr_addr with pr_uword64
2734 where the bit length is always 64 independent of SIM_ADDR.
2735 (pr_uword64) : added.
2736
2737Mon Mar 17 15:10:07 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
2738
2739 * configure: Re-generate.
2740
2741Fri Mar 14 10:34:11 1997 Michael Meissner <meissner@cygnus.com>
2742
2743 * configure: Regenerate to track ../common/aclocal.m4 changes.
2744
2745Thu Mar 13 12:51:36 1997 Doug Evans <dje@canuck.cygnus.com>
2746
2747 * interp.c (sim_open): New SIM_DESC result. Argument is now
2748 in argv form.
2749 (other sim_*): New SIM_DESC argument.
2750
2751Mon Feb 24 22:47:14 1997 Dawn Perchik <dawn@cygnus.com>
2752
2753 * interp.c: Fix printing of addresses for non-64-bit targets.
2754 (pr_addr): Add function to print address based on size.
2755
2756Wed Feb 19 14:42:09 1997 Mark Alexander <marka@cygnus.com>
2757
2758 * interp.c (simopen): Add support for LSI MiniRISC PMON vectors.
2759
2760Thu Feb 13 14:08:30 1997 Ian Lance Taylor <ian@cygnus.com>
2761
2762 * gencode.c (build_mips16_operands): Correct computation of base
2763 address for extended PC relative instruction.
2764
2765Thu Feb 6 17:16:15 1997 Ian Lance Taylor <ian@cygnus.com>
2766
2767 * interp.c (mips16_entry): Add support for floating point cases.
2768 (SignalException): Pass floating point cases to mips16_entry.
2769 (ValueFPR): Don't restrict fmt_single and fmt_word to even
2770 registers.
2771 (StoreFPR): Likewise. Also, don't clobber fpr + 1 for fmt_single
2772 or fmt_word.
2773 (COP_LW): Pass fmt_word rather than fmt_uninterpreted to StoreFPR,
2774 and then set the state to fmt_uninterpreted.
2775 (COP_SW): Temporarily set the state to fmt_word while calling
2776 ValueFPR.
2777
2778Tue Feb 4 16:48:25 1997 Ian Lance Taylor <ian@cygnus.com>
2779
2780 * gencode.c (build_instruction): The high order may be set in the
2781 comparison flags at any ISA level, not just ISA 4.
2782
2783Tue Feb 4 13:33:30 1997 Doug Evans <dje@canuck.cygnus.com>
2784
2785 * Makefile.in (@COMMON_MAKEFILE_FRAG): Use
2786 COMMON_{PRE,POST}_CONFIG_FRAG instead.
2787 * configure.in: sinclude ../common/aclocal.m4.
2788 * configure: Regenerated.
2789
2790Fri Jan 31 11:11:45 1997 Ian Lance Taylor <ian@cygnus.com>
2791
2792 * configure: Rebuild after change to aclocal.m4.
2793
2794Thu Jan 23 11:46:23 1997 Stu Grossman (grossman@critters.cygnus.com)
2795
2796 * configure configure.in Makefile.in: Update to new configure
2797 scheme which is more compatible with WinGDB builds.
2798 * configure.in: Improve comment on how to run autoconf.
2799 * configure: Re-run autoconf to get new ../common/aclocal.m4.
2800 * Makefile.in: Use autoconf substitution to install common
2801 makefile fragment.
2802
2803Wed Jan 8 12:39:03 1997 Jim Wilson <wilson@cygnus.com>
2804
2805 * gencode.c (build_instruction): Use BigEndianCPU instead of
2806 ByteSwapMem.
2807
2808Thu Jan 02 22:23:04 1997 Mark Alexander <marka@cygnus.com>
2809
2810 * interp.c (sim_monitor): Make output to stdout visible in
2811 wingdb's I/O log window.
2812
2813Tue Dec 31 07:04:00 1996 Mark Alexander <marka@cygnus.com>
2814
2815 * support.h: Undo previous change to SIGTRAP
2816 and SIGQUIT values.
2817
2818Mon Dec 30 17:36:06 1996 Ian Lance Taylor <ian@cygnus.com>
2819
2820 * interp.c (store_word, load_word): New static functions.
2821 (mips16_entry): New static function.
2822 (SignalException): Look for mips16 entry and exit instructions.
2823 (simulate): Use the correct index when setting fpr_state after
2824 doing a pending move.
2825
2826Sun Dec 29 09:37:18 1996 Mark Alexander <marka@cygnus.com>
2827
2828 * interp.c: Fix byte-swapping code throughout to work on
2829 both little- and big-endian hosts.
2830
2831Sun Dec 29 09:18:32 1996 Mark Alexander <marka@cygnus.com>
2832
2833 * support.h: Make definitions of SIGTRAP and SIGQUIT consistent
2834 with gdb/config/i386/xm-windows.h.
2835
2836Fri Dec 27 22:48:51 1996 Mark Alexander <marka@cygnus.com>
2837
2838 * gencode.c (build_instruction): Work around MSVC++ code gen bug
2839 that messes up arithmetic shifts.
2840
2841Fri Dec 20 11:04:05 1996 Stu Grossman (grossman@critters.cygnus.com)
2842
2843 * support.h: Use _WIN32 instead of __WIN32__. Also add defs for
2844 SIGTRAP and SIGQUIT for _WIN32.
2845
2846Thu Dec 19 14:07:27 1996 Ian Lance Taylor <ian@cygnus.com>
2847
2848 * gencode.c (build_instruction) [MUL]: Cast operands to word64, to
2849 force a 64 bit multiplication.
2850 (build_instruction) [OR]: In mips16 mode, don't do anything if the
2851 destination register is 0, since that is the default mips16 nop
2852 instruction.
2853
2854Mon Dec 16 14:59:38 1996 Ian Lance Taylor <ian@cygnus.com>
2855
2856 * gencode.c (MIPS16_DECODE): SWRASP is I8, not RI.
2857 (build_endian_shift): Don't check proc64.
2858 (build_instruction): Always set memval to uword64. Cast op2 to
2859 uword64 when shifting it left in memory instructions. Always use
2860 the same code for stores--don't special case proc64.
2861
2862 * gencode.c (build_mips16_operands): Fix base PC value for PC
2863 relative operands.
2864 (build_instruction): Call JALDELAYSLOT rather than DELAYSLOT for a
2865 jal instruction.
2866 * interp.c (simJALDELAYSLOT): Define.
2867 (JALDELAYSLOT): Define.
2868 (INDELAYSLOT, INJALDELAYSLOT): Define.
2869 (simulate): Clear simJALDELAYSLOT when simDELAYSLOT is cleared.
2870
2871Tue Dec 24 22:11:20 1996 Angela Marie Thomas (angela@cygnus.com)
2872
2873 * interp.c (sim_open): add flush_cache as a PMON routine
2874 (sim_monitor): handle flush_cache by ignoring it
2875
2876Wed Dec 11 13:53:51 1996 Jim Wilson <wilson@cygnus.com>
2877
2878 * gencode.c (build_instruction): Use !ByteSwapMem instead of
2879 BigEndianMem.
2880 * interp.c (CONFIG, config_EP_{mask,shift,D,DxxDxx, config_BE): Delete.
2881 (BigEndianMem): Rename to ByteSwapMem and change sense.
2882 (BigEndianCPU, sim_write, LoadMemory, StoreMemory): Change
2883 BigEndianMem references to !ByteSwapMem.
2884 (set_endianness): New function, with prototype.
2885 (sim_open): Call set_endianness.
2886 (sim_info): Use simBE instead of BigEndianMem.
2887 (xfer_direct_word, xfer_direct_long, swap_direct_word,
2888 swap_direct_long, xfer_big_word, xfer_big_long, xfer_little_word,
2889 xfer_little_long, swap_word, swap_long): Delete unnecessary MSC_VER
2890 ifdefs, keeping the prototype declaration.
2891 (swap_word): Rewrite correctly.
2892 (ColdReset): Delete references to CONFIG. Delete endianness related
2893 code; moved to set_endianness.
2894
2895Tue Dec 10 11:32:04 1996 Jim Wilson <wilson@cygnus.com>
2896
2897 * gencode.c (build_instruction, case JUMP): Truncate PC to 32 bits.
2898 * interp.c (CHECKHILO): Define away.
2899 (simSIGINT): New macro.
2900 (membank_size): Increase from 1MB to 2MB.
2901 (control_c): New function.
2902 (sim_resume): Rename parameter signal to signal_number. Add local
2903 variable prev. Call signal before and after simulate.
2904 (sim_stop_reason): Add simSIGINT support.
2905 (sim_warning, sim_error, dotrace, SignalException): Define as stdarg
2906 functions always.
2907 (sim_warning): Delete call to SignalException. Do call printf_filtered
2908 if logfh is NULL.
2909 (AddressTranslation): Add #ifdef DEBUG around debugging message and
2910 a call to sim_warning.
2911
2912Wed Nov 27 11:53:50 1996 Ian Lance Taylor <ian@cygnus.com>
2913
2914 * gencode.c (process_instructions): If ! proc64, skip DOUBLEWORD
2915 16 bit instructions.
2916
2917Tue Nov 26 11:53:12 1996 Ian Lance Taylor <ian@cygnus.com>
2918
2919 Add support for mips16 (16 bit MIPS implementation):
2920 * gencode.c (inst_type): Add mips16 instruction encoding types.
2921 (GETDATASIZEINSN): Define.
2922 (MIPS_DECODE): Add REG flag to dsllv, dsrav, and dsrlv. Add
2923 jalx. Add LEFT flag to mfhi and mflo. Add RIGHT flag to mthi and
2924 mtlo.
2925 (MIPS16_DECODE): New table, for mips16 instructions.
2926 (bitmap_val): New static function.
2927 (struct mips16_op): Define.
2928 (mips16_op_table): New table, for mips16 operands.
2929 (build_mips16_operands): New static function.
2930 (process_instructions): If PC is odd, decode a mips16
2931 instruction. Break out instruction handling into new
2932 build_instruction function.
2933 (build_instruction): New static function, broken out of
2934 process_instructions. Check modifiers rather than flags for SHIFT
2935 bit count and m[ft]{hi,lo} direction.
2936 (usage): Pass program name to fprintf.
2937 (main): Remove unused variable this_option_optind. Change
2938 ``*loptarg++'' to ``loptarg++''.
2939 (my_strtoul): Parenthesize && within ||.
2940 * interp.c (LoadMemory): Accept a halfword pAddr if vAddr is odd.
2941 (simulate): If PC is odd, fetch a 16 bit instruction, and
2942 increment PC by 2 rather than 4.
2943 * configure.in: Add case for mips16*-*-*.
2944 * configure: Rebuild.
2945
2946Fri Nov 22 08:49:36 1996 Mark Alexander <marka@cygnus.com>
2947
2948 * interp.c: Allow -t to enable tracing in standalone simulator.
2949 Fix garbage output in trace file and error messages.
2950
2951Wed Nov 20 01:54:37 1996 Doug Evans <dje@canuck.cygnus.com>
2952
2953 * Makefile.in: Delete stuff moved to ../common/Make-common.in.
2954 (SIM_{OBJS,EXTRA_CFLAGS,EXTRA_CLEAN}): Define.
2955 * configure.in: Simplify using macros in ../common/aclocal.m4.
2956 * configure: Regenerated.
2957 * tconfig.in: New file.
2958
2959Tue Nov 12 13:34:00 1996 Dawn Perchik <dawn@cygnus.com>
2960
2961 * interp.c: Fix bugs in 64-bit port.
2962 Use ansi function declarations for msvc compiler.
2963 Initialize and test file pointer in trace code.
2964 Prevent duplicate definition of LAST_EMED_REGNUM.
2965
2966Tue Oct 15 11:07:06 1996 Mark Alexander <marka@cygnus.com>
2967
2968 * interp.c (xfer_big_long): Prevent unwanted sign extension.
2969
2970Thu Sep 26 17:35:00 1996 James G. Smith <jsmith@cygnus.co.uk>
2971
2972 * interp.c (SignalException): Check for explicit terminating
2973 breakpoint value.
2974 * gencode.c: Pass instruction value through SignalException()
2975 calls for Trap, Breakpoint and Syscall.
2976
2977Thu Sep 26 11:35:17 1996 James G. Smith <jsmith@cygnus.co.uk>
2978
2979 * interp.c (SquareRoot): Add HAVE_SQRT check to ensure sqrt() is
2980 only used on those hosts that provide it.
2981 * configure.in: Add sqrt() to list of functions to be checked for.
2982 * config.in: Re-generated.
2983 * configure: Re-generated.
2984
2985Fri Sep 20 15:47:12 1996 Ian Lance Taylor <ian@cygnus.com>
2986
2987 * gencode.c (process_instructions): Call build_endian_shift when
2988 expanding STORE RIGHT, to fix swr.
2989 * support.h (SIGNEXTEND): If the sign bit is not set, explicitly
2990 clear the high bits.
2991 * interp.c (Convert): Fix fmt_single to fmt_long to not truncate.
2992 Fix float to int conversions to produce signed values.
2993
2994Thu Sep 19 15:34:17 1996 Ian Lance Taylor <ian@cygnus.com>
2995
2996 * gencode.c (MIPS_DECODE): Set UNSIGNED for multu instruction.
2997 (process_instructions): Correct handling of nor instruction.
2998 Correct shift count for 32 bit shift instructions. Correct sign
2999 extension for arithmetic shifts to not shift the number of bits in
3000 the type. Fix 64 bit multiply high word calculation. Fix 32 bit
3001 unsigned multiply. Fix ldxc1 and friends to use coprocessor 1.
3002 Fix madd.
3003 * interp.c (CHECKHILO): Don't set HIACCESS, LOACCESS, or HLPC.
3004 It's OK to have a mult follow a mult. What's not OK is to have a
3005 mult follow an mfhi.
3006 (Convert): Comment out incorrect rounding code.
3007
3008Mon Sep 16 11:38:16 1996 James G. Smith <jsmith@cygnus.co.uk>
3009
3010 * interp.c (sim_monitor): Improved monitor printf
3011 simulation. Tidied up simulator warnings, and added "--log" option
3012 for directing warning message output.
3013 * gencode.c: Use sim_warning() rather than WARNING macro.
3014
3015Thu Aug 22 15:03:12 1996 Ian Lance Taylor <ian@cygnus.com>
3016
3017 * Makefile.in (gencode): Depend upon gencode.o, getopt.o, and
3018 getopt1.o, rather than on gencode.c. Link objects together.
3019 Don't link against -liberty.
3020 (gencode.o, getopt.o, getopt1.o): New targets.
3021 * gencode.c: Include <ctype.h> and "ansidecl.h".
3022 (AND): Undefine after including "ansidecl.h".
3023 (ULONG_MAX): Define if not defined.
3024 (OP_*): Don't define macros; now defined in opcode/mips.h.
3025 (main): Call my_strtoul rather than strtoul.
3026 (my_strtoul): New static function.
3027
3028Wed Jul 17 18:12:38 1996 Stu Grossman (grossman@critters.cygnus.com)
3029
3030 * gencode.c (process_instructions): Generate word64 and uword64
3031 instead of `long long' and `unsigned long long' data types.
3032 * interp.c: #include sysdep.h to get signals, and define default
3033 for SIGBUS.
3034 * (Convert): Work around for Visual-C++ compiler bug with type
3035 conversion.
3036 * support.h: Make things compile under Visual-C++ by using
3037 __int64 instead of `long long'. Change many refs to long long
3038 into word64/uword64 typedefs.
3039
3040Wed Jun 26 12:24:55 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
3041
3042 * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
3043 INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
3044 (docdir): Removed.
3045 * configure.in (AC_PREREQ): autoconf 2.5 or higher.
3046 (AC_PROG_INSTALL): Added.
3047 (AC_PROG_CC): Moved to before configure.host call.
3048 * configure: Rebuilt.
3049
3050Wed Jun 5 08:28:13 1996 James G. Smith <jsmith@cygnus.co.uk>
3051
3052 * configure.in: Define @SIMCONF@ depending on mips target.
3053 * configure: Rebuild.
3054 * Makefile.in (run): Add @SIMCONF@ to control simulator
3055 construction.
3056 * gencode.c: Change LOADDRMASK to 64bit memory model only.
3057 * interp.c: Remove some debugging, provide more detailed error
3058 messages, update memory accesses to use LOADDRMASK.
3059
3060Mon Jun 3 11:55:03 1996 Ian Lance Taylor <ian@cygnus.com>
3061
3062 * configure.in: Add calls to AC_CONFIG_HEADER, AC_CHECK_HEADERS,
3063 AC_CHECK_LIB, and AC_CHECK_FUNCS. Change AC_OUTPUT to set
3064 stamp-h.
3065 * configure: Rebuild.
3066 * config.in: New file, generated by autoheader.
3067 * interp.c: Include "config.h". Include <stdlib.h>, <string.h>,
3068 and <strings.h> if they exist. Replace #ifdef sun with #ifdef
3069 HAVE_ANINT and HAVE_AINT, as appropriate.
3070 * Makefile.in (run): Use @LIBS@ rather than -lm.
3071 (interp.o): Depend upon config.h.
3072 (Makefile): Just rebuild Makefile.
3073 (clean): Remove stamp-h.
3074 (mostlyclean): Make the same as clean, not as distclean.
3075 (config.h, stamp-h): New targets.
3076
3077Fri May 10 00:41:17 1996 James G. Smith <jsmith@cygnus.co.uk>
3078
3079 * interp.c (ColdReset): Fix boolean test. Make all simulator
3080 globals static.
3081
3082Wed May 8 15:12:58 1996 James G. Smith <jsmith@cygnus.co.uk>
3083
3084 * interp.c (xfer_direct_word, xfer_direct_long,
3085 swap_direct_word, swap_direct_long, xfer_big_word,
3086 xfer_big_long, xfer_little_word, xfer_little_long,
3087 swap_word,swap_long): Added.
3088 * interp.c (ColdReset): Provide function indirection to
3089 host<->simulated_target transfer routines.
3090 * interp.c (sim_store_register, sim_fetch_register): Updated to
3091 make use of indirected transfer routines.
3092
3093Fri Apr 19 15:48:24 1996 James G. Smith <jsmith@cygnus.co.uk>
3094
3095 * gencode.c (process_instructions): Ensure FP ABS instruction
3096 recognised.
3097 * interp.c (AbsoluteValue): Add routine. Also provide simple PMON
3098 system call support.
3099
3100Wed Apr 10 09:51:38 1996 James G. Smith <jsmith@cygnus.co.uk>
3101
3102 * interp.c (sim_do_command): Complain if callback structure not
3103 initialised.
3104
3105Thu Mar 28 13:50:51 1996 James G. Smith <jsmith@cygnus.co.uk>
3106
3107 * interp.c (Convert): Provide round-to-nearest and round-to-zero
3108 support for Sun hosts.
3109 * Makefile.in (gencode): Ensure the host compiler and libraries
3110 used for cross-hosted build.
3111
3112Wed Mar 27 14:42:12 1996 James G. Smith <jsmith@cygnus.co.uk>
3113
3114 * interp.c, gencode.c: Some more (TODO) tidying.
3115
3116Thu Mar 7 11:19:33 1996 James G. Smith <jsmith@cygnus.co.uk>
3117
3118 * gencode.c, interp.c: Replaced explicit long long references with
3119 WORD64HI, WORD64LO, SET64HI and SET64LO macro calls.
3120 * support.h (SET64LO, SET64HI): Macros added.
3121
3122Wed Feb 21 12:16:21 1996 Ian Lance Taylor <ian@cygnus.com>
3123
3124 * configure: Regenerate with autoconf 2.7.
3125
3126Tue Jan 30 08:48:18 1996 Fred Fish <fnf@cygnus.com>
3127
3128 * interp.c (LoadMemory): Enclose text following #endif in /* */.
3129 * support.h: Remove superfluous "1" from #if.
3130 * support.h (CHECKSIM): Remove stray 'a' at end of line.
3131
3132Mon Dec 4 11:44:40 1995 Jamie Smith <jsmith@cygnus.com>
3133
3134 * interp.c (StoreFPR): Control UndefinedResult() call on
3135 WARN_RESULT manifest.
3136
3137Fri Dec 1 16:37:19 1995 James G. Smith <jsmith@cygnus.co.uk>
3138
3139 * gencode.c: Tidied instruction decoding, and added FP instruction
3140 support.
3141
3142 * interp.c: Added dineroIII, and BSD profiling support. Also
3143 run-time FP handling.
3144
3145Sun Oct 22 00:57:18 1995 James G. Smith <jsmith@pasanda.cygnus.co.uk>
3146
3147 * Changelog, Makefile.in, README.Cygnus, configure, configure.in,
3148 gencode.c, interp.c, support.h: created.