4 * Makefile.in: Add m32rx objs, and rules to build them.
5 * cpux.h, decodex.h, decodex.c, readx.c, semx.c, modelx.c: New files.
6 * m32rx.c, mloopx.in: New files.
9 Mon Jan 19 22:26:29 1998 Doug Evans <devans@seba>
11 * configure: Regenerated to track ../common/aclocal.m4 changes.
15 * arch.c, arch.h, cpuall.h: New files.
16 * arch-defs.h: Deleted.
17 * mloop.in: Renamed from mainloop.in.
18 * Makefile.in: Update.
22 Add cgen support for generating files.
24 (arch): Renamed from CPU.
30 * sem-switch.c: Redone.
31 * sem.c: Renamed from semantics.c, and redone.
32 * m32r-sim.h (PROFILE_COUNT_FILLNOPS): Update.
33 (GETTWI,SETTWI,BRANCH_NEW_PC): Define.
34 * m32r.c (WANT_CPU,WANT_CPU_M32R): Define.
35 (m32r_{fetch,store}_register): New functions.
36 (model_mark_{get,set}_h_gr): Prefix with m32r_.
37 (m32r_model_mark_{busy,unbusy}_reg): Prefix with m32r_.
38 (h_cr_{get,set}): Prefix with m32r_.
39 (do_trap): Fetch state from current_cpu, not current_state.
40 Call sim_engine_halt instead of engine_halt.
41 * sim-if.c (alloc_cpu): New function.
42 (free_state): New function.
43 (sim_open): Call sim_state_alloc, and malloc space for selected cpu
44 type. Call sim_analyze_program.
45 (sim_create_inferior): Handle selected cpu type when setting PC.
47 (sim_resume): Handle m32rx.
49 (sim_stop_reason): Deleted.
50 (print_m32r_misc_cpu): Update.
52 (sim_{fetch,store}_register): Handle m32rx.
54 (sim_{read,write}): Deleted.
55 (sim_engine_illegal_insn): New function.
56 * sim-main.h: Don't include arch-defs.h,sim-core.h,sim-events.h.
57 Include arch.h,cpuall.h. Include cpu.h,decode.h if m32r.
59 Include cpux.h,decodex.h if m32rx.
61 (_sim_cpu): Include member appropriate cpu_data member for the cpu.
62 (M32R_MISC_PROFILE): Renamed from M32R_PROFILE.
63 (sim_state): Delete members core,events,halt_jmp_buf.
64 Change `cpu' member to be a pointer to the cpu's struct, rather than
65 record inside the state struct.
66 * tconfig.in (WITH_DEVICES): Define here.
67 (WITH_FAST,WITH_SEM_SWITCH_{FULL,FAST}): Define for the cpu.
71 * arch-defs.h (INSN_NAME): Fix typo.
75 * configure: Regenerated to track ../common/aclocal.m4 changes.
80 * m32r-sim.h (MSPR_ADDR): New macro.
81 (m32r_mspr_device): Declare.
82 (struct _device): Define.
83 * m32r.c (m32r_mspr_device): New global.
84 (device_{io_{read,write}_buffer,error}): New functions.
85 * mem-ops.h (SETMEM*): Use sim_core_write_map, not read map.
86 * sim-if.c: Delete redundant inclusion of cpu-sim.h.
87 (sim_open): Attach device to handle MSPR register.
88 * sim-main.h (WITH_DEVICES): Define as 1.
91 * configure: Regenerated to track ../common/aclocal.m4 changes.
95 * configure.in (SIM_AC_OPTION_ENVIRONMENT): Call.
96 * configure: Regenerated.
100 * mem-ops.h: Rename SIM_SIG{ACCESS,ALIGN} to SIM_SIG{SEGV,BUS}.
101 * sim-if.c (sim_open): Call sim_config.
102 (sim_stop_reason): Update call to sim_signal_to_host.
106 * Makefile.in (SIM_OBJS): Use $(SIM_NEW_COMMON_OBJS).
110 * sim-if.c (sim_open): Delete dead call to sim_core_attach.
114 * sem-ops.h (U{DIV,MOD}[BHSD]I): Use unsigned division.
118 * configure: Regenerated to track ../common/aclocal.m4 changes.
122 * configure: Regenerated to track ../common/aclocal.m4 changes.
126 * configure: Regenerated to track ../common/aclocal.m4 changes.
130 * Makefile.in (SIM_ENDIAN, SIM_HOSTENDIAN, SIM_SCACHE,
131 SIM_DEFAULT_MODEL): Delete, moved to common.
132 (SIM_EXTRA_CFLAGS): Update.
136 * configure.in (sim_link_links): Configure non-strict memory
139 * configure: Regenerated to track ../common/aclocal.m4 changes.
143 * configure: Regenerated to track ../common/aclocal.m4 changes.
147 * sim-if.c (sim_open): Allocate memory under sim-memopt module
148 using sim_do_commandf.
149 (sim_open): Set magic-number at the start.
150 (sim_do_command): Implement.
152 * sim-main.h (sim_engine_halt): Map onto engine_halt.
156 * configure: Regenerated to track ../common/aclocal.m4 changes.
158 Thu Sep 4 17:21:23 1997 Doug Evans <dje@seba>
160 * configure: Regenerated to track ../common/aclocal.m4 changes.
164 * Makefile.in (SIM_OBJS): Add sim-memopt.o module.
168 * sim-if.c (sim_open): Pass zero modulo arg to sim_core_attach.
172 * configure: Regenerated to track ../common/aclocal.m4 changes.
177 * sim-if.c (sim_kill): Delete.
178 (sim_create_inferior): Add ABFD argument.
179 (sim_load): Move setting of PC from here.
180 (sim_create_inferior): To here.
181 (sim_load): Delete, use sim-hload.c instead.
183 * Makefile.in (SIM_OBJS): Add sim-hload.o module.
187 * configure: Regenerated to track ../common/aclocal.m4 changes.
192 * sim-if.c (sim_open): Add ABFD argument.
196 * sim-main.h (M32R_DEFAULT_MEM_SIZE): New macro.
197 * sim-if.c (sim_open): Use it.
201 * sim-main.h (WITH_ENGINE): Disable the common engine for now.
205 * sim-if.c (sim_read): Pass NULL cpu to sim_core_read_buffer.
206 (sim_write): Ditto for write.
208 * m32r.c (do_trap): Ditto for read/write.
212 * sim-if.c (sim_open): Add callback argument.
213 (sim_set_callbacks, sim_callback): Delete.
214 (sim_load): Set STATE_LOADED_P.
218 * Makefile.in (SIM_OBJS): Link in sim-abort.o as a stub for
223 * sim-if.c (sim_open): Update to reflect changes to core in
225 * mem-ops.h (GETMEMQI, GETMEMHI, GETMEMSI, GETMEMDI, GETMEMUQI,
226 GETMEMUHI, GETMEMUSI, GETMEMUDI, SETMEMQI, SETMEMHI, SETMEMSI,
227 SETMEMDI, SETMEMUQI, SETMEMUHI, SETMEMUSI, SETMEMUDI): Ditto.
231 * decode.c (decode): Add computed goto support.
235 * mem-ops.h: Stub additional core read/write arguments.
237 * sim-main.h: Declare sim_cia - type SI.
238 (struct _sim_cpu): Move base type to end per common.
239 (struct _sim_state): Ditto.
243 Merge from branch into devo. CGEN generic files moved to common
244 directory. K&R C support is no longer provided.
248 * configure: Regenerated to track ../common/aclocal.m4 changes.
252 * Makefile.in, seman-cache.c: new file, for wingdb build.
253 * sim-alloca.h: fixed for wingdb.
257 * decode.c (*): m32r_cgen_insn_table renamed to ..._entries.
258 * mainloop.in: Use CGEN_INSN_INDEX instead of CGEN_INSN_TYPE.
259 * simdefs.h (INSN_NAME): m32r_cgen_insn_table renamed to ..._entries.
263 * cgen-utils.in (ex_illegal): Fill in abuf->length, abuf->addr.
264 (exc_illegal): Likewise.
265 * decode.c (decode_vars): Add decode_illegal.
266 * genmloop.sh: #include "cpu-opc.h".
267 * sem-switch.c (case_INSN_ILLEGAL): Declare.
268 (labels): Add case_INSN_ILLEGAL.
269 (SWITCH): Add INSN_ILLEGAL case.
273 * model.c (model_module): Use 0 not NULL.
275 * genmloop.sh (sim_main_loop): Handle k&r c.
277 * sem-switch.c: Regenerate to get k&r c support.
278 * semantics.c: Likewise.
280 * m32r.c (ADD_{OV,CA}_SI,SUB_{OV,CA}_SI): Renamed to {ADD,SUB}[OC]FSI.
281 (ADDCSI,SUBCSI): New functions.
282 * sem-switch.c (addv,addv3,addx,subv,subx): Fix carry bit handling.
283 * semantics.c (addv,addv3,addx,subv,subx): Fix carry bit handling.
285 * simcache.c (simcache_{install,init,uninstall}): Use
286 DECLARE_MODULE_INSTALL_HANDLER.
287 (simcache_option_handler): Use DECLARE_OPTION_HANDLER.
289 * utils.c: #include "semops.h".
293 * profile.c (profile_print_simcache): Fix thinko in printf text.
295 * simdefs.h (struct argbuf): Add member to fmt_20 so it's not empty.
299 * m32r.c (h_cr_get): Rewrite.
301 * sem-switch.c (rte): bcarry renamed to bcond.
302 * semantics.c (rte): Likewise.
303 * simdefs.h (CPU_STATE): Likewise.
305 * config.in (HAVE_SYS_TIME_H): Add.
306 * configure.in: Check for sys/time.h.
307 * configure: Regenerated.
308 * utils.c: Include sys/time.h if present.
310 * common.c (sim_parse_args): Account for NULL terminating entry
311 in long_options table.
313 * genmloop.sh (RUN_FAST_P): Don't run fast if tracing.
314 Always use cache if configured in.
315 * mainloop.in (do_extract_insn{16,32}): New functions.
316 (normal,fast): Call them. Handle starting in left slot.
317 * simcache.c (simcache_option_handler): Disallow -c0.
318 * sem-switch.c (TRACE_RESULT): Redefine so no tracing.
320 * profile.c (profile_print_simcache): Fix percentage calc.
322 * Makefile.in (INCLUDE_DEPS): Delete simcommon.h.
326 * Makefile.in (COMMON_{PRE,POST}_CONFIG_FRAG): Add delimiters for.
327 (M32R_INCLUDE_DEPS): Use cpu-sim.h instead of m32r-sim.h.
329 (mrun.o): Don't depend on M32R_INCLUDE_DEPS.
330 (sim-if.o,m32r.o,utils.o): Likewise.
331 (common.o): Don't explicitly depend on mod-list.h.
332 (mainloop.c): Pass CPU to genmloop.sh.
333 (stamp-modules): Depend on configure.
334 (decode.o): Depend on decode,h, memops.h, semops.h, cpu-opc.h.
335 (extract.o): Depend on decode.h, memops.h, semops.h.
336 (semantics.o,seman-cache.o): Likewise.
337 (model.o,ops.o): Depend on memops.h.
338 (extr-cache.o): Disable building for the moment.
340 * simcommon.h: Delete, move contents into cgen-sim.h.
341 * cgen-sim.h: Don't include ansidecl.h,bfd.h,simfns.h.
342 (UINT,CGEN_CAT3): Define.
343 ({extract,semantic}_fn_t): Renamed to {EXTRACT,SEMANTIC}_FN.
344 (decode_t): Renamed to DECODE.
346 * simfns.h: Delete, contents moved to memops.h,semops.h.
347 * memops.h: New file.
348 * semops.h: New file.
349 * decode.h: Renamed from semantics.h.
351 * sim-argv.h: New file.
352 * Makefile.in (memory.o,trace.o,profile.o,simcache.o,common): Add
353 dependency of sim-argv.h.
355 * sim-alloca.h: New file.
356 * common.c: Include it.
357 * Makefile.in (common.o): Add dependency.
359 * config.in (HAVE_TIME_H,HAVE_SYS_RESOURCE_H): Add.
360 (HAVE_GETRUSAGE,HAVE_TIME): Add.
361 * configure.in: sinclude ../common/aclocal.m4.
362 Check for headers time.h, sys/resource.h.
363 Check for functions time, getrusage.
364 (sim_link_{files,links}): Add link cpu-opc.h.
365 (sim_profile): Add simcache.
366 (SIM_AC_PROFILE): Add simcache, profile.o.
367 (simcache module): Delete extr-cache.o for now.
368 (--enable-sim-cache): Allow specification of default cache size.
369 * configure: Regenerated.
371 * decode.c: #include cgen-sim.h,memops.h,semops.h,decode.h,
372 cpu-sim.h,cpu-opc.h. Don't include m32r-sim.h.
375 * extract.c: #include cgen-sim.h,decode.h,cpu-sim.h.
376 Don't include m32r-sim.h.
377 (*): Define/Undef FLD macro. Use it to reference ARGBUF.
378 Simplify profiling test with PROFILE_MODEL_P.
379 (mvfc,mvtc): Fix access of control registers.
380 * semantic.c: #include cgen-sim.h,memops.h,semops.h,decode.h,cpu-sim.h.
381 Don't include m32r-sim.h.
382 (*): Define/Undef FLD macro. Use it to reference ARGBUF.
383 Simplify profiling test with PROFILE_MODEL_P.
384 (mvfc,mvtc): Fix access of control registers.
386 * sem-switch.c: New file, for GCC computed goto support.
388 * genmloop.sh: Add #include's of bfd.h,callback.h,cgen-sim.h,
389 memops.h,semops.h,trace.h,cpu-sim.h.
390 (RUN_FAST_P): Change default to run fast if cache size > 0
392 (sim_main_loop): Record execution time.
393 Record instruction count even in fast mode.
394 (init): Allow cpu to provide init code in mainloop.in.
395 (FAST): Define as 0 or 1 depending on fast mode.
396 * mainloop.in (normal): Combine with fast case.
397 Add support for GCC computed gotos. Count simcache hits/misses.
398 (init): Initialize "switch" labels if GNUC.
400 * cgen-utils.in: Don't include opcode/cgen.h.
401 Include cgen-sim.h, cpu-opc.h.
402 * common.c: Don't include simcommon.h,mod-list.h. Include cgen-sim.h.
403 * m32r-sim.h: Don't include mod-list.h
404 (RUN_FAST_P): Delete.
405 * m32r.c: Don't include profile.h. #include ansidecl.h,cgen-sim.h,
406 semops.h,memory.h,trace.h
407 (h_cr_get,h_cr_set): New functions.
408 * memory.c: #include cgen-sim.h,callback.h.
409 * ops.c: Don't include profile.h,m32r-sim.h.
410 Include cgen-sim.h,memops.h,cpu-sim.h.
411 (MEMOPS_DEFINE_INLINE): Renamed from SIMFNS_DEFINE_INLINE.
412 * trace.c: Include cgen-sim.h,cpu-opc.h.
413 * trace.h (trace_insn_{init,fini}): Declare.
415 * model.c: Don't include signal.h,stdlib.h,m32r-sim.h.
416 Include cgen-sim.h,cpu-sim.h,cpu-opc.h.
417 Regenerate to get new insn aliases.
419 * mrun.c: #include "ansidecl.h".
420 (STATE): Use struct sim_state instead.
422 * profile.c: Surround #include <stdlib.h> with HAVE_STDLIB_H.
423 Don't include simcommon.h. Include cgen-sim.h,cpu-opc.h.
424 (PROFILE_{READ,WRITE}_MASK): Replace with PROFILE_MEMORY_MASK.
425 (profile_print_simcache): New function.
426 (profile_print): Call it. Print simulator speed stats.
427 * profile.h (PROFILE_{READ,WRITE}_MASK): Replace with
429 (MODULE_PROFILE_SIMCACHE_P): Define.
430 (PROFILE_SIMCACHE_MASK): Define.
431 (PROFILE_COUNT): New members total_insn_count,exec_time.
432 New members simcache_hits,simcache_misses.
433 (PROFILE_SIMCACHE_{HITS,MISSES}): Define.
434 (PROFILE_MODEL_P): New macro.
435 (PROFILE_COUNT_SIMCACHE_{HIT,MISS}): New macros.
437 * sim-if.c: Surround #include <stdlib.h> with HAVE_STDLIB_H.
438 Don't include simcommon.h,m32r-sim.h. Include cgen-sim.h,cpu-sim.h.
439 (sim_resume): Use USING_SIMCACHE_P instead of RUN_FAST_P.
440 (sim_info): Pass verbose to profile_print.
442 * simcache.c: Include cgen-sim.h,callback.h.
443 (USING_SIMCACHE_P): Replace with SIMCACHE_P.
444 (simcache_option_handler): Ensure cache size at least 2.
445 Allow config time specification of default cache size.
446 * simcache.h (struct simcache): Support GCC computed gotos.
447 (SIMCACHE_DEFAULT_CACHE_SIZE): USe CONFIG_SIM_CACHE_SIZE if defined.
448 (USING_SIMCACHE_P): New macro.
450 * simdefs.h: Don't include m32r-opc.h.
451 (CGEN_MAX_SIM_INSNS): Define.
452 (CPU_STATE): Regenerate.
453 (ARGBUF): Regenerate.
454 (extract,semantic handler decls): Delete, moved to decode.h.
456 * tconfig.in: Don't include cgen-sim.h,m32r-sim.h.
457 (USE_SEM_SWITCH): Define.
459 * utils.c: Include bfd.h,time.h,sys/resource.h.
460 (sim_time_get,sim_time_elapsed): New functions.
461 * cgen-sim.h (SIM_TIME,sim_time_get,sim_time_elapsed): Declare.
465 * configure.in (AC_CHECK_HEADERS): Handle i386-windows.
466 * configure: Regenerated.
467 * model.c: #include <stdlib.h>.
468 * simcache.c: #include "libiberty.h".
469 * simcommon.h (alloca): Handle i386-windows.
471 * common.c: #include libiberty.h.
472 (sim_signal_to_host): Return 5 if wingdb.
476 * configure.in (sim_cache): Enabled by default now, pass default
477 cache size to --enable-sim-cache.
478 * simcache.c (simcache_option_handler): Allow -c 0.
480 * simdefs.h,simfns.h: Regenerate
481 * decode.c,extract.c,model.c,ops.c,semantics.c: Regenerate.
485 Add model profiling support.
486 * configure.in: Handle --enable-sim-model.
487 (sim_profile): Add model.
488 * Makefile.in (model.o): Add rule.
489 * cgen-sim.h (UNIT,INSN_TIMING,MACH,MODEL): New types.
490 * extract.c (*): Add model profiling support.
491 * m32r.c (model_mark_{get,set}_h_gr): New functions.
492 (model_mark_{busy,unbusy}_reg): New functions.
493 * profile.c (profile_option_handler): Recognize --profile model.
494 (profile_print_model): New function.
495 (profile_print): Call it.
496 * profile.h (MODULE_profile_model,MODULE_PROFILE_MODEL_P): Define.
497 (PROFILE_MODEL_MASK,PROFILE_LABEL_WIDTH): Define.
498 (PROFILE_COUNT): New members cycle_count,cti_stall_count,
499 load_stall_count,taken_count,untaken_count.
500 * semantics.c (*): Add model profiling support.
501 * simcommon.h (struct sim_state): New members mach,model.
502 * simdefs.h (CPU_PROFILE,MODEL_TYPE,UNIT_TYPE): New type.
503 (MAX_MODELS,MAX_UNITS): Define.
504 * tconfig.in (STATE_EXTRA_MEMBERS): Add cpu_profile.
506 * Makefile.in (INCLUDE_DEPS): Add $(SIM_MODULES_HDRS).
507 (stamp-modules): Depend on genmodlist.sh.
508 * common.c (standard_options): Add --max-insns.
509 (copy_argv): New function.
510 * tconfig.in (SIM_HAVE_MAX_INSNS): Define.
511 * genmloop.sh: Allow mainloop.in to contain support code.
512 * mainloop.in: Move do_insn16,do_insn32 here.
513 * m32r.c (do_trap): Handle SYS_argvlen,SYS_argv,SYS_read.
514 * sim-if.c (sim_open): Don't set max insn count.
515 (sim_create_inferior): Save argv,envp.
516 * simcommon.h (struct sim_state): New members argv,envp.
517 * simdefs.h ([GS]ETTWI,[GS]ETTUWI,[GS]ETTAI): Define.
518 ([GS]ETMEMWI,[GS]ETMEMUWI,[GS]ETMEMAI): Define.
519 (ARGBUF): New members h_gr_get, h_gr_set.
520 * trace.c (trace_insn_init,trace_insn_fini): New functions.
521 (trace_printf): Print to buffer, output later by trace_insn_fini.
522 * trace.h (TRACE_INSN_{INIT,FINI}): Define.
526 * configure.in (AC_FUNC_ALLOCA): Call.
527 * configure: Regenerate.
528 * config.h (HAVE_ALLOCA_H): Add.
529 * simcommon.h: Add alloca support.
530 (DECLARE_MODULE_INSTALL_HANDLER): Define.
531 (DECLARE_OPTION_HANDLER): Define.
532 (MEM_FN): Declare using PARAMS.
533 (DECLARE_MEM_FN): Define.
534 * trace.c (trace_result): Tweak for !STDC.
535 * cgen-sim.h (UDI_FN_SUPPORT): Define if ! HAVE_LONGLONG.
536 * cgen-utils.in (disasm_sprintf): Fix va_arg call in !STDC case.
537 * common.c (sim_print_help_fn): Use PARAMS.
538 (standard_option_handler): Fix decl for !STDC systems.
539 * memory.c: #include <stdio.h>
540 (mem_flat_{install,init,uninstall}): Fix decl for !STDC systems.
541 (mem_flat_{read,write},mem_flat_option_handler): Likewise.
542 * profile.c (profile_install): Likewise.
543 (profile_option_handler): Likewise.
547 * semantics.c (*): Don't suffix big unsigned numbers with "U".
548 Prefix them with 0x instead.
550 * cgen-sim.h (DI_FN_SUPPORT): Define if ! HAVE_LONGLONG.
551 (SLADI,SRADI,CONVSIDI,CONVDISI): Delete, moved to simfns.h.
552 * semantics.c (machi,maclo,macwhi,macwlo,mulhi,mullo): Implement.
553 (mulwhi,mulwlo,mvtachi,mvtaclo,rac,rach): Implement.
554 * simfns.h: Add decls for functional DI,UDI,SF,DF,XF,TF support.
555 Add support for boolean and/or.
556 * utils.c: Redo naming of DI functional support.
557 (ANDDI,ORDI,ADDDI,MULDI,GEDI,LEDI,CONVHIDI): New functions.