* Makefile.in (gencode): Link with libopcodes in build tree rather
[platform/upstream/binutils.git] / sim / v850 / ChangeLog
1 2001-01-31  Jonathan Larmour  <jlarmour@redhat.com>
2
3         * Makefile.in (gencode): Link with libopcodes in build tree rather
4         than building source files from there.
5
6 2000-05-30  Nick Clifton  <nickc@cygnus.com>
7
8         * v850.igen: Remove illegal instruction pattern, since it is the
9         same as the breakpoint pattern.
10
11 Tue May 23 21:39:23 2000  Andrew Cagney  <cagney@b1.cygnus.com>
12
13         * configure: Regenerated to track ../common/aclocal.m4 changes.
14
15 2000-04-14  Gary Thomas  <gthomas@redhat.com>
16
17         * v850.igen: Define 'br *' as illegal since this is the only
18         way to provide a breakpoint on some v850 family processors.
19
20 2000-03-24  Frank Ch. Eigler  <fche@redhat.com>
21
22         * v850.igen (ilgop): New insn pattern for four-byte breakpoints.
23
24 Thu Sep  2 18:15:53 1999  Andrew Cagney  <cagney@b1.cygnus.com>
25
26         * configure: Regenerated to track ../common/aclocal.m4 changes.
27
28 1999-05-08  Felix Lee  <flee@cygnus.com>
29
30         * configure: Regenerated to track ../common/aclocal.m4 changes.
31         
32 Tue Dec  1 17:25:16 1998  Andrew Cagney  <cagney@b1.cygnus.com>
33
34         * Makefile.in (NL_TARGET): Define as -DNL_TARGET_v850.
35
36 Wed Nov 25 17:52:58 1998  Andrew Cagney  <cagney@b1.cygnus.com>
37
38         * Makefile.in (simops.o): Depends on targ-vals.h
39         * simops.c: Include targ-vals.h instead of
40         libgloss/.../syscall.h. Replace SYS_* with TARGET_SYS_*.
41         (divn, divun, OP_1C007E0, OP_18207E0, OP_1C207E0,OP_18007E0):
42         Replace signed long int with signed32.
43
44 Fri Oct  9 18:02:25 1998  Doug Evans  <devans@canuck.cygnus.com>
45
46         * interp.c: #include "itable.h".
47         (get_insn_name): New function.
48         (sim_open): Initialize CPU_INSN_NAME,CPU_MAX_INSNS.
49         * sim-main.h (MAX_INSNS,INSN_NAME): Delete.
50
51 Wed May  6 19:43:27 1998  Doug Evans  <devans@canuck.cygnus.com>
52
53         * sim-main.h (INSN_NAME): New arg `cpu'.
54
55 Tue Apr 28 18:33:31 1998  Geoffrey Noer  <noer@cygnus.com>
56
57         * configure: Regenerated to track ../common/aclocal.m4 changes.
58
59 Sun Apr 26 15:31:55 1998  Tom Tromey  <tromey@creche>
60
61         * configure: Regenerated to track ../common/aclocal.m4 changes.
62         * config.in: Ditto.
63
64 Sun Apr 26 15:19:14 1998  Tom Tromey  <tromey@cygnus.com>
65
66         * acconfig.h: New file.
67         * configure.in: Reverted change of Apr 24; use sinclude again.
68
69 Fri Apr 24 14:16:40 1998  Tom Tromey  <tromey@creche>
70
71         * configure: Regenerated to track ../common/aclocal.m4 changes.
72         * config.in: Ditto.
73
74 Fri Apr 24 11:18:08 1998  Tom Tromey  <tromey@cygnus.com>
75
76         * configure.in: Don't call sinclude.
77
78 Sat Apr  4 20:36:25 1998  Andrew Cagney  <cagney@b1.cygnus.com>
79
80         * configure: Regenerated to track ../common/aclocal.m4 changes.
81         * sim-main.h (SIM_MAIN_H): Wrap header.
82
83 Fri Mar 27 16:15:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>
84
85         * configure: Regenerated to track ../common/aclocal.m4 changes.
86
87 Wed Mar 25 12:35:29 1998  Andrew Cagney  <cagney@b1.cygnus.com>
88
89         * configure: Regenerated to track ../common/aclocal.m4 changes.
90
91 Tue Mar 10 15:54:50 1998  Andrew Cagney  <cagney@b1.cygnus.com>
92
93         * interp.c (sim_stop): Delete, second attempt.
94
95 Thu Feb 26 19:09:47 1998  Andrew Cagney  <cagney@b1.cygnus.com>
96
97         * interp.c (sim_info): Delete.
98
99 Wed Feb 18 10:47:32 1998  Andrew Cagney  <cagney@b1.cygnus.com>
100
101         * sim-main.h (TRACE_ALU_INPUT*): Delete.  Moved to sim-trace.[hc].
102
103         * simops.c (trace_result): Call trace_generic instead of
104         trace_one_insn.
105         (trace_module): Change variable type to integer.
106         (trace_input): Initialize trace_module with TRACE_ALU_IDX.
107
108         * sim-main.h (trace_module): Change variable decl to integer type.
109         (TRACE_BRANCH*, TRACE_LD, TRACE_ST): Update.
110         
111 Tue Feb 17 12:51:18 1998  Andrew Cagney  <cagney@b1.cygnus.com>
112
113         * interp.c (sim_store_register, sim_fetch_register): Pass in
114         length parameter.  Return -1.
115
116 Tue Feb  3 16:24:42 1998  Andrew Cagney  <cagney@b1.cygnus.com>
117
118         * sim-main.h (IMEM16, IMEM16_IMMED): Rename IMEM and
119         IMEM_IMMED. To match recent igen change.
120
121 Sun Feb  1 16:47:51 1998  Andrew Cagney  <cagney@b1.cygnus.com>
122
123         * configure: Regenerated to track ../common/aclocal.m4 changes.
124
125 Sat Jan 31 18:15:41 1998  Andrew Cagney  <cagney@b1.cygnus.com>
126
127         * configure: Regenerated to track ../common/aclocal.m4 changes.
128
129 Fri Jan 30 09:51:27 1998  Andrew Cagney  <cagney@b1.cygnus.com>
130
131         * sim-main.h (CPU_CIA): Delete, replaced by.
132         (CIA_SET, CIA_SET): Define.
133
134 Mon Jan 19 22:26:29 1998  Doug Evans  <devans@seba>
135
136         * configure: Regenerated to track ../common/aclocal.m4 changes.
137
138 Mon Dec 15 23:17:11 1997  Andrew Cagney  <cagney@b1.cygnus.com>
139
140         * configure: Regenerated to track ../common/aclocal.m4 changes.
141         * config.in: Ditto.
142
143 Fri Dec  5 09:26:08 1997  Nick Clifton  <nickc@cygnus.com>
144
145         * v850.igen: Revert break value back to its old value.
146
147 Thu Dec  4 09:21:05 1997  Doug Evans  <devans@canuck.cygnus.com>
148
149         * configure: Regenerated to track ../common/aclocal.m4 changes.
150
151 Wed Dec  3 17:27:19 1997  Nick Clifton  <nickc@cygnus.com>
152
153         * v850.igen: Make break have a zero first field, since otherwise
154         it clashes with the DIVH instruction.
155
156 Sat Nov 22 21:32:07 1997  Andrew Cagney  <cagney@b1.cygnus.com>
157
158         * simops.c (OP_10007E0): Rename SIGABRT -> SIM_SIGABRT. Give
159         sim_stopped instead of sim_signalled.
160
161         * v850.igen (BREAK), simops.c (OP_12007E0): Rename SIGTRAP to
162         SIM_SIGTRAP.
163         (illegal): Rename SIGILL to SIM_SIGILL.
164         
165         * sim-main.h, simops.c, interp.c: Do not include signal.h.
166
167         * sim-main.h: Include sim-signal.h instead of signal.h.
168         (SIGTRAP, SIGQUIT): Delete definition.
169         (SIG_V850_EXIT): Delete definition.
170
171 Tue Nov 18 15:33:48 1997  Doug Evans  <devans@canuck.cygnus.com>
172
173         * Makefile.in (SIM_OBJS): Use $(SIM_NEW_COMMON_OBJS).
174
175 Fri Oct 31 10:33:40 1997  Andrew Cagney  <cagney@b1.cygnus.com>
176
177         * interp.c (sim_open): Check state magic number.
178         (sim-assert.h): Include.
179
180 Tue Oct 28 11:06:47 1997  Andrew Cagney  <cagney@b1.cygnus.com>
181
182         * v850.igen: Add model filter field to records.
183
184 Fri Oct  3 09:28:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>
185
186         * configure: Regenerated to track ../common/aclocal.m4 changes.
187
188 Fri Sep 26 11:56:02 1997  Felix Lee  <flee@cygnus.com>
189
190         * sim-main.h: delete null override of SIM_ENGINE_HALT_HOOK and
191         SIM_ENGINE_RESTART_HOOK.
192         
193 Wed Sep 24 17:38:57 1997  Andrew Cagney  <cagney@b1.cygnus.com>
194
195         * configure: Regenerated to track ../common/aclocal.m4 changes.
196
197 Wed Sep 24 17:28:26 1997  Andrew Cagney  <cagney@b1.cygnus.com>
198
199         * sim-main.h (WITH_TARGET_WORD_MSB): Delete.
200
201         * configure.in (SIM_AC_OPTION_BITSIZE): Specify 32 bit
202         architecture with MSB == 31.
203
204 Wed Sep 24 14:04:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>
205
206         * v850.igen: Make divh insn with RRRRR==0 breakpoint.
207
208 Tue Sep 23 11:04:38 1997  Andrew Cagney  <cagney@b1.cygnus.com>
209
210         * configure: Regenerated to track ../common/aclocal.m4 changes.
211
212 Tue Sep 23 10:19:51 1997  Andrew Cagney  <cagney@b1.cygnus.com>
213
214         * Makefile.in (SIM_WARNINGS, SIM_ALIGNMENT, SIM_ENDIAN,
215         SIM_HOSTENDIAN, SIM_RESERVED_BITS): Delete, moved to common.
216         (SIM_EXTRA_CFLAGS): Update.
217         
218 Mon Sep 22 11:46:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>
219
220         * configure: Regenerated to track ../common/aclocal.m4 changes.
221         * configure.in: Really specify NONSTRICT_ALIGNMENT as the default.
222
223 Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
224
225         * configure.in: Specify NONSTRICT_ALIGNMENT as the default.
226         * configure: Regenerated to track ../common/aclocal.m4 changes.
227
228 Fri Sep 19 10:37:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>
229
230         * v850.igen (disp16): Use EXTEND16 to sign extend disp.
231         (disp22): Only shift left by 1, not 2.
232         ("jmp"): Ensure PC is 2 byte aligned.
233
234         * simops.c, v850.igen: Move "Bcond", "jr", "jarl" code to
235         v850.igen. Fix tracing.
236
237         * simops.c (OP_300, OP_400, OP_500): Move "sdl.b", "sld.h",
238         "sld.w" insns to v850.igen.  Fix tracing.
239         (OP_70): Ditto for "sld.hu".
240
241         * v850.igen: Clarify tracing of "sld.b", "sld.h" et.al.
242
243         * simops.c (condition_met): Make global.
244
245         * sim-main.h (TRACE_ALU_INPUT3, TRACE_BRANCH0, TRACE_LD,
246         TRACE_ST): Define.
247         (TRACE_LD_NAME): Define.
248
249         * simops.c: Move "cmov", "cmov imm" to v850.igen, fix.
250
251 Wed Sep 17 16:21:08 1997  Andrew Cagney  <cagney@b1.cygnus.com>
252
253         * simops.c: Move "mov", "reti", to v850.igen, fix tracing.
254         
255         * interp.c (hash): Delete.
256
257         * v850.igen (nop): Really do nothing.
258
259         * interp.c (do_interrupt): Mask interrupts after PSW is saved, not
260         before.
261         * v850.igen (reti): Return to current PC not previous.
262
263 Wed Sep 17 14:02:10 1997  Andrew Cagney  <cagney@b1.cygnus.com>
264
265         * simops.c: Move "ctret", "bsw", "hsw" to v850.igen, fix tracing.
266         (trace_module): Global, save component/module name across insn.
267
268         * simops.c: Move "bsh" to v850.igen, fix.
269         
270         * v850.igen (callt): Load correct number of bytes. Fix tracing.
271         (stsr, ldsr): Correct src, dest fields. Fix tracing.
272         (ctret): Force alignment.  Fix tracing.
273         
274 Tue Sep 16 22:14:01 1997  Andrew Cagney  <cagney@b1.cygnus.com>
275
276         * simops.c (trace_output): Add result argument.
277         (trace_result): New function.  Simpler version of trace_output,
278         assumes trace needed.
279         (trace_output): Call trace_result.
280         (trace_output): For IMM_REG_REG, trace correct register.
281         (trace_input): Add case for 16bit immediates.
282         (OP_600, OP_640, OP_680, OP_6C0, OP_6A0): Use.
283
284         * sim-main.h (TRACE_ALU_INPUT, TRACE_ALU_RESULT): Define.
285         (trace_values, trace_name, trace_pc, trace_num_values): Make
286         global.
287         (GR, SR): Define.
288         
289         v850.insn (movea, stsr): Use.
290         (sxb, sxh, zxb, zxh): Ditto.
291         
292 Tue Sep 16 21:14:01 1997  Andrew Cagney  <cagney@b1.cygnus.com>
293
294         * simops.c: Move "movea" from here.
295         * v850.igen: To here.
296
297         * v850.igen (simm16): Define, sign extend imm16.
298         (uimm16): Define, no sign extension.
299         (addi, andi, movea, movhi, mulhi, ori, satsubi, xori): Use.
300         
301         * simops.c: Move "sxh", "switch", "sxb", "callt", "dispose",
302         "mov32" from here.
303         * v850.igen: To here.
304         (switch): Fix off by two error in NIA calc.
305         
306 Tue Sep 16 15:14:01 1997  Andrew Cagney  <cagney@b1.cygnus.com>
307
308         * simops.c (trace_pc, trace_name, trace_values, trace_num_values):
309         New static globals.
310         (trace_input): Just save pc, name and values for trace_output.
311         (trace_output): Write trace values to a buffer.  Use
312         trace_one_insn to print trace info and buffer.
313         (SIZE_OPERANDS, SIZE_LOCATION): Delete.
314         
315 Tue Sep 16 09:02:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>
316
317         * sim-main.h (struct _sim_cpu): Add psw_mask so that reserved bits
318         can be masked out.
319
320         * simops.c (OP_2007E0, OP_4007E0): Move "ldsr", "stsr"
321         instructions from here.
322         * v850.igen (ldsr, stsr): To here.  Mask out reserved bits when
323         setting PSW.
324         
325         * interp.c (sim_open): Set psw_mask if machine known.
326
327 Tue Sep 16 10:20:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>
328
329         * v850-dc: Add rule to diferentiate between breakpoint and divh.
330         * v850.igen (break): New instruction, breakpoint simulator.
331         * v850.igen (breakpoint): Enable.  Change to a 32bit instruction.
332
333 Mon Sep 15 18:44:05 1997  Jim Wilson  <wilson@cygnus.com>
334
335         * simops.c (Multiply64): Don't store into register zero.
336
337 Tue Sep 16 09:02:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>
338
339         * Makefile.in (semantics.o): Add dependency.
340
341         * sim-main.h (SAVE_1, SAVE_2): Perform backward compatible save,
342         do not adjust CIA/NIA.
343
344 Mon Sep 15 17:36:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
345
346         * simops.c (OP_300, OP_400, OP_70): Make behavour depend on PSW[US].
347         
348         * simops.c: Move "divun", "sld.bu", "divhn", "divhun", "divn",
349         "divun", "pushml" code from here to v850.igen.
350         (divun): Make global.
351         (type3_regs): Make global
352         
353         * v850.igen: Move simops.c code to here.
354
355         * interp.c (sim_create_inferior): For v850eq set US bit by
356         default.
357
358         * interp.c (sim_open): Don't set arch, now set by
359         sim_analyze_program.
360
361         * configure: Regenerated to track ../common/aclocal.m4 changes.
362
363 Mon Sep 15 14:39:34 1997  Andrew Cagney  <cagney@b1.cygnus.com>
364
365         * simops.c (op_types): Move from here.
366         sim-main.h: To here.
367
368         * sim-main.h (trace_input, trace_output), simops.c: Make global.
369
370         * simops.c (OP_60): Move "jmp" code from here.
371         * v850.igen (jmp): To here.
372
373         * simops.c (OP_60): Move "sld.bu" code from here.
374         * v850.igen (sld.bu): To here.
375
376 Fri Sep 12 15:11:03 1997  Andrew Cagney  <cagney@b1.cygnus.com>
377
378         * v850.igen (prepare, ...): Add to v850eq architecture.
379
380         * interp.c (sim_open): Default to v850eq.
381         
382         * interp.c (sim_open): Default to v850e.
383         * sim-main.h (signal.h): Include.
384
385         * v850.igen (illegal): Report/halt illegal instructions.
386
387         * Makefile.in (SIM_EXTRA_CFLAGS): Add SIM_RESERVED_BITS.
388
389         * configure.in: Add reserved bits option.
390         * configure: Regenerate.
391
392 Thu Sep 11 08:40:03 1997  Andrew Cagney  <cagney@b1.cygnus.com>
393
394         * interp.c (sim_open): Use sim_do_commandf instead of asprintf.
395
396         * sim-main.h (INSN_NAME): 
397
398         * Makefile.in (INCLUDE): Add SIM_EXTRA_DEPS.
399         (SIM_EXTRA_DEPS): Add itable.h
400         (tmp-gencode): Does not depend on simops.h
401
402         * sim-main.h (itable.h): Include.
403         (MAX_INSNS, INSN_NAME): Define.
404
405         * interp.c: Compute inttype from the interrupt_names index that
406         was passed in.
407
408 Wed Sep 10 10:25:40 1997  Andrew Cagney  <cagney@b1.cygnus.com>
409
410         * simops.c (trace_input): Use trace_printf instead of
411         sim_io_printf.
412         (trace_output): Ditto.
413         (trace_input): Only trace when TRACE_ALU_P.  Delete code
414         disasembling instruction.
415         (trace_output): Only trace when TRACE_ALU_P.
416
417 Tue Sep  9 01:29:50 1997  Andrew Cagney  <cagney@b1.cygnus.com>
418
419         * simops.c (trace_input, trace_output): Use sim_io_printf.
420         (OP_620): Pass correct argument to trace.
421         (OP_E607E0): Ditto.
422         (trace_input): Obtain prog_bfd, text_start et.al from simulator
423         struct.
424
425 Mon Sep  8 21:03:52 1997  Andrew Cagney  <cagney@b1.cygnus.com>
426
427         * v850.igen: New file.
428         * v850-dc: New file.
429
430 Mon Sep  8 18:33:04 1997  Andrew Cagney  <cagney@b1.cygnus.com>
431
432
433         * sim-main.h (SEXT16): Delete, use EXTEND16.
434         (SEXT8): Delete, use EXTEND8.
435         (SEXT32): Delete, used?
436         (SEXT40, SEXT44, SEXT64): Use UNSIGNED64 for constants, not ...LL.
437         (WITH_TARGET_WORD_MSB): Define as 31. v850 little bit endian.
438         
439         * simops.c: Use EXTEND15 from sim-bits instead of SEXT16.
440
441         * sim-main.h (DEBUG_TRACE, DEBUG_VALUES, v850_debug): Delete,
442         replace with TRACE_INSN_P and TRACE_ALU_P.
443
444         * simops.c (trace_input, trace_output): Update.
445
446         * interp.c (sim_engine_run): Delete.
447         (lookup_hash): Delete.
448         (sim_open): Do not fill hash table.
449         (sim_trace): Delete.
450
451 Fri Sep  5 17:04:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>
452
453         * simops.c (OP_FFFF): Use sim_engine_halt.
454         (OP_12007E0): Ditto.
455         (OP_10007E0): Ditto.
456
457         * sim-main.h (struct sim_cpu): Delete member exception. Using
458         sim-engine et.al.
459
460         * interp.c (sim_info): Do not do anything in sim-info.
461         (sim_stop): Delete, replace with sim-stop.
462         (sim_stop_reason): Delete, replace with sim-reason.
463
464         * sim-main.h (WITH_WATCHPOINTS): Define.
465         (WITH_MODULO_MEMORY): Define
466         
467         * Makefile.in (SIM_OBJS): Add sim-resume, sim-watch, sim-stop,
468         sim-reason.
469
470         * interp.c (enum interrupt_cond_type): Delete.
471         (struct interrupt_generator): Delete.
472         (enum interrupt_type): Drop int_none.
473         (sim_open): Initialize WATCHPOINT module.
474         (sim_resume, sim_run): Rename sim_resume to sim_run.
475         (sim_engine_run): Replace interrupt code with call to sim-events.
476         (sim_set_interrupt): Delete.
477         (sim_parse_number): Delete.
478
479 Thu Sep  4 17:21:23 1997  Doug Evans  <dje@seba>
480
481         * configure: Regenerated to track ../common/aclocal.m4 changes.
482
483 Thu Sep  4 18:11:37 1997  Andrew Cagney  <cagney@b1.cygnus.com>
484
485         * simops.c (fetch_argv): New function, fetch a arg vector from
486         simulator memory.
487
488         * configure.in: Check for fork, execve, execv.
489         * configure: Regenerate.
490
491         * interp.c (sim_store_register, sim_fetch_register): Use H2T_4 and
492         T2H_4 for byte swapping.
493
494         * sim-main.h, interp.c (get_word, get_half, get_byte, put_word,
495         put_half, put_byte): Delete.
496
497         * Makefile.in (SIM_OBJS): Add sim-memopt.o module.
498
499         * sim-main.h (load_mem, store_mem): Redefine as macros.
500         (IMEM, IMEM_IMMED): New macros - fetch instructions.
501
502         * simops.c (OP_10007E0): For SYS_read, SYS_write, SYS_open
503         transfer data via a buffer.
504         (fetch_str): New function, fetch string from memory.
505
506         * Makefile.in (SIM_OBJS): Add sim-hrw.o module.
507
508         * interp.c (sim_open): Establish memory maps using sim-memopt.c
509         via sim_do_command.
510         (sim_do_command): Print error if memory-map command is used. Call
511         sim_args_command.
512         (map): Delete, replaced by sim-core.
513         (sim_memory_init): Delete, replaced by sim-core.
514         (sim_set_memory_map): Delete, replaced by sim-memopt.
515         (load_mem): Delete, replaced by sim-core.
516         (store_mem): Delete, replaced by sim-core.
517         (sim_write): Delete, replaced by sim-hrw.
518         (sim_read): Delete, replaced by sim-hrw.
519
520         * sim-main.h (struct sim_state): Remove memory members, using
521         sim-core.c
522
523 Wed Sep  3 10:18:55 1997  Andrew Cagney  <cagney@b1.cygnus.com>
524
525         * sim-main.h: Replace SIM_HAVE_FLATMEM with mem ptr.
526         * interp.c (map): Do not add to a void pointer.
527         
528         * Makefile.in (INCLUDE): Add sim-main.h
529
530         * configure.in: Check for time.h
531         * configure: Re-generate.
532
533         * interp.c (struct interrupt_generator): Make time unsigned long,
534         address SIM_ADDR.
535         (sim_resume): Make oldpc SIM_ADDR.
536         (struct hash_entry): Make mask/opcode unsigned.
537
538         * v850_sim.h (struct simops ): Make opcode and mask unsigned.
539
540         * simops.c (utime.h): Include if available.
541         (OP_10007E0): Check for UTIME function.
542         (divun): Put parentheses around shift argument.
543         (OP_640): Put parentheses around shift argument, was wrong.
544         (OP_107F0): Return something.
545
546         * interp.c (sim_parse_number): Use strtoul not strtol.
547         (sim_resume): Use sim_elapsed_time_get to keep track of the time.
548
549         * configure.in (SIM_AC_OPTION_WARNINGS): Add.
550         (SIM_AC_OPTION_ENDIAN): Set to hardwired big.
551         (SIM_AC_OPTION_HOST_ENDIAN): Add.
552         (AC_CHECK_FUNCS): Add utime.
553         (AC_CHECK_HEADERS): Add stdlib.h, string.h, strings.h, utime.h
554         configure: Regenerate.
555         
556
557         * Makefile.in (SIM_RUN_OBJS): Use nrun.o.
558         (SIM_OBJS): Add sim-io.o, sim-hload.o, sim-utils.o, sim-options.o,
559         sim-config.o, sim-module.o, sim-events.o, sim-core.o,
560         sim-endian.o, sim-engine.o, sim-trace.o, sim-profile.o
561         (SIM_ENDIAN, SIM_WARNGINS): Define.
562
563         * simops.c (OP_10007E0): Use sim_io_* for transfers.
564
565         * interp.c (sim_resume): Pass sd around.
566
567         * simops.c (sim-main.h): Include.
568
569         * gencode.c (write_template): Generate #include sim-main.h.
570         (write_opcodes): Ditto.
571         
572         * interp.c (prog_bfd, prog_bfd_was_opened_p): Delete.
573         (v850_callback): Ditto.
574         (sim_kind, myname): Ditto.
575         (lookup_hash): Pass SD. Use sim_io_error.
576         (sim_set_memory_map): Pass in SD, use.
577         (init_system): Pass in SD, use.
578         (sim_open): Update.
579         (sim_set_profile): Delete.
580         (sim_set_profile_size): Delete.
581         (do_interrupt): Pass in SD, use.
582         (sim_info): Use sim_io_printf.
583         (sim_create_inferior): Reset registers.  Set PC from prog_bfd
584         argument.
585         (sim_load): Delete, use common/sim-hload.c
586         (sim_size): Rename to sim_memory_init.
587         (sim_write): Remove call to init_system.
588         (init_system): Delete.
589         (sim_set_callbacks): Delete.
590         (sim_set_interrupt): Pass in SD, use.
591         (start_time): Delete.
592         
593         * v850_sim.h: Remove everything except `struct simops' from here.
594         * sim-main.h: Move most to here.
595         * gencode.c: Move #includes to here.
596
597         * sim-main.h(struct _sim_cpu): Rename struct _state.
598         (#define PC, et.al.): Update
599         (v850_callback): Delete.  Replaced with SIM_DESC arg.
600         (int8, uint8, int16, uint16, int32, uint32): Define types using
601         unsigned8 et.al from common/sim-types.h.
602         * sim-main.h (State): Define as STATE_CPU.
603
604 Mon Sep  1 12:07:55 1997  Andrew Cagney  <cagney@b1.cygnus.com>
605
606         * configure.in: Check for time, chmod.
607         * configure: Regenerate.
608         * simops.c (SYS_time, SYS_chmod): Use HAVE_TIME, HAVE_CHMOD.
609         
610         * simops.c (../../libgloss/v850/sys/syscall.h): Include instead of
611         sys/syscall.h.
612         (OP_10007E0): Check the existance each SYS_* macro independantly.
613
614         * v850_sim.h (SIGQUIT, SIGTRAP): Only define if missing.
615
616 Wed Aug 27 18:13:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
617
618         * configure: Regenerated to track ../common/aclocal.m4 changes.
619         * config.in: Ditto.
620
621 Tue Aug 26 10:42:38 1997  Andrew Cagney  <cagney@b1.cygnus.com>
622
623         * interp.c (sim_kill): Delete.
624         (sim_create_inferior): Add ABFD argument.
625         (sim_load): Move setting of PC from here.
626         (sim_create_inferior): To here.
627
628 Mon Aug 25 17:50:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
629
630         * configure: Regenerated to track ../common/aclocal.m4 changes.
631         * config.in: Ditto.
632
633 Mon Aug 25 11:31:23 1997  Andrew Cagney  <cagney@b1.cygnus.com>
634
635         * interp.c (sim_open): Add ABFD argument.
636
637 Fri Aug 22 10:39:28 1997  Nick Clifton  <nickc@cygnus.com>
638
639         * simops.c (bsh): Only set CY flag if either of the bottom
640         bytes is zero.
641         
642         * simops.c (prepare, dispose): Lower numbered
643         registers go to higher numbered address.
644
645         * simops.c (unsigned divide instructions): S bit set if result has
646         top bit set.
647         
648         * simops.c (pushml, pushmh, popml, popmh): Lower numbered
649         registers go to higher numbered address.
650         
651 Wed Aug 20 13:56:35 1997  Nick Clifton  <nickc@cygnus.com>
652
653         * simops.c (OP_107E0, OP_107F0, OP_307E0, OP_307F0): Use correct
654         interpretation of SR bit in list18 structure.
655         (divn, divun): New functions to perform N step divide functions.
656
657 Mon Aug 18 10:59:02 1997  Nick Clifton  <nickc@cygnus.com>
658
659         * simops.c (OP_300, OP_400, OP_60, OP_70): Support variant opcodes
660         with US bit set in the PSW.
661
662 Wed Aug 13 19:06:55 1997  Nick Clifton  <nickc@cygnus.com>
663
664         * interp.c (sim_resume): Opcode functions return amount to be
665         added to PC and all opcodes take a standard format in the OP[]
666         array.
667         
668         (do_format_*): Functions removed.
669
670         * v850_sim.h (SP, EP): New register mnemonics.
671         
672         * gencode.c (write_header): Functions prototypes return an
673         integer.
674
675         * simops.c: Opcode functions return amount to be added to PC.
676         
677         * v850_sim.h (CTPC, CTPSW, CTBP): New register mnemonics.
678         
679         * simops.c: Add support for v850e instructions.
680         
681         * simops.c: Add support for v850eq instructions.
682         
683 Tue May 20 10:24:14 1997  Andrew Cagney  <cagney@b1.cygnus.com>
684
685         * interp.c (sim_open): Add callback argument.
686         (sim_set_callbacks): Delete SIM_DESC argument.
687
688 Thu Apr 24 00:39:51 1997  Doug Evans  <dje@canuck.cygnus.com>
689
690         * configure: Regenerated to track ../common/aclocal.m4 changes.
691
692 Wed Apr 23 17:20:16 1997  Doug Evans  <dje@canuck.cygnus.com>
693
694         * interp.c (prog_bfd_was_opened_p): New static local.
695         (prog_bfd): New global variable.
696         (sim_open): Undo patch to add -E support.
697         (sim_close): Close prog_bfd if sim_load opened it.
698         (sim_load): Record bfd of loaded file in prog_bfd.
699         * simops.c (prog_bfd): Renamed from exec_bfd.
700
701 Fri Apr 18 14:17:12 1997  Andrew Cagney  <cagney@b1.cygnus.com>
702
703         * interp.c (sim_stop): Stub function.
704
705 Thu Apr 17 03:53:18 1997  Doug Evans  <dje@canuck.cygnus.com>
706
707         * Makefile.in (SIM_OBJS): Add sim-load.o.
708         * interp.c (sim_kind, myname): New static locals.
709         (sim_open): Set sim_kind, myname.  Ignore -E arg.
710         (sim_load): Return SIM_RC.  New arg abfd.  Call sim_load_file to
711         load file into simulator.  Set start address from bfd.
712         (sim_create_inferior): Return SIM_RC.  Delete arg start_address.
713
714 Wed Apr 16 19:53:55 1997  Andrew Cagney  <cagney@b1.cygnus.com>
715
716         * simops.c (OP_10007E0): Only provide system calls SYS_execv,
717         SYS_wait, SYS_wait, SYS_utime, SYS_time if defined by the host.
718
719 Mon Apr  7 15:45:02 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
720
721         * configure: Regenerated to track ../common/aclocal.m4 changes.
722         * config.in: Ditto.
723
724 Wed Apr  2 15:06:28 1997  Doug Evans  <dje@canuck.cygnus.com>
725
726         * interp.c (sim_open): New arg `kind'.
727
728         * configure: Regenerated to track ../common/aclocal.m4 changes.
729
730 Wed Apr  2 14:34:19 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
731
732         * configure: Regenerated to track ../common/aclocal.m4 changes.
733
734 Wed Mar 19 01:14:00 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
735
736         * configure: Regenerated to track ../common/aclocal.m4 changes.
737
738 Mon Mar 17 15:10:07 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
739
740         * configure: Re-generate.
741
742 Fri Mar 14 10:34:11 1997  Michael Meissner  <meissner@cygnus.com>
743
744         * configure: Regenerate to track ../common/aclocal.m4 changes.
745
746 Thu Mar 13 13:00:54 1997  Doug Evans  <dje@canuck.cygnus.com>
747
748         * interp.c (sim_open): New SIM_DESC result.  Argument is now
749         in argv form.
750         (other sim_*): New SIM_DESC argument.
751
752 Tue Feb  4 13:33:30 1997  Doug Evans  <dje@canuck.cygnus.com>
753
754         * Makefile.in (@COMMON_MAKEFILE_FRAG): Use
755         COMMON_{PRE,POST}_CONFIG_FRAG instead.
756         * configure.in: sinclude ../common/aclocal.m4.
757         * configure: Regenerated.
758
759 Thu Jan 23 11:46:23 1997  Stu Grossman  (grossman@critters.cygnus.com)
760
761         * configure configure.in Makefile.in:  Update to new configure
762         scheme which is more compatible with WinGDB builds.
763         * configure.in:  Improve comment on how to run autoconf.
764         * configure:  Re-run autoconf to get new ../common/aclocal.m4.
765         * Makefile.in:  Use autoconf substitution to install common
766         makefile fragment.
767
768 Mon Jan 20 16:05:34 1997  Michael Meissner  <meissner@tiktok.cygnus.com>
769
770         * simops.c (OP_{E0,2E0,6E0}): The multiply operations sign extend,
771         not zero extend.
772
773 Tue Jan 14 17:06:03 1997  Stu Grossman  (grossman@critters.cygnus.com)
774
775         * simops.c:  Put ifdefs around things to make MSVC happy.  Get rid
776         of unistd.h.  Disable SYS_stat, SYS_chown, SYS_time, SYS_times,
777         SYS_gettimeofday and SYS_utime from MSVC.
778
779 Tue Dec 31 18:11:13 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
780
781         * simops.c (OP_10007E0): Know that kill encodes the signal number
782         via: 0xdead0000 | signal and turn it back into a signal.
783
784 Fri Dec 27 14:44:06 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
785
786         * v850_sim.h (SIG_V850_EXIT): Define as -1.
787
788         * interp.c (sim_open): Cast calloc function.
789         (sim_stop_reason): If signal is SIG_V850_EXIT, inform gdb the
790         program exited with the appropriate exit code.
791         (sim_set_interrupt): Declare buildargv.
792
793         * simops.c (OP_10007E0): Make exit signal normal exit.  Make time
794         type correct and work on big endian systems.
795
796 Wed Nov 20 02:18:44 1996  Doug Evans  <dje@canuck.cygnus.com>
797
798         * Makefile.in: Delete stuff moved to ../common/Make-common.in.
799         (SIM_OBJS,SIM_EXTRA_CFLAGS,SIM_EXTRA_CLEAN): Define.
800         * configure.in: Simplify using macros in ../common/aclocal.m4.
801         Call AC_CHECK_HEADERS(unistd.h).
802         * configure: Regenerated.
803         * config.in: New file.
804         * simops.c: #include "config.h".  #include <unistd.h> if present.
805
806 Sun Nov  3 23:02:54 1996  Stan Shebs  <shebs@andros.cygnus.com>
807
808         * v850_sim.h (State): New slots dummy_mem, pending_nmi.
809         (EIPC, etc): New macros for system registers.
810         * simops.c, interp.c: Use everywhere.
811
812         * interp.c: Add support for interrupts issued by interrupt
813         generators, either PC- or time-based.  Controlled by simulator
814         command "sim interrupt".
815
816         * interp.c: Add support for variable-size allocation of memory,
817         via simulator command "sim memory-map".
818         (map): Issue SIGSEGV for references to invalid memory regions.
819         
820 Thu Oct 31 14:44:10 1996  Gavin Koch  <gavin@cygnus.com>
821         
822         * simops.c: Include <sys/time.h> for struct timeval and 
823         struct timezone.
824         
825 Wed Oct 30 08:49:10 1996  Jeffrey A Law  (law@cygnus.com)
826
827         * simops.c (OP_10007E0): Handle SYS_times and SYS_gettimeofday.
828
829         * simops.c (OP_10007E0): Handle SYS_time.
830
831 Tue Oct 29 14:22:55 1996  Jeffrey A Law  (law@cygnus.com)
832
833         * simops.c: Include <sys/stat.h>.
834         (OP_10007E0): Handle SYS_stat.
835
836 Thu Oct 24 12:26:35 1996  Jeffrey A Law  (law@cygnus.com)
837
838         * simops.c (OP_10007E0): Don't declare errno.
839
840         * simops.c (OP_500): Mask off low bit in displacement
841         for sld.w.
842         (OP_501): Similarly.
843
844         * simops.c (OP_500): Fix displacement handling for sld.w.
845         (OP_501): Similarly for sst.w.
846
847         * simops.c (trace_input): Remove all references to SEXT7.
848         (OP_300, OP_400, OP_500, OP_380, OP_480, OP_501): Displacement
849         is zero extended for sst/sld instructions.
850         * v850_sim.h (SEX7): Delete.  It's no longer needed (and it
851         was incorrect anyway).
852
853 Thu Oct 24 10:33:33 1996  Stu Grossman  (grossman@critters.cygnus.com)
854
855         * Makefile.in:  Get rid of srcroot.  Set all INSTALL macros via
856         autoconf.
857         * gencode.c (write_opcodes):  Pad operands field to account for
858         MSVC braindamage.
859         * simops.c:  Include errno.h.  Exclude SYS_chown, since MSVC
860         doesn't support it.  (Why is this here in the first place?!?)
861         * v850_sim.h:  Get rid of 64 bit defs.  Also, get rid of #elif's.
862         Change number of operands in struct simops from 9 to 6.  Define
863         SIGTRAP and SIGQUIT for MSVC.
864
865 Tue Oct 15 16:19:51 1996  Stu Grossman  (grossman@critters.cygnus.com)
866
867         * interp.c (MEM_SIZE):  It's now bytes, not a power of 2.
868         * (map):  Add support for external mem in the 1->2 meg range.
869         Also, abort() when memory access is way out of bounds.  (Better to
870         die than to give wrong result.  (This will be fixed later.))
871         * (sim_size):  MEM_SIZE is now bytes, not shift factor.
872
873 Tue Oct  1 15:53:24 1996  Gavin Koch <gavin@cygnus.com>
874         
875         * simops.c (trace_input): Swapped order of operands for output
876         output of OP_IMM_REG.  Changed the fetching of the operands for
877         OP_LOAD32, and OP_STORE32 to work like op-function.
878         
879 Mon Sep 30 15:46:33 1996  Stu Grossman  (grossman@critters.cygnus.com)
880
881         * interp.c:  Move includes of remote-sim.h and callback.h to
882         v850-sim.h.
883         * (lookup_hash): Add PC to report of hash failure.
884         * (map load_mem store_mem):  New memory subsystem.  Models V851
885         memory system.
886         * (sim_write sim_read):  Use new memory subsystem.
887         * (sim_resume):  Don't load and save PC into EIPC anymore.  Needed
888         to make user-defined traps work right.
889         * simops.c (OP_*):  Use new memory subsystem.
890         * (OP_14007E0 (reti)):  Implement reti.
891         * (OP_14996E0 (trap)):  Implement user-defined traps.  Move I/O to
892         trap 31.  Use new memory subsystem.
893         * v850_sim.h:  Prototypes for load_mem, store_mem and map.  Use
894         load_mem in RLW macro.
895
896 Fri Sep 27 18:34:09 1996  Stu Grossman  (grossman@critters.cygnus.com)
897
898         * gencode.c (write_opcodes):  Output hex values for opcode mask
899         and patterns.
900         * interp.c (sim_resume):  Save and restore PC from the appropriate
901         register.
902         * (sim_fetch_register sim_store_register):  Fix byte-order problem
903         with reading and writing registers.
904         * simops.c (OP_FFFF):  Implement pseudo-breakpoint insn.
905
906 Fri Sep 27 17:42:37 1996  Jeffrey A Law  (law@cygnus.com)
907
908         * simops.c (trace_input): Fix thinko. 
909
910 Wed Sep 18 09:54:12 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
911
912         * simops.c (exec_bfd): Rename from sim_bfd.
913         (trace_input): Ditto.
914
915 Thu Sep 12 12:03:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
916
917         * simops.c (trace_input): Use find_nearest_line to print line
918         number, function name or file name of PC.
919
920 Wed Sep 11 16:44:37 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
921
922         * simops.c: Add tracing support.  Use SEXTxx macros instead of
923         doing hardwired shifts.
924
925         * configure.in (--enable-sim-cflags): Add switch to add additional
926         flags to simulator buld.  If --enable-sim-cflags=trace, turn on
927         tracing.
928         * configure: Regenerate.
929
930         * Makefile.in: Don't require a VPATH capable make if configuring
931         in the same directory.  Don't use CFLAGS for configuration flags.
932         Add flags from --enable-sim-cflags.  Support canadian cross
933         builds.  Rebuild whole simulator if include files change.
934
935         * interp.c (v850_debug): New global for debugging.
936         (lookup_hash,sim_size,sim_set_profile): Use
937         printf_filtered callback, instead of calling printf directly.
938         (sim_{open,trace}): Enable tracing if -t and compiled for tracing.
939
940         * v850_sim.h: Use limits.h to set the various sized types.
941         (SEXT{5,7,16,22}): New macros.
942
943 Mon Sep  9 20:50:46 1996  Jeffrey A Law  (law@cygnus.com)
944
945         * interp.c (hash): Make this an inline function
946         when compiling with GCC.  Simplify.
947         * simpos.c: Explicitly include "sys/syscall.h".  Remove
948         some #if 0'd code.  Enable more emulated syscalls.
949
950 Wed Sep  4 01:48:55 1996  Jeffrey A Law  (law@cygnus.com)
951
952         * interp.c: Fix sign bit handling for add and sub instructions.
953
954 Tue Sep  3 10:20:30 1996  Jeffrey A Law  (law@cygnus.com)
955
956         * gencode.c: Fix various indention & style problems.
957         Remove test code.  Remove #if 0 code.
958         * interp.c: Provide prototypes for all static functions.
959         Fix minor indention problems.
960         (sim_open, sim_resume): Remove unused variables.
961         (sim_read): Return type is "int".
962         * simops.c: Remove unused variables.
963         (divh): Make result of divide-by-zero zero.
964         (setf): Initialize result to keep compiler quiet.
965         (sar instructions): These just clear the overflow bit.
966         * v850_sim.h: Provide prototypes for put_byte, put_half
967         and put_word.
968
969         * interp.c: OP should be an array of 32bit operands!
970         (v850_callback): Declare.
971         (do_format_5): Fix extraction of OP[0].
972         (sim_size): Remove debugging printf.
973         (sim_set_callbacks): Do something useful.
974         (sim_stop_reason): Gross hacks to get c-torture running.
975         * simops.c: Simplify code for computing targets of bCC
976         insns.   Invert 's' bit if 'ov' bit is set for some
977         instructions.  Fix 'cy' bit handling for numerous
978         instructions.  Make the simulator stop when a halt
979         instruction is encountered.  Very crude support for
980         emulated syscalls (trap 0).
981         * v850_sim.h: Include "callback.h" and declare
982         v850_callback.  Items in the operand array are 32bits.
983
984 Sun Sep  1 22:35:35 1996  Jeffrey A Law  (law@cygnus.com)
985
986         * interp.c (sim_resume): Fix code to check for a format 3
987         opcode.
988         * simops.c: bCC insns only argument is a constant, not a
989         register value (duh...)
990
991 Fri Aug 30 10:33:49 1996  Jeffrey A Law  (law@cygnus.com)
992
993         * simops.c: Fix "not1" and "set1".
994
995         * simops.c: Don't forget to initialize temp for
996         "ld.h" and "ld.w"
997
998         * interp.c: Remove various debugging printfs.
999
1000         * simops.c: Fix satadd, satsub boundary case handling.
1001
1002         * interp.c (hash): Fix.
1003         * interp.c (do_format_8): Get operands correctly and
1004         call the target function.
1005         * simops.c: Rough cut at "clr1", "not1", "set1", and "tst1".
1006
1007 Thu Aug 29 13:53:29 1996  Jeffrey A Law  (law@cygnus.com)
1008
1009         * interp.c (do_format_4): Get operands correctly and
1010         call the target function.
1011         * simops.c: Rough cut at "sld.b", "sld.h", "sld.w", "sst.b",
1012         "sst.h", and "sst.w".
1013
1014         * v850_sim.h: The V850 doesn't have split I&D spaces.  Change
1015         accordingly.  Remove many unused definitions.
1016         * interp.c: The V850 doesn't have split I&D spaces.  Change
1017         accordingly.
1018         (get_longlong, get_longword, get_word): Deleted.
1019         (write_longlong, write_longword, write_word): Deleted.
1020         (get_operands): Deleted.
1021         (get_byte, get_half, get_word): New functions.
1022         (put_byte, put_half, put_word): New functions.
1023         * simops.c: Remove unused functions.  Rough cut at
1024         "ld.b", "ld.h", "ld.w", "st.b", "st.h", "st.w" insns.
1025
1026         * v850_sim.h (struct _state): Remove "psw" field.  Add
1027         "sregs" field.
1028         (PSW): Remove bogus definition.
1029         * simops.c: Change condition code handling to use the psw
1030         register within the sregs array.  Handle "ldsr" and "stsr".
1031
1032         * simops.c: Handle "satadd", "satsub", "satsubi", "satsubr".
1033
1034         * interp.c (do_format_5): Get operands correctly and
1035         call the target function.
1036         (sim_resume): Don't do a PC update for format 5 instructions.
1037         * simops.c: Handle "jarl" and "jmp" instructions.
1038
1039         * simops.c: Fix minor typos.  Handle "cmp", "setf", "tst"
1040         "di", and "ei" instructions correctly.
1041
1042         * interp.c (do_format_3): Get operands correctly and call
1043         the target function.
1044         * simops.c: Handle bCC instructions.
1045
1046         * simops.c: Add condition code handling to shift insns.
1047         Fix minor typos in condition code handling for other insns.
1048
1049         * Makefile.in: Fix typo.
1050         * simops.c: Add condition code handling to "sub" "subr" and
1051         "divh" instructions.
1052
1053         * interp.c (hash): Update to be more accurate.
1054         (lookup_hash): Call hash rather than computing the hash
1055         code here.
1056         (do_format_1_2): Handle format 1 and format 2 instructions.
1057         Get operands correctly and call the target function.
1058         (do_format_6): Get operands correctly and call the target
1059         function.
1060         (do_formats_9_10): Rough cut so shift ops will work.
1061         (sim_resume): Tweak to deal with format 1 and format 2
1062         handling in a single funtion.  Don't update the PC
1063         for format 3 insns.  Fix typos.
1064         * simops.c: Slightly reorganize.  Add condition code handling
1065         to "add", "addi", "and", "andi", "or", "ori", "xor", "xori"
1066         and "not" instructions.
1067         * v850_sim.h (reg_t): Registers are 32bits.
1068         (_state): The V850 has 32 general registers.  Add a 32bit
1069         psw and pc register too.  Add accessor macros
1070
1071         * Makefile.in, interp.c, v850_sim.h: Bring over endianness
1072         changes from the d10v simulator.
1073
1074         * simops.c: Add shift support.
1075
1076         * simops.c: Add multiply & divide support.  Abort for system
1077         instructions.
1078
1079         * simops.c: Add logicals, mov, movhi, movea, add, addi, sub
1080         and subr.  No condition codes yet.
1081
1082 Wed Aug 28 13:53:22 1996  Jeffrey A Law  (law@cygnus.com)
1083
1084         * ChangeLog, Makefile.in, configure, configure.in, v850_sim.h, 
1085         gencode.c, interp.c, simops.c: Created.
1086