]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/d10v/ChangeLog
2005-01-13 Andrew Cagney <cagney@gnu.org>
[thirdparty/binutils-gdb.git] / sim / d10v / ChangeLog
CommitLineData
f0569246
AC
12005-01-12 Andrew Cagney <cagney@gnu.org>
2
3 * configure.ac: Update to use ../common/common.m4.
4 * configure: Re-generate.
5
38f48d72
AC
62005-01-11 Andrew Cagney <cagney@localhost.localdomain>
7
8 * configure: Regenerated to track ../common/aclocal.m4 changes.
9
b7026657
AC
102005-01-07 Andrew Cagney <cagney@gnu.org>
11
12 * configure.ac: Rename configure.in, require autoconf 2.59.
13 * configure: Re-generate.
14
379832de
HPN
152004-12-08 Hans-Peter Nilsson <hp@axis.com>
16
17 * configure: Regenerate for ../common/aclocal.m4 update.
18
0aaa4a81
AC
192004-06-28 Andrew Cagney <cagney@gnu.org>
20
21 * interp.c (sim_resume): Rename ui_loop_hook to
22 deprecated_ui_loop_hook.
23
fc0a2244
AC
242003-10-30 Andrew Cagney <cagney@redhat.com>
25
26 * simops.c: Replace "struct symbol_cache_entry" with "struct
27 bfd_symbol".
28
ea086965
AC
292003-06-22 Andrew Cagney <cagney@redhat.com>
30
31 * interp.c (xfer_mem): Simplify. Only do a single partial
32 transfer. Problem reported by Tom Rix.
33
f6684c31
AC
342003-05-07 Andrew Cagney <cagney@redhat.com>
35
36 * interp.c (sim_d10v_translate_addr): Add "regcache" parameter.
37 (sim_d10v_translate_imap_addr): Ditto.
38 (sim_d10v_translate_dmap_addr): Ditto.
39 (xfer_mem): Pass NULL regcache to sim_d10v_translate_addr.
40 (dmem_addr): Pass NULL regcache to sim_d10v_translate_dmap_addr.
41 (dmap_register, imap_register): Add "regcache" parameter.
42 (imem_addr): Pass NULL regcache to sim_d10v_translate_imap_addr.
43 (sim_fetch_register): Pass NULL regcache to imap_register and
44 dmap_register.
45
6b4a8935
AC
462003-02-27 Andrew Cagney <cagney@redhat.com>
47
48 * interp.c (sim_open, sim_create_inferior): Rename _bfd to bfd.
49
d25b1553
AC
502002-11-13 Andrew Cagney <cagney@redhat.com>
51
52 * simops.c: Include <string.h>.
53
57af9c8b
AC
542002-06-17 Andrew Cagney <cagney@redhat.com>
55
56 * d10v_sim.h (SET_PSW_BIT): Add cast to avoid inverting an enum.
57
c8cca39f
AC
582002-06-16 Andrew Cagney <ac131313@redhat.com>
59
60 * configure: Regenerated to track ../common/aclocal.m4 changes.
61
3d2957e6
TR
622002-06-13 Tom Rix <trix@redhat.com>
63
64 * interp.c (xfer_mem): Fix transfers across multiple segments.
65
3c25f8c7
AC
662002-06-09 Andrew Cagney <cagney@redhat.com>
67
68 * Makefile.in (INCLUDE): Update path to callback.h.
69 * gencode.c: Do not include "callback.h".
70 * d10v_sim.h: Include "gdb/callback.h" and "gdb/remote-sim.h".
71 * interp.c: Ditto.
72
983b727e
AC
732002-06-08 Andrew Cagney <cagney@redhat.com>
74
75 * interp.c (sim_fetch_register): Fix name of enum used in cast.
76 (sim_store_register): Ditto.
77
676ab6a0 782002-06-02 Elena Zannoni <ezannoni@redhat.com>
c7675842
EZ
79
80 From Jason Eckhardt <jle@redhat.com>
81 * d10v_sim.h (INC_ADDR): Correctly handle the case where MOD_E is
82 less than MOD_S (post-decrement).
83
18c0df9e
AC
842002-06-01 Andrew Cagney <ac131313@redhat.com>
85
86 * interp.c (sim_fetch_register, sim_store_register): Use a switch
87 statement and enums from "sim-d10v.h".
88
1aa5e64f
EZ
892002-05-28 Elena Zannoni <ezannoni@redhat.com>
90
91 * interp.c (sim_create_inferior): Add comment.
92
93 From Alan Matsuoka <alanm@redhat.com>:
94 From 2001-04-27 Jason Eckhardt <jle@cygnus.com>:
95 * simops.c (OP_4400): Output "mvf0f" instead of "mf0f".
96 (OP_4401): Output "mvf0t" instead of "mf0t".
97 (OP_460B): Do not output a flag register.
98 (OP_4609): Do not output a flag register.
99
b91b96f4
AC
1002002-05-23 Andrew Cagney <ac131313@redhat.com>
101
102 * Makefile.in (INCLUDE): Add "gdb/sim-d10v.h".
103 * interp.c: Include "gdb/sim-d10v.h" instead of "sim-d10v.h".
104
962b3ead
JM
1052001-08-01 John R. Moore <jmoore@redhat.com>
106
107 * interp.c (sim_create_inferior): Removed a hack that stated
108 it was setting r0/r1 with argc/argv.
109
d4424ada
C
1102001-04-15 J.T. Conklin <jtc@redback.com>
111
112 * Makefile.in (simops.o): Add simops.h to dependency list.
113
eb2d80b4
AC
114Tue May 23 21:39:23 2000 Andrew Cagney <cagney@b1.cygnus.com>
115
116 * configure: Regenerated to track ../common/aclocal.m4 changes.
117
27842f65
AC
118Tue Apr 18 16:26:41 2000 Andrew Cagney <cagney@b1.cygnus.com>
119
120 * interp.c (sim_resume): Deliver SIGILL.
121 (lookup_hash): Do not print SIGILL message.
122
baa7ae6f
AC
123Tue Feb 22 18:24:56 2000 Andrew Cagney <cagney@b1.cygnus.com>
124
125 * Makefile.in (SIM_EXTRA_CFLAGS): Define SIM_HAVE_ENVIRONMENT.
126 * interp.c (sim_set_trace): Replace sim_trace. Enable tracing.
127
ba744a4f
AC
128Tue Feb 8 17:41:12 2000 Andrew Cagney <cagney@b1.cygnus.com>
129
130 * d10v_sim.h (SIG_D10V_BUS): Define.
131
132 * simops.c (address_exception): Delete function.
133 (OP_30000000, OP_6401, OP_6001, OP_6000, OP_32010000, OP_31000000,
134 OP_6601, OP_6201, OP_6200, OP_33010000, OP_34000000, OP_6800,
135 OP_6C1F, OP_6801, OP_6C01, OP_36010000, OP_35000000, OP_6A00,
136 OP_6E1F, OP_6A01, OP_6E01, OP_37010000): Replace call to
137 address_exception with code that sets SIG_D10V_BUS.
138
139 * interp.c (sim_resume): When SIGBUS or SIGSEGV, deliver a bus
140 error to the simulator before resuming execution.
141 (sim_trace): Check stop reason and use that to determine sim_trace
142 return value.
143 (sim_stop_reason): For SIG_D10V_BUS return a SIGBUS / SIGSEGV
144 sigrc.
145
146Tue Jan 18 16:07:42 MST 2000 Diego Novillo <dnovillo@cygnus.com>
147
148 * interp.c (sim_create_inferior): Change internal initial value for
149 DMAP2 to 0x2000.
150
c3f6f71d
JM
151Mon Jan 3 02:06:07 2000 Andrew Cagney <cagney@b1.cygnus.com>
152
153 * interp.c (lookup_hash): Stop the update of the PC when there was
154 an illegal instruction exception.
155
156Mon Jan 3 00:14:33 2000 Andrew Cagney <cagney@b1.cygnus.com>
157
158 * simops.c (address_exception): New function.
159 (OP_30000000, OP_6401, OP_6001, OP_6000, OP_32010000, OP_31000000,
160 OP_6601, OP_6201, OP_6200, OP_33010000, OP_34000000, OP_6800,
161 OP_6C1F, OP_6801, OP_6C01, OP_36010000, OP_35000000, OP_6A00,
162 OP_6E1F, OP_6A01, OP_6E01, OP_37010000): For "ld", "ld2w", "st"
163 and "st2w" check that the address is aligned.
164
8ae7f924
FCE
1651999-12-30 Chandra Chavva <cchavva@cygnus.com>
166
167 * d10v_sim.h (INC_ADDR): Added code to assign
168 proper address for loads with predec operations.
169
c2d11a7d
JM
1701999-11-25 Nick Clifton <nickc@cygnus.com>
171
172 * simops.c (OP_4E0F): New function: Simulate new bit pattern for
173 cpfg instruction.
174
4ce44c66
JM
175Fri Oct 29 18:34:28 1999 Andrew Cagney <cagney@b1.cygnus.com>
176
177 * simops.c (move_to_cr): Don't allow user to set PSW.DM in either
178 DPSW and BPSW.
179
180Thu Oct 28 01:26:18 1999 Andrew Cagney <cagney@b1.cygnus.com>
181
182 * simops.c (OP_5F20): Use SET_HW_PSW when updating PSW.
183 (PSW_HW_MASK): Declare.
184
185 * d10v_sim.h (move_to_cr): Add ``psw_hw_p'' parameter.
186 (SET_CREG, SET_PSW_BIT): Update.
187 (SET_HW_CREG, SET_HW_PSW): Define.
188
189Sun Oct 24 21:38:04 1999 Andrew Cagney <cagney@b1.cygnus.com>
190
191 * interp.c (sim_d10v_translate_dmap_addr): Fix extraction of IOSP
192 for DMAP3.
193
194Sun Oct 24 16:04:16 1999 Andrew Cagney <cagney@b1.cygnus.com>
195
196 * interp.c (sim_d10v_translate_addr): New function.
197 (xfer_mem): Rewrite. Use sim_d10v_translate_addr.
198 (map_memory): Make INLINE.
199
200Sun Oct 24 13:45:19 1999 Andrew Cagney <cagney@b1.cygnus.com>
201
202 * interp.c (sim_d10v_translate_dmap_addr): New function.
203 (dmem_addr): Rewrite. Use sim_d10v_translate_dmap_addr. Change
204 offset parameter to type uint16.
205 * d10v_sim.h (dmem_addr): Update declaration.
206
207Sun Oct 24 13:07:31 1999 Andrew Cagney <cagney@b1.cygnus.com>
208
209 * interp.c (imap_register, set_imap_register, dmap_register,
210 set_imap_register): Use map_memory.
211 (DMAP): Update.
212 (sim_create_inferior): Initialize all DMAP registers. NOTE that
213 DMAP2, in internal memory mode, is set to 0x0000 and NOT
214 0x2000. This is consistent with the older d10v boards.
215
216Sun Oct 24 11:22:12 1999 Andrew Cagney <cagney@b1.cygnus.com>
217
218 * interp.c (sim_d10v_translate_imap_addr): New function.
219 (imem_addr): Rewrite. Use sim_d10v_translate_imap_addr.
220 (last_from, last_to): Declare.
221
222Sun Oct 24 01:21:56 1999 Andrew Cagney <cagney@b1.cygnus.com>
223
224 * d10v_sim.h (struct d10v_memory): Define. Support very long
225 memories.
226 (struct _state): Replace imem, dmem and umem by mem.
227 (IMAP_BLOCK_SIZE, DMAP_BLOCK_SIZE, SEGMENT_SIZE, IMEM_SEGMENTS,
228 DMEM_SEGMENTS, UMEM_SEGMENTS): Define.
229
230 * interp.c (map_memory): New function.
231 (sim_size, xfer_memory, imem_addr, dmem_addr): Update.
232 (UMEM_SEGMENTS): Moveed to "d10v_sim.h".
233 (IMEM_SIZEDMEM_SIZE): Delete.
234
235Sat Oct 23 20:06:58 1999 Andrew Cagney <cagney@b1.cygnus.com>
236
237 * interp.c: Include "sim-d10v.h".
238 (imap_register, set_imap_register, dmap_register,
239 set_dmap_register, spi_register, spu_register, set_spi_register,
240 set_spu_register): New functions.
241 (sim_create_inferior): Update.
242 (sim_fetch_register, sim_store_register): Rewrite. Use enums
243 defined in sim-d10v.h.
244
245 * d10v_sim.h (DEBUG_MEMORY): Define.
246 (IMAP0, IMAP1, DMAP, SET_IMAP0, SET_IMAP1, SET_DMAP): Delete.
247
248Sat Oct 23 18:41:18 1999 Andrew Cagney <cagney@b1.cygnus.com>
249
250 * interp.c (sim_open): Allow a debug value to be passed to the -t
251 option.
252 (lookup_hash): Don't exit on an illegal instruction.
253 (do_long, do_2_short, do_parallel): Check for failed instruction
254 lookup.
255
5c44784c
JM
256Mon Oct 18 18:03:24 MDT 1999 Diego Novillo <dnovillo@cygnus.com>
257
258 * simops.c (OP_3220): Fix trace output for illegal accumulator
4ce44c66 259 message.
5c44784c 260
c2c6d25f
JM
2611999-09-14 Nick Clifton <nickc@cygnus.com>
262
263 * simops.c: Disable setting of DM bit in PSW.
264
cff3e48b
JM
265Wed Sep 8 19:34:55 MDT 1999 Diego Novillo <dnovillo@cygnus.com>
266
267 * simops.c (op_types): Added new memory indirect type OP_MEMREF3.
268 (trace_input_func): Added support for OP_MEMREF3.
269 (OP_32010000): New instruction ld.
270 (OP_33010000): New instruction ld2w.
271 (OP_5209): New instruction sac.
272 (OP_4209): New instruction sachi.
273 (OP_3220): New instruction slae.
274 (OP_36010000): New instruction st.
275 (OP_37010000): New instruction st2w.
276
2771999-09-09 Stan Shebs <shebs@andros.cygnus.com>
278
279 * interp.c (old_segment_mapping): New global.
280 (xfer_mem): Change the default segment mapping to be the way
281 that Mitsubishi prefers, but use the previous mapping if
282 old_segment_mapping is true.
283 (sim_open): Add an option -oldseg to get the old mapping.
284 (sim_create_inferior): Init mapping registers based on the
285 value of old_segment_mapping.
286
d4f3574e
SS
2871999-09-07 Nick Clifton <nickc@cygnus.com>
288
289 * simops.c (OP_6601): Do not write back decremented address if
290 either of the destination registers was the same as the address
291 register.
292 (OP_6201): Do not write back incremented address if either of the
293 destination registers was the same as the address register.
294
295Thu Sep 2 18:15:53 1999 Andrew Cagney <cagney@b1.cygnus.com>
296
297 * configure: Regenerated to track ../common/aclocal.m4 changes.
298
cd0fc7c3
SS
2991999-05-08 Felix Lee <flee@cygnus.com>
300
301 * configure: Regenerated to track ../common/aclocal.m4 changes.
302
7a292a7a
SS
3031999-04-02 Keith Seitz <keiths@cygnus.com>
304
305 * interp.c (ui_loop_hook_counter): New global (when NEED_UI_LOOP_HOOK
306 defined).
307 (sim_resume): If the counter has expired, call the ui_loop_hook,
308 if defined.
309 (UI_LOOP_POLL_INTERVAL): Define. Used to tweak the frequency of
310 ui_loop_hook calls.
311 * Makefile.in (SIM_EXTRA_CFLAGS): Include NEED_UI_LOOP_HOOK.
312
313Wed Mar 10 19:32:13 1999 Nick Clifton <nickc@cygnus.com>
314
315 * simops.c: If load instruction with auto increment/decrement
316 addressing is used when the destination register is the same as
317 the address register, then ignore the auto increment/decrement.
318
319Wed Mar 10 19:32:13 1999 Martin M. Hunt <hunt@cygnus.com>
320
321 * simops.c (OP_5F00): Ifdef SYS_stat case because
322 not all systems have it defined.
323
c906108c
SS
3241999-01-26 Jason Molenda (jsm@bugshack.cygnus.com)
325
326 * simops.c (OP_5607): Correct saturation comparison/assignment.
327 (OP_1201, OP_1203, OP_17001200, OP_17001202,
328 OP_2A00, OP_2800, OP_2C00, OP_3200, OP_3201,
329 OP_1001, OP_1003, OP_17001000, OP_17001002): Ditto.
330
3311999-01-26 Jason Molenda (jsm@bugshack.cygnus.com)
332
333 * simops.c (OP_5605): Sign extend MIN32 and MAX32 before saturation
334 comparison.
335 (OP_5607): Ditto.
336 (OP_2A00): Ditto.
337 (OP_2800): Ditto.
338
3391999-01-13 Jason Molenda (jsm@bugshack.cygnus.com)
340
341 * simops.c (OP_1223): Sign extend MIN32 and MAX32 before saturation
342 comparison.
343
344Tue Nov 24 17:04:43 1998 Andrew Cagney <cagney@b1.cygnus.com>
345
346 * simops.c (sys/syscall.h): Include targ-vals.h instead.
347 (SYS_*): Replace with TARGET_SYS_*.
348
349 * Makefile.in: Add dependency on targ-vals.h.
350 (NL_TARGET): Define as NL_TARGET_d10v.
351
352Wed Sep 30 00:06:32 1998 Andrew Cagney <cagney@amy.cygnus.com>
353
354 * interp.c (xfer_mem): Missing break, instruction memory case
355 flowed into unified memory case.
356
357Wed Sep 30 10:14:18 1998 Nick Clifton <nickc@cygnus.com>
358
359 * simops.c: If load instruction with auto increment/decrement
360 addressing is used when the destination register is the same as
361 the address register, then ignore the auto increment/decrement.
362
363Tue Apr 28 18:33:31 1998 Geoffrey Noer <noer@cygnus.com>
364
365 * configure: Regenerated to track ../common/aclocal.m4 changes.
366
367Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
368
369 * configure: Regenerated to track ../common/aclocal.m4 changes.
370 * config.in: Ditto.
371
372Sun Apr 26 15:20:23 1998 Tom Tromey <tromey@cygnus.com>
373
374 * acconfig.h: New file.
375 * configure.in: Reverted change of Apr 24; use sinclude again.
376
377Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
378
379 * configure: Regenerated to track ../common/aclocal.m4 changes.
380 * config.in: Ditto.
381
382Fri Apr 24 11:20:06 1998 Tom Tromey <tromey@cygnus.com>
383
384 * configure.in: Don't call sinclude.
385
386Fri Apr 24 11:04:46 1998 Andrew Cagney <cagney@chook.cygnus.com>
387
388 * interp.c (struct hash_entry): OPCODE and MASK are unsigned.
389
390 * d10v_sim.h (remote-sim.h, sim-config.h): Include.
391
392Sat Apr 4 20:36:25 1998 Andrew Cagney <cagney@b1.cygnus.com>
393
394 * configure: Regenerated to track ../common/aclocal.m4 changes.
395
396Wed Apr 1 12:59:17 1998 Andrew Cagney <cagney@b1.cygnus.com>
397
398 * simops.c (trace_input_func): Use move_from_cr / CREGS to obtain
399 up-to-date CR value.
400 (OP_OP_1000000, add3): Trace inputs before performing add.
401 (OP_5F00, <*>): Trace input registers before making system call.
402 (OP_5F00, <kill>): Trace R0, R1 not REGn.
403 (OP_5F00, <getpid>): Always return 47.
404
405 * d10v_sim.h (SLOT, SLOT_NR, SLOT_PEND_MASK, SLOT_PEND,
406 SLOT_DISCARD, SLOT_FLUSH): Define. An implementation of write
407 back slots.
408 (struct _state): Add struct slot slot to global state variable.
409 (struct _state): Delete fields SM, EA, DB, DM, IE, RP, MD, FX, ST,
410 F0, F1, C from global State variable.
411 (struct _state): Add struct trace to global State variable.
412 (GPR, SET_GPR): Define. SET_GPR uses SLOT_PEND.
413 (PSW*, SET_PSW*): Define. SET_PSW* uses SET_CREG.
414 (CREG, SET_CREG, SET_*): Define. SET_CREG uses func move_to_cr.
415 (INC_ADDR): Re-implement. Use SET_GPR to update registers.
416 (JMP): Re-implement. Use SET_* to update registers.
417
418 * interp.c: Use new SET_* et.al. macros to fetch / store
419 registers.
420 (get_operands): Squirrel away trace values at start of each
421 operand decode.
422 (do_2_short): Flush pending writes before issuing second
423 instruction.
424 (sim_resume): Flush pending writes at end of instruction cycle.
425 (sim_fetch_register, sim_store_register, sim_create_inferior):
426 After scheduling updates to registers using SET_*, flush updates.
427 (sim_resume): Re-order handling of RPT/repeat and IBA/hbreak so
428 that each sets pc using SET_* and last SET_* eventually winds out.
429
430 * simops.c: Use new SET_* et.al. macros to fetch / store
431 registers.
432 (move_to_cr): Add MASK argument for selective update of CREG bits.
433 Re-implement using new SET_* macros.
434 (trace_output_func, trace_output): Delete. Replace with.
435 (do_trace_output_flush, trace_output_finish, trace_output_40,
436 trace_output_32, trace_output_16, trace_output_void,
437 trace_output_flag): New functions. Handle specific trace cases.
438 (OP_*): Re-write tracing to use new trace_output_* functions.
439 (OP_*): Re-write to use new SET_* et.al. macros.
440 (FUNC, PARM[1-4], RETVAL, RETVAL32): Redo definition.
441 (RETVAL_HIGH, RETVAL_LOW): Delete, use RETVAL32.
442
443Wed Apr 1 12:55:18 1998 Andrew Cagney <cagney@b1.cygnus.com>
444
445 * configure.in (SIM_AC_OPTION_WARNINGS): Add.
446 configure: Re-generate.
447
448Fri Mar 27 16:15:52 1998 Andrew Cagney <cagney@b1.cygnus.com>
449
450 * configure: Regenerated to track ../common/aclocal.m4 changes.
451
452Wed Mar 25 12:35:29 1998 Andrew Cagney <cagney@b1.cygnus.com>
453
454 * configure: Regenerated to track ../common/aclocal.m4 changes.
455
456Wed Mar 18 12:38:12 1998 Andrew Cagney <cagney@b1.cygnus.com>
457
458 * configure: Regenerated to track ../common/aclocal.m4 changes.
459
460Tue Feb 17 12:38:42 1998 Andrew Cagney <cagney@b1.cygnus.com>
461
462 * interp.c (sim_store_register, sim_fetch_register): Pass in
463 length parameter. Return -1.
464
465Mon Oct 27 14:43:33 1997 Fred Fish <fnf@cygnus.com>
466
467 * (dmem_addr): If address is illegal or in I/O space, signal a bus
468 error. Allocate unified memory on demand. Fix DMEM address
469 calculations.
470
471Mon Feb 16 10:27:53 1998 Andrew Cagney <cagney@b1.cygnus.com>
472
473 * simops.c (OP_5F20): Implement "dbt".
474 (OP_5F60): Implement "rtd".
475
476 * d10v_sim.h (DPC_CR): Define enum.
477 (DBT_VECTOR_START): Define
478 (DPSW, DPC): Define.
479
480Fri Feb 13 15:15:58 1998 Andrew Cagney <cagney@b1.cygnus.com>
481
482 * simops.c (move_to_cr): Sync regs[SP_IDX] with State.sp according
483 to PSW:SM.
484
485 * d10v_sim.h (struct _state): Add sp, as holding area for SPI/SPU.
486 (SP_IDX): Define.
487
488Wed Feb 11 16:53:49 1998 Andrew Cagney <cagney@b1.cygnus.com>
489
490 * simops.c (OP_5F00): Call error instead of abort for unknown
491 syscalls.
492
493 * d10v_sim.h (enum): Define DPSW_CR.
494
495 * simops.c (move_to_cr): Mask out hardwired zero bits in DPSW.
496
497Tue Feb 10 18:28:38 1998 Andrew Cagney <cagney@b1.cygnus.com>
498
499 * interp.c (sim_write_phys): Delete.
500 (sim_load): Call sim_load_file with sim_write and LMA.
501
502Mon Feb 9 12:05:01 1998 Andrew Cagney <cagney@b1.cygnus.com>
503
504 * interp.c: Rewrite xfer_mem so that it translates addresses as -
505 0x00... - DMAP translated memory, 0x01... IMAP translated memory,
506 0x10... - on-chip data, 0x11... - on-chip insn, 0x12... - unified
507 memory.
508 (pc_addr): Delete.
509 (imem_addr): New function - translate IMEM address.
510 (sim_resume): Use imem_addr to translate insn address, abort if
511 translation failed.
512 (sim_create_inferior): Write ARGV to memory using sim_write. Pass
513 argc/argv using r0/r1 not r2/r3.
514 (sim_size): Do not initialize IMAP/DMAP here.
515 (sim_open): Call sim_create_inferior and sim_size to initialize
516 the system.
517 (sim_create_inferior): Initialize IMAP/DMAP to hardware reset
518 defaults.
519 (init_system): Delete.
520 (xfer_mem, sim_fetch_register, sim_store_register): Do not call
521 init_system.
522 (decode_pc): Check prog_bfd is defined before looking up .text
523 section.
524
525Sun Feb 1 16:47:51 1998 Andrew Cagney <cagney@b1.cygnus.com>
526
527 * configure: Regenerated to track ../common/aclocal.m4 changes.
528
529Sat Jan 31 18:15:41 1998 Andrew Cagney <cagney@b1.cygnus.com>
530
531 * configure: Regenerated to track ../common/aclocal.m4 changes.
532
533Sun Jan 25 22:23:01 1998 Michael Meissner <meissner@cygnus.com>
534
535 * interp.c (sim_stop_reason): Exit status is now in r0, not r2.
536
537Sat Jan 24 19:00:30 1998 Michael Meissner <meissner@cygnus.com>
538
539 * d10v_sim.h (DEBUG_TRAP): New debug flag.
540
541 * simops.c (OP_5F00): If DEBUG_TRAP is on, turn traps 0-14 into
542 printing the registers.
543
544Thu Jan 22 17:54:01 1998 Michael Meissner <meissner@cygnus.com>
545
546 * simops.c (op_types): New ABI, args are r0..r3, system call # is
547 in r4.
548 (trace_{in,out}put_func): Ditto.
549 (OP_4900): Ditto.
550 (OP_24800000): Ditto.
551 (OP_4D00): Ditto.
552 (OP_5F00): Ditto.
553
554Thu Jan 22 14:30:36 1998 Fred Fish <fnf@cygnus.com>
555
556 * interp.c (UMEM_SEGMENTS): New define, set to 128.
557 (sim_size): Use UMEM_SEGMENTS rather than hardwired constant.
558 (sim_close): Reset prog_bfd to NULL after closing it. Also
559 reset prog_bfd_was_opened_p after closing prog_bfd.
560 (sim_load): Reset prog_bfd_was_opened_p after closing prog_bfd.
561 (sim_create_inferior): Get start address from abfd not prog_bfd.
562 (xfer_mem): Do bounds checking on addresses and return zero length
563 read/write on bad addresses, rather than aborting. Prepare to
564 be able to handle xfers that cross segment boundaries, but not
565 yet implemented. Only emit debug message when d10v_debug is
566 set as well as DEBUG being defined.
567
568Mon Jan 19 22:26:29 1998 Doug Evans <devans@seba>
569
570 * configure: Regenerated to track ../common/aclocal.m4 changes.
571
572Mon Dec 15 23:17:11 1997 Andrew Cagney <cagney@b1.cygnus.com>
573
574 * configure: Regenerated to track ../common/aclocal.m4 changes.
575 * config.in: Ditto.
576
577Tue Dec 9 10:28:31 1997 Andrew Cagney <cagney@b1.cygnus.com>
578
579 * d10v_sim.h (RPT_S): Index cregs with RPT_S_CR not RPT_E_CR.
580 (BPSW): Ditto for BPSW_CR and not PSW_CR.
581
582 * simops.c (OP_5F40): JMP to BPC instead of assigning PC directly.
583
584Mon Dec 8 12:58:33 1997 Andrew Cagney <cagney@b1.cygnus.com>
585
586 * simops.c (OP_5F00): From Martin Hunt <hunt@cygnus.com>. Change
587 reserved trap from 0 to 15. Add trap emulation code for 0-14.
588
589 * interp.c (sim_resume): From Martin Hunt <hunt@cygnus.com>. Check
590 IBA for SDBT.
591
592 * d10v_sim.h (AE_VECTOR_START, RIE_VECTOR_START,
593 SDBT_VECTOR_START, TRAP_VECTOR_START): Define.
594
595 * simops.c (OP_5F00): For "trap", mask out all but SM bit in PSW,
596 use move_to_cr.
597 (OP_5F00): For "trap", update BPSW with move_to_cr.
598
599Fri Dec 5 15:31:17 1997 Andrew Cagney <cagney@b1.cygnus.com>
600
601 * d10v_sim.h (enum): Enumerate CR register names.
602 (enum): Enumerate PSW bit values.
603 (PSW): Obtain value uing move_from_cr.
604 (MOD_S, MOD_E, BPSW): Make r-values.
605 (move_from_cr, move_to_cr): Declare functions.
606
607 * interp.c (sim_fetch_register, sim_store_register): Use
608 move_from_cr and move_to_cr for CR register transfers.
609
610 * simops.c (move_from_cr, move_to_cr): New functions.
611 (OP_5F40): Move BPSW to PSW using move_to_cr and move_from_cr.
612 (OP_5600): For "mvtc", use function move_to_cr.
613 (OP_5200): For "mvfc", use function move_from_cr.
614
615Fri Dec 5 13:33:14 1997 Andrew Cagney <cagney@b1.cygnus.com>
616
617 * simops.c (OP_5600): For "mvtc" MOD_E and MOD_S, ensure that the
618 LSbit is zero.
619
620Thu Dec 4 09:21:05 1997 Doug Evans <devans@canuck.cygnus.com>
621
622 * configure: Regenerated to track ../common/aclocal.m4 changes.
623
624Thu Dec 4 16:51:02 1997 Andrew Cagney <cagney@b1.cygnus.com>
625
626 * d10v_sim.h (struct _state): Add DM - PSW debug mask.
627
628 * simops.c (OP_5600): For "mvtc", save PSW.DM.
629 (OP_5200): Ditto for "mvfc".
630
631Wed Dec 3 17:27:06 1997 Andrew Cagney <cagney@b1.cygnus.com>
632
633 * d10v_sim.h (SEXT56): Define.
634
635 * simops.c (OP_4201): For "rac", sign extend 56 bit value before
636 it is shifted.
637
638 * d10v_sim.h (MAX32, MIN32, MASK32, MASK40): Re-define using
639 SIGNED64 macro.
640
641Tue Dec 2 15:38:34 1997 Fred Fish <fnf@cygnus.com>
642
643 * interp.c (sim_resume): Call do_2_short with LEFT_FIRST or
644 RIGHT_FIRST, as appropriate, instead of hardcoded ints that
645 don't match enum values.
646
647Tue Dec 2 15:01:08 1997 Andrew Cagney <cagney@b1.cygnus.com>
648
649 * simops.c (OP_3A00): For "macu", perform multiply stage using 32
650 bit rather than 16 bit precision.
651 (OP_3C00): For "mulxu", store unsigned product in ACC.
652 (OP_3800): For "msbu", subtract unsigned product from ACC,
653 (OP_0): For "sub", compute carry by comparing inputs.
654
655Tue Dec 2 11:04:37 1997 Andrew Cagney <cagney@b1.cygnus.com>
656
657 * simops.c (OP_1000): For "sub2w", compute carry by comparing
658 inputs.
659
660Mon Nov 17 20:57:21 1997 Andrew Cagney <cagney@b1.cygnus.com>
661
662 * simops.c (OP_1): Use 32 bit unsigned arithmetic for subtract,
663 carry indicated by value > 0xffff.
664
665Fri Nov 14 12:51:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
666
667 * interp.c (sim_resume): Don't set up SIGINT handler using signal,
668 handled by client.
669 (sim_resume): Fix race condition of a direct assignment to
670 stop_simulator, conditionally call sim_stop.
671 (sim_stop_reason): Check stop_simulator returning SIGINT. Clear
672 stop_simulator ready for next sim_resume call.
673 (sim_ctrl_c): Delete function.
674
675Thu Nov 13 19:29:34 1997 Andrew Cagney <cagney@b1.cygnus.com>
676
677 * interp.c (sim_resume): For "REP", only check/update the PC when
678 a branch instruction has not been executed.
679
680Mon Nov 10 17:50:18 1997 Andrew Cagney <cagney@b1.cygnus.com>
681
682 * simops.c (OP_4201): "rachi". Sign extend bit 40 of ACC. Sign
683 extend bit 44 all constants.
684 (OP_4201): Replace GCC specific 0x..LL with SIGNED64 macro.
685
686Fri Oct 24 10:26:29 1997 Andrew Cagney <cagney@b1.cygnus.com>
687
688 * d10v_sim.h: Include sim-types.h.
689 (uint8, in816, uiny16, int32, uint32, int64, uint64): Typedef
690 using unsigned8 et.al. from sim-types.h.
691 (SEXT32, SEXT40, SEXT44, SEXT60): Replace GCC specific 0x..LL with
692 SIGNED64 macro.
693
694Wed Oct 22 14:43:00 1997 Andrew Cagney <cagney@b1.cygnus.com>
695
696 * interp.c (sim_write_phys): New function, write to physical
697 instead of virtual memory.
698
699 * interp.c (sim_load): Pass lma_p and sim_write_phys to
700 sim_load_file.
701
702Mon Oct 13 10:55:07 1997 Fred Fish <cygnus.com>
703
704 * simops.c (OP_6A01): Change OP_POSTDEC to OP_POSTINC and move
705 exception generation code to OP_6E01.
706 (OP_6E01): Change OP_POSTINC to OP_POSTDEC and insert exception
707 generation code.
708
709Sat Oct 11 09:02:08 1997 Fred Fish <fnf@cygnus.com>
710
711 * simops.c (OP_6401): postdecrement on r15 is OK, remove exception.
712 (OP_6601): Ditto.
713
714Fri Oct 3 09:28:00 1997 Andrew Cagney <cagney@b1.cygnus.com>
715
716 * configure: Regenerated to track ../common/aclocal.m4 changes.
717
718Sat Sep 27 12:51:34 1997 Fred Fish <fnf@cygnus.com>
719
720 * interp.c (pc_addr): Discard upper bit(s) of PC in case
721 IMAP1 selects unified memory.
722 * d10v_sim.h (INC_ADDR): Align MOD_E to increment before testing
723 for end condition.
724
725Wed Sep 24 17:38:57 1997 Andrew Cagney <cagney@b1.cygnus.com>
726
727 * configure: Regenerated to track ../common/aclocal.m4 changes.
728
729Tue Sep 23 11:04:38 1997 Andrew Cagney <cagney@b1.cygnus.com>
730
731 * configure: Regenerated to track ../common/aclocal.m4 changes.
732
733Mon Sep 22 11:46:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
734
735 * configure: Regenerated to track ../common/aclocal.m4 changes.
736
737Fri Sep 19 17:45:25 1997 Andrew Cagney <cagney@b1.cygnus.com>
738
739 * configure: Regenerated to track ../common/aclocal.m4 changes.
740
741Mon Sep 15 17:36:15 1997 Andrew Cagney <cagney@b1.cygnus.com>
742
743 * configure: Regenerated to track ../common/aclocal.m4 changes.
744
745Wed Sep 10 22:30:24 1997 Martin M. Hunt <hunt@cygnus.com>
746
747 * interp.c (sim_resume): Increment PC at end of rep
748 loop.
749
750 * simops.c (OP_4201): Fix rachi instruction.
751
752Thu Sep 4 17:21:23 1997 Doug Evans <dje@seba>
753
754 * configure: Regenerated to track ../common/aclocal.m4 changes.
755
756Wed Aug 27 18:13:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
757
758 * configure: Regenerated to track ../common/aclocal.m4 changes.
759 * config.in: Ditto.
760
761Tue Aug 26 10:37:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
762
763 * interp.c (sim_kill): Delete.
764 (sim_create_inferior): Add ABFD argument.
765 (sim_load): Move setting of PC from here.
766 (sim_create_inferior): To here.
767 (start_address): Delete variable.
768
769Mon Aug 25 17:50:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
770
771 * configure: Regenerated to track ../common/aclocal.m4 changes.
772 * config.in: Ditto.
773
774Mon Aug 25 15:39:29 1997 Andrew Cagney <cagney@b1.cygnus.com>
775
776 * interp.c (sim_open): Add ABFD argument.
777
778Tue May 20 10:14:45 1997 Andrew Cagney <cagney@b1.cygnus.com>
779
780 * interp.c (sim_open): Add callback argument.
781 (sim_set_callbacks): Remove SIM_DESC argument.
782
783Thu Apr 24 00:39:51 1997 Doug Evans <dje@canuck.cygnus.com>
784
785 * configure: Regenerated to track ../common/aclocal.m4 changes.
786
787Tue Apr 22 10:29:23 1997 Doug Evans <dje@canuck.cygnus.com>
788
789 * interp.c (sim_open): Undo patch to add -E support.
790
791Fri Apr 18 13:39:01 1997 Andrew Cagney <cagney@b1.cygnus.com>
792
793 * interp.c (sim_stop): New function.
794
795Thu Apr 17 02:42:00 1997 Doug Evans <dje@canuck.cygnus.com>
796
797 * Makefile.in (SIM_OBJS): Add sim-load.o.
798 * d10v_sim.h (exec_bfd): Rename to prog_bfd.
799 * interp.c: #include bfd.h.
800 (myname, sim_kind, start_address): New static locals.
801 (prog_bfd_was_opened_p, prog_bfd): New static locals.
802 (decode_pc): Update to use prog_bfd.
803 (sim_open): Set sim_kind, myname. Ignore -E arg.
804 (sim_close): Close prog_bfd if simulator opened it.
805 (sim_create_inferior): Return SIM_RC. Delete arg start_address.
806 (sim_load): Return SIM_RC. New arg abfd. Set start address from bfd.
807 Call sim_load_file to load file into simulator.
808 * simops.c (trace_input_func): exec_bfd renamed to prog_bfd.
809
810Wed Apr 16 16:12:03 1997 Andrew Cagney <cagney@b1.cygnus.com>
811
812 * simops.c (OP_5F00): Only provide system calls SYS_execv,
813 SYS_wait, SYS_wait, SYS_utime, SYS_time if defined by the host.
814
815Mon Apr 7 15:45:02 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
816
817 * configure: Regenerated to track ../common/aclocal.m4 changes.
818 * config.in: Ditto.
819
820Wed Apr 2 15:06:28 1997 Doug Evans <dje@canuck.cygnus.com>
821
822 * interp.c (sim_open): New arg `kind'.
823
824 * configure: Regenerated to track ../common/aclocal.m4 changes.
825
826Wed Apr 2 14:34:19 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
827
828 * configure: Regenerated to track ../common/aclocal.m4 changes.
829
830Mon Mar 17 15:10:07 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
831
832 * configure: Re-generate.
833
834Fri Mar 14 10:34:11 1997 Michael Meissner <meissner@cygnus.com>
835
836 * configure: Regenerate to track ../common/aclocal.m4 changes.
837
838 * simops.c (OP_5F00): Remove old traps 1-3. Make trap 15 the same
839 as trap 0, which will be deprecated. Only set errno, if an error
840 in fact was returned.
841
842Thu Mar 13 12:41:20 1997 Doug Evans <dje@canuck.cygnus.com>
843
844 * interp.c: Delete redundant prototypes of sim_foo fns.
845 (sim_open): New SIM_DESC result. Argument is now in argv form.
846 (other sim_*): New SIM_DESC argument.
847
848Thu Mar 13 10:29:04 1997 Michael Meissner <meissner@cygnus.com>
849
850 * simops.c (trace_{input,output}_func): Call flush_stdout from the
851 callback functions.
852 (OP_5F00): Ditto.
853 (OP_6{4,6,C,A}01): Test for post decrement on the stack pointer.
854 (OP_{1200,1000000,201,5FE0,1003,17001002}): Fix problems in
855 setting the carry bit after an add or a subtract.
856
857Wed Feb 12 16:04:15 1997 Michael Meissner <meissner@cygnus.com>
858
859 * simops.c (OP_{1403,15002A02,3{0,4}0{0,1}}): Only use the bottom
860 40 bits of accumulators. Sign/zero extend as appropriate.
861
862Tue Feb 4 13:33:30 1997 Doug Evans <dje@canuck.cygnus.com>
863
864 * Makefile.in (@COMMON_MAKEFILE_FRAG): Use
865 COMMON_{PRE,POST}_CONFIG_FRAG instead.
866 * configure.in: sinclude ../common/aclocal.m4.
867 * configure: Regenerated.
868
869Thu Jan 23 11:46:23 1997 Stu Grossman (grossman@critters.cygnus.com)
870
871 * configure configure.in Makefile.in: Update to new configure
872 scheme which is more compatible with WinGDB builds.
873 * configure.in: Improve comment on how to run autoconf.
874 * configure: Re-run autoconf to get new ../common/aclocal.m4.
875 * Makefile.in: Use autoconf substitution to install common
876 makefile fragment.
877
878Fri Dec 27 22:54:05 1996 Angela Marie Thomas (angela@cygnus.com)
879
880 * gencode.c: patch to not #include "d10v_sim.h" which
881 unecessarily includes bfd.h and causes wingdb configure
882 to fail.
883
884Mon Dec 16 13:39:03 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
885
886 * interp.c (xfer_mem): Change unified memory to 0x0.
887
888Thu Nov 28 20:42:56 1996 Michael Meissner <meissner@tiktok.cygnus.com>
889
890 * simops.c (OP_3E01): Fix tracing information.
891 (OP_300{0,1}): Do not propigate sign.
892
893Mon Nov 25 19:47:40 1996 Doug Evans <dje@canuck.cygnus.com>
894
895 * config.in (WORDS_BIGENDIAN): Add.
896 * configure: Regenerated.
897 * d10v_sim.h: #include "config.h"
898
899Sat Nov 23 09:34:50 1996 Michael Meissner <meissner@tiktok.cygnus.com>
900
901 * gencode.c (write_opcodes): Eliminate warnings when generated
902 table.c is compiled.
903
904Wed Nov 20 19:41:40 1996 Michael Meissner <meissner@tiktok.cygnus.com>
905
906 * interp.c (sim_open): Cast result of calloc, and make sure NULL
907 was not returned.
908 (dmem_addr): If address is illegal or in I/O space, signal a bus
909 error.
910 (pc_addr): Signal bus error, not illegal instruction for bogus
911 pc.
912
913Wed Nov 20 01:23:03 1996 Doug Evans <dje@canuck.cygnus.com>
914
915 * Makefile.in: Delete all stuff moved to ../common/Make-common.in.
916 (SIM_OBJS,SIM_EXTRA_CFLAGS,SIM_EXTRA_CLEAN): Define.
917 * configure.in: Simplify using macros in ../common/aclocal.m4.
918 Call AC_CHECK_HEADERS(unistd.h).
919 * configure: Regenerated.
920 * config.in: New file.
921 * interp.c: #include "callback.h".
922 * simops.c: #include "config.h". #include <unistd.h> if present.
923
924Fri Nov 8 16:19:55 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
925
926 * d10v-sim.h (simops): Add flag is_long.
927 (State): Add pc_changed. Instructions which update the PC should
928 use the JMP macro which sets this.
929 (JMP): New macro. Sets the PC and the pc_changed flag.
930
931 * gencode.c (write_opcodes): Add is_long field.
932
933 * interp.c (lookup_hash): If we blindly apply a short opcode's mask
934 to a long opcode we could get a false match. Check the opcode size.
935 (hash): Add a size field to the hash table.
936 (sim_open): Initialize size field in hash table.
937 (sim_resume): Change to logic for setting the PC. Used to increment the
938 PC if it had not been changed. This didn't allow single-instruction loops.
939 Now checks the flag State.pc_changed. Also now stops when ^C is received.
940 (dmem_addr): Fix translation of data segments to unified memory.
941 (sim_ctrl_c): New function. When ^C is received, set stop_simulator flag.
942
943 * simops.c: Changed all branch and jump instructions to use new JMP macro.
944 (OP_20000000): Corrected trace information to show this is a ldi.l, not
945 a ldi.s instruction.
946
947Thu Oct 31 19:13:55 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
948
949 * interp.c (sim_fetch_register, sim_store_register): Fix bug where
950 updating the accumulators was overwriting other parts of the global
951 State variable.
952
953Wed Oct 30 17:35:14 1996 Michael Meissner <meissner@tiktok.cygnus.com>
954
955 * interp.c (bfd.h) Don't include it here any more.
956 (text{,_start,_end}): Move here from simops.c and make extern.
957 (decode_pc): New function to return the PC as an address that the
958 debugger can use.
959 (dmem_addr): Print decoded PC in error message.
960 (pc_addr): Ditto.
961
962 * simops.c (bfd.h) Don't include it here any more.
963 (text{,_start,_end}): Move to simops.c.
964 (trace_input_func): Move decoding of PC, and looking up .text
965 start to decode_pc.
966
967 * d10v_sim.h (bfd.h): Include it here.
968 (text{,_start,_end}): Add external declarations.
969 (exec_bfd): Ditto.
970 (decode_pc): Ditto.
971
972Tue Oct 29 12:13:52 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
973
974 * interp.c (sim_size): Now allocates unified memory for imap segments
975 0,1,2, and 127. Initializes imap0 and imap1 to 0x1000. Initializes dmap to 0.
976 (sim_write): Just call xfer_mem().
977 (sim_read): Just call xfer_mem().
978 (xfer_mem): New function. Does appropriate memory mapping and copies bytes.
979 (dmem_addr): New function. Reads dmap register and translates data
980 addresses to local addresses.
981 (pc_addr): New function. Reads imap register and computes local address
982 corresponding to contents of the PC.
983 (sim_resume): Change to use pc_addr().
984 (sim_create_inferior): Change reinitialization code. Also reinitializes
985 imap[01] and dmap.
986 (sim_fetch_register): Add fake registers 32,33,34 for imap0, imap1, and dmap.
987 (sim_store_register): Add fake registers 32,33,34 for imap0, imap1, and dmap.
988
989 * simops.c (MEMPTR): Redefine to use dmem_addr().
990 (OP_5F00): Replace references to STate.imem with dmem_addr().
991
992 * d10v-sim.h (State): Remove mem_min and mem_max. Add umem[128].
993 (RB,SW,RW,SLW,RLW): Redefine to use dmem_addr().
994 (IMAP0,IMAP1,DMAP,SET_IMAP,SET_IMAP1,SET_DMAP): Define.
995
996Tue Oct 22 15:22:33 1996 Michael Meissner <meissner@tiktok.cygnus.com>
997
998 * d10v_sim.h (_ins_type): Reorganize, so that we can provide
999 better statistics, like not counting NOPS as parallel
1000 instructions, and printing total cycles.
1001 (ins_type_counters): Make unsigned long.
1002 (left_nops,right_nops): Fold into ins_type_counters.
1003
1004 * simops.c (trace_input_func): Print new instruction types.
1005 Handle OP_R2R3 as input types.
1006 (OP_{38000000,7000}): Correctly sign extend bytes.
1007 (OP_5E00): Don't count NOPs as parallel instructions.
1008 (OP_460B): Remove unused variable.
1009 (OP_5F00): Ditto.
1010
1011 * interp.c (ins_type_counters): Make unsigned long.
1012 (left_nops,right_nops): Delete.
1013 (most functions): Add prototypes.
1014 (INLINE): If GCC and optimize define as __inline__.
1015 ({,lookup_}hash,get_operands): Declare as INLINE.
1016 (do_parallel): Count conditional operations.
1017 (add_commas): New function, to add commas every 3 digits.
1018 (sim_size): Call add_commas to print numbers.
1019 (sim_{open,resume}): Delete unused variables.
1020 (sim_info): Provide better statistics.
1021 (sim_read): Add int return type.
1022
1023Mon Oct 21 16:16:26 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
1024
1025 * interp.c (sim_resume): Change the way single-stepping and exceptions
1026 are handled so single-stepping works again.
1027
1028Thu Oct 17 12:24:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1029
1030 * endian.c: Optimize simulated loads/stores on x86, AIX, and big
1031 endian hosts.
1032
1033 * configure.in (--enable-sim-bswap): New switch to enable using
1034 the BSWAP instruction on x86's.
1035 * configure: Regenerate.
1036
1037 * Makefile.in ({SWAP,CONFIG}_CFLAGS): Add --enable-sim-bswap
1038 support.
1039
1040Wed Oct 16 13:50:06 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1041
1042 * endian.c: New file. Move endian functions here from interp.c.
1043 Optimize code, and make it work as either inline functions or as a
1044 separate file.
1045
1046 * interp.c: Move endian functions from here to endian.c.
1047
1048 * Makefile.in (INCLUDE): Add endian.c.
1049 (run,libsim.a): Add dependency on endian.o.
1050 (endian.o): Add dependency.
1051
1052 * d10v_sim.h (read/write support): Always go through the machine
1053 independent endian functions. If compiling with GCC and
1054 optimizing, include endian.c so the endian functions are inlined.
1055
1056 * simops.c (OP_5F00): Correct tracing of accumulators.
1057
1058Tue Oct 15 10:57:50 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1059
1060 * simops.c (OP_5F00): Add support for getpid, kill system calls.
1061
1062 * interp.c (do_{2_short,parallel}): If an exception is raised,
1063 don't execute the second instruction.
1064
1065Sat Oct 12 22:17:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1066
1067 * simops.c (OP_{31000000,6601,6201,6200}): Store address in a
1068 temporary in case the register is overriden when loading.
1069 (OP_6200): Output type is OP_DREG for tracing.
1070
1071Fri Oct 4 23:46:18 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1072
1073 * d10v_sim.h (struct _state): Add mem_{min,max} fields.
1074
1075 * interp.c (sim_size): Initialize mem_{min,max} fields.
1076 (sim_write): Update mem_{min,max} fields.
1077 (sim_resume): If PC is not in the minimum/maximum memory range,
1078 abort.
1079 (sim_create_inferior): Preserve mem_{min,max} fields.
1080
1081Fri Sep 27 13:11:58 1996 Mark Alexander <marka@cygnus.com>
1082
1083 * simops.c (OP_5F00): Add support for time() system call.
1084
1085Wed Sep 25 16:31:41 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1086
1087 * simops.c (OP_{6E01,6A01,6E1F,6A00}): Print both words being
1088 stored if tracing.
1089 (OP_5F00,trace_{in,out}put_func): Add finer grain tracing for
1090 system calls.
1091
1092Mon Sep 23 17:55:30 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1093
1094 * simops.c (op_types): Add OP_{CONSTANT8,R2,R3}.
1095 (trace_input_func): Add support for OP_{CONSTANT8,R2,R3}.
1096 (OP_{4900,24800000,4800,4A00,4B00,4D00,4C00}): Add OP_R2 and OP_R3
1097 to call/subroutine returns to trace the first two arguments and
1098 the return value. For small jumps, use CONSTANT8, not CONSTANT16.
1099
1100Fri Sep 20 15:36:45 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
1101
1102 * interp.c (sim_create_inferior): Reinitialize State every time
1103 sim_create_inferior() is called.
1104
1105Thu Sep 19 21:38:20 1996 Michael Meissner <meissner@wogglebug.ziplink.net>
1106
1107 * simops.c (OP_{401,2000000,601,3000000,23000000}): Get sign right
1108 on comparisons.
1109 (OP_401): Fix tracing information.
1110
1111Thu Sep 19 10:30:22 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1112
1113 * simops.c (SIZE_{PC,LINE_NUMBER}): New default sizes for output.
1114 (trace_input_func): Use them.
1115 (trace_input_func): Make sure there is a trailing space after the
1116 instruction.
1117 (OP_6200): Fix tracing info.
1118
1119 * Makefile.in (run): Add dependencies on libbfd.a and
1120 libiberity.a.
1121
1122Wed Sep 18 09:13:25 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1123
1124 * d10v_sim.h (DEBUG_INSTRUCTION): New debug value to include line
1125 numbers and function names in debug trace.
1126 (DEBUG): If not defined, set to DEBUG_TRACE, DEBUG_VALUES, and
1127 DEBUG_LINE_NUMBER.
1128 (SIG_D10V_{STOP,EXIT}): Values to represent the stop instruction
1129 and exit system call trap being executed.
1130
1131 * interp.c (sim_stop_reason): Set exit code correctly for stop
1132 instruction and exit system call trap.
1133
1134 * configure.in (--enable-sim-cflags): Remove trace case.
1135 (--enable-sim-debug): New switch to set the debug values.
1136 * configure: Regenerate.
1137
1138 * simops.c (trace_{input,output}_func): Rename from
1139 trace_{input,output}.
1140 (trace_{input,output}): Call trace_{input,output}_func if
1141 d10v_debug is non-zero.
1142 (SIZE_INSTRUCTION): Cut down to 8.
1143 (SIZE_OPERANDS): Cut down to 18.
1144 (SIZE_LOCATION): New value for size of line number, function name
1145 field.
1146 (init_text_p,text{,_start,_end}): New static variables for
1147 printing line number and function name.
1148 (exec_bfd): New external that run.c sets.
1149 (trace_input_func): Print line number and function name if
1150 available and if desired.
1151 (OP_4E09): Don't print out DBT message.
1152 (OP_5FE0): Set exception field to SIG_D10V_STOP.
1153 (OP_5F00): Set exception field to SIG_D10V_EXIT.
1154
1155Sat Sep 14 22:18:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1156
1157 * interp.c (do_2_short): If the instruction encodes jump->ins,
1158 don't do the second instruction if the jump succeeds.
1159
1160Fri Sep 13 22:35:19 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1161
1162 * simops.c (OP_5F00): Use unknown traps to print all GPRs,
1163 accumulators, PC, and F0/F1/C flags.
1164
1165Thu Sep 12 12:50:11 1996 Mark Alexander <marka@cygnus.com>
1166
1167 * simops.c (OP_5F00): Fix problems with system calls.
1168
1169Thu Sep 12 12:19:28 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1170
1171 * simops.c (OP_5F00): Correct tracing information for trap.
1172
1173Wed Sep 11 18:55:50 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1174
1175 * Makefile.in (CSEARCH): Correctly find opcodes directory.
1176
1177Mon Sep 9 13:27:26 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1178
1179 * simops.c (trace_output): Properly align accumulator output.
1180 (OP_3{0,2,4}00): Properly parenthesize test expression. Add error
1181 if shift count is too high.
1182 (OP_4E{00,02,04,20,22,40,42}): Make tests agree with book.
1183 (OP_4E09): Make cpfg properly trace the input flags.
1184 (op_types): Add OP_FLAG_OUTPUT.
1185 (trace_{input,output}): Support OP_FLAG_OUTPUT.
1186 (OP_31000000): This ld2w varient is a 16-bit memory reference, not
1187 an 8-bit memory reference instruction for tracing purposes.
1188 (OP_201): Addi needs to set the carry.
1189
1190Fri Sep 6 17:56:17 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
1191
1192 * simops.c (OP_2600, OP_2601): Changed min and max comparisons
1193 to use signed register values.
1194
1195Wed Sep 4 11:35:17 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1196
1197 * d10v_sim.h (DEBUG_*): Add bit flags for controlling debug
1198 output.
1199 (_ins_type): New enumeration to specify which container an
1200 instruction is in, and whether it is part of a parallel operation.
1201 (_state): Add ins_type field.
1202 ({,u}int{8,16,32,64}): Use limits.h to size the appropriate types.
1203 (ins_type_counters): Counters for the various instruction types.
1204 ({left,right}_nops): Counters for the number of nops in each
1205 container.
1206 (d10v_debug): New variable to indicate whether debugging is turned
1207 on.
1208
1209 * simops.c: (all functions): Change all #ifdef DEBUG code so that
1210 the input and output values can be traced, along with the
1211 instruction type. Make the -t option enable tracing.
1212 (all functions): Change printf calls to use the printf_filtered
1213 function in the callback table.
1214
1215 * interp.c (_leftright): New enumeration to say whether 2 short
1216 instructions are done left first or right first.
1217 (do_{long,2_short,parallel}): Indicate in the machine state which
1218 type of instruction this is. Count each of the types of
1219 instructions executed.
1220 (sim_size): Only print the memory sizes if DEBUG_MEMSIZE debug
1221 flag is set.
1222 (sim_resume): Pass left/right indication to do_2_short.
1223 (all functions): Change printf calls to use the printf_filtered
1224 function in the callback table.
1225 (sim_trace): Turn on debug flag if DEBUG was defined, and call
1226 sim_resume.
1227 (sim_info): Print out statistics on instructions.
1228 (sim_{trace,create_inferior}): Eliminate extraneous output unless
1229 debugging.
1230 (sim_open): If args == -t and DEBUG was defined, set d10v_debug.
1231 Only initialize the hash table the first time sim_open is called.
1232
1233 * Makefile.in: Make objects depend on d10v_sim.h.
1234 ({,SIM_}CFLAGS): Include configure dependent switches. Setting
1235 CFLAGS does not override host/target defines or SIM_CFLAGS.
1236 (CC_FOR_BUILD,gencode): Use CC_FOR_BUILD to compile gencode.
1237 (run): By default, the math library is not needed to be linked
1238 in.
1239 ({BFD,LIBIBERTY}_LIB): Define as variables so they can be
1240 overridden.
1241 (VPATH): Don't set to anything but @srcdir@ to work with non-GNU
1242 makes.
1243 ({run,callback}.o): Provide explicit paths to their appropriate
1244 source directories.
1245 (gencode{,.o},d10v-opc.o): Split compilation into creating object
1246 and linking. Instead of linking in libopcodes.a, just compile
1247 d10v-opc.o directly to handle canadian cross.
1248 (CSEARCH): Add opcodes directory.
1249
1250 * configure.in (--enable-sim-cflags): New switch to allow user to
1251 set the defaults.
1252 (CC_FOR_BUILD): Deal with canadian crosses.
1253 * configure: Regenerate.
1254
1255Wed Sep 04 04:45:34 1996 Mark Alexander <marka@cygnus.com>
1256
1257 * simops.c: Include correct syscall.h for d10v, not host's.
1258 Fix #ifdef SYS_stat.
1259
1260Tue Sep 3 14:00:04 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1261
1262 * simops.c (OP_5F00): Wrap all SYS_xxx traps with #ifdef.
1263 Add trap 2 to be printf and trap 3 to be putchar.
1264
1265Wed Aug 28 21:42:34 1996 Mark Alexander <marka@cygnus.com>
1266
1267 * Makefile.in, d10v_sim.h, interp.c, simops.c: Add support
1268 for low-level system calls.
1269
1270Wed Aug 28 17:33:19 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
1271
1272 * Makefile.in, d10v_sim.h, interp.c: Fix byte-order problems.
1273
1274Mon Aug 26 18:30:28 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
1275
1276 * d10v_sim.h (SEXT32): Added.
1277 * interp.c: Commented out printfs.
1278 * simops.c: Fixed error in sb and st2w.
1279
1280Thu Aug 15 13:30:03 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
1281
1282 * Makefile.in, d10v_sim.h, interp.c, simops.c: Added remaining
1283 DSP instructions. Added modulo addressing.
1284
1285Sun Aug 11 12:57:15 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
1286
1287 * Makefile.in, d10v_sim.h, interp.c, simops.c: Snapshot.
1288
1289Fri Aug 2 17:44:24 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
1290
1291 * d10v_sim.h, simops.c: Snapshot.
1292
1293Thu Aug 1 17:05:24 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
1294
1295 * ChangeLog, Makefile.in, configure, configure.in, d10v_sim.h,
1296 gencode.c, interp.c, simops.c: Created.
1297