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