3 * acinclude.m4 (SIM_AC_COMMON): Call AC_USE_SYSTEM_EXTENSIONS.
4 * nrun.c: Include string.h/strings.h.
5 * aclocal.m4, config.in, configure: Regenerate.
9 * acinclude.m4 (SIM_AC_OPTION_WARNINGS): Copy AC_ARG_ENABLE(werror),
10 WERROR_CFLAGS, and build_warnings from gdb/configure.ac. Comment
11 out -Werror initialization.
15 * Make-common.in (TAGS): Change a-z to [:lower:].
16 * acinclude.m4 (sim-trace): Likewise.
17 * gennltvals.sh: Change A-Z0-9 to [:upper:][:digit:].
18 Change A-Za-z0-9 to [:alnum:].
22 * nrun.c (main): Display strsignal of sigrc.
26 * Makefile.in (abs_srcdir): Declare.
27 (srcroot): Define in terms of abs_srcdir.
28 (headers): Change srcdir to abs_srcdir.
32 * dv-sockser.h, sim-assert.h, sim-fpu.c: Reformat the copyright
37 * Make-common.in (hw-config.h): Work around bug in Solaris 2.8
42 * syscall.c (cb_get_string): Rename from "get_string".
43 (get_path): Rename get_string call to cb_get_string.
47 * Make-common.in (VPATH): Add $(srccom).
49 (DEPMODE, DEPDIR, depcomp, COMPILE.pre, COMPILE.post, COMPILE,
50 POSTCOMPILE): New variables.
51 (.c.o): Replace recipe with call to $(COMPILE) and $(POSTCOMPILE).
52 Include dependency files, when using GNU Make. Delete all
53 dependency-only rules.
54 * aclocal.m4: Include ../../config/depstand.m4. Call
55 ZW_CREATE_DEPDIR and ZW_PROG_COMPILER_DEPENDENCIES.
56 (MAKE, GMAKE): New substs.
61 * configure.ac (AC_CHECK_FUNCS): Add posix_fallocate.
62 * configure, config.in: Regenerate.
63 * dv-cfi.c (attach_cfi_regs): Check for HAVE_POSIX_FALLOCATE.
67 * acinclude.m4: Call AC_CHECK_LIB when $hardware contains cfi.
71 * sim-profile.c (profile_info): Only print the title once.
75 * acinclude.m4: Rename from aclocal.m4.
76 * aclocal.m4: Regenerate.
80 * aclocal.m4: Change AC_PREREQ comment to 2.64.
82 * configure.ac: Change AC_PREREQ to 2.64. Replace AC_CONFIG_HEADER
83 call and common.m4 include with SIM_AC_COMMON(cconfig.h).
84 * configure: Regenerate.
88 * sim-alu.h (ALU32_AND): Clear carry flag.
89 (ALU32_AND): Clear carry flag.
93 * dv-cfi.c: Include stdbool.h.
97 * dv-cfi.c: Replace devices.h include with hw-base.h and hw-main.h.
101 * aclocal.m4 (SIM_AC_COMMON): Call AM_ZLIB, ACX_PKGVERSION, and
102 ACX_BUGURL. Define PKGVERSION and REPORT_BUGS_TO.
106 * sim-command.c: Include sim-options.h.
110 * aclocal.m4: Move sinclude comment after AC_INIT comment.
114 * aclocal.m4 (SIM_AC_COMMON): Call AC_REQUIRE on AC_PROG_CC.
115 Delete direct call to AC_PROG_CC.
119 * sim-command.c: New file.
120 * Make-common.in (SIM_NEW_COMMON_OBJS): Add sim-command.o.
121 (sim-command.o): New rule.
125 * sim-options.c (standard_option_handler): Remove arg[0] check
126 when freeing simulator_sysroot. Only strdup arg when arg[0] is
127 not an empty string, otherwise assign "" back to it.
131 * nltvals.def: Regenerate to include Blackfin syscalls again.
135 * sim-trace.c (OPTION_TRACE_SYSCALL): New enum.
136 (trace_options): Handle "trace-syscall" with OPTION_TRACE_SYSCALL.
137 (trace_option_handler): Handle OPTION_TRACE_SYSCALL.
138 (trace_idx_to_str): Likewise.
139 * sim-trace.h (TRACE_SYSCALL_IDX): New enum.
140 (TRACE_syscall): Define.
141 (WITH_TRACE_SYSCALL_P): Likewise.
142 (TRACE_SYSCALL_P): Likewise.
146 * dv-glue.c (hw_glue_finish): Move "name" to function scope and
147 remove now-unnecessary sub-scope for glue->type setting.
148 Check to see if the "reg" property exists before we use it, and
149 if it doesn't exist, error out for "glue" devices.
153 * dv-glue.c (hw_glue_finish): Set type to glue_or when name is
154 glue-or, and set type to glue_xor when name is glue-xor.
155 (hw_glue_port_event): Return immediately when type is glue_io
156 or unmatched. Handle glue_or and glue_xor types. Move HW_TRACE
157 and hw_port_event calls from glue_and to end of function.
161 * callback.c, dv-pal.c, dv-sockser.c, hw-base.c, hw-device.c,
162 hw-instances.c, hw-ports.c, hw-properties.c, hw-tree.c, sim-abort.c,
163 sim-arange.c, sim-config.c, sim-core.c, sim-engine.c, sim-events.c,
164 sim-hw.c, sim-io.c, sim-memopt.c, sim-options.c, sim-profile.c,
165 sim-resume.c, sim-stop.c, syscall.c: Add space before parenthesis
166 around function arguments.
170 * sim-options.c (complete_option_list, sim_complete_command):
175 * dv-glue.c: Fix up style.
179 * hw-alloc.c (hw_alloc_data): Adjust brace.
180 * hw-base.c (hw_base_data): Likewise.
181 (generic_hw_unit_decode): Fix indentation.
182 * hw-device.h (_hw_unit, enum, hw): Adjust braces.
183 * hw-events.c (hw_event, hw_event_data): Likewise.
184 * hw-handles.c (hw_handle_mapping, hw_handle_data): Likewise.
185 * hw-instances.c (hw_instance_data): Likewise.
186 * hw-instances.h (hw_instance): Likewise.
187 * hw-main.h (hw_descriptor, enum): Likewise.
188 * hw-ports.c (hw_port_edge, hw_port_data, empty_hw_ports): Likewise.
189 * hw-ports.h (hw_port_descriptor): Likewise.
190 * hw-properties.c (hw_property_data): Likewise.
191 * hw-properties.h (enum, hw_property, _ihandle_runtime_property_spec,
192 _range_property_spec, _reg_property_spec): Likewise.
193 * hw-tree.c (_name_specifier, printer): Likewise.
194 (split_device_specifier, parse_string_property, hw_tree_traverse,
195 print_size, print_reg_property, print_string, print_properties):
200 * aclocal.m4 (SIM_AC_OPTION_HARDWARE): Add cfi to default list.
201 * Make-common.in (dv-cfi.o): New rule.
202 * dv-cfi.c, dv-cfi.h: New files.
206 * gennltvals.sh: Search sys/_default_fcntl.h, in addition to
207 fcntl.h and sys/fcntl.h, for constants.
208 * nltvals.def: Regenerate.
209 * sim-io.c (sim_io_stat, sim_io_fstat): New functions.
210 * sim-io.h (sys/types.h, sys/stat.h): Include.
211 (sim_io_stat, sim_io_fstat): Declare.
215 * callback.c, cgen-engine.h, dv-core.c, dv-glue.c, dv-pal.c,
216 hw-base.c, hw-device.c, hw-device.h, hw-handles.c, hw-instances.c,
217 hw-ports.c, hw-ports.h, hw-properties.c, hw-tree.c, nrun.c,
218 run-sim.h, run.c, sim-alu.h, sim-assert.h, sim-base.h, sim-basics.h,
219 sim-config.c, sim-core.c, sim-core.h, sim-engine.h, sim-events.c,
220 sim-events.h, sim-fpu.c, sim-hw.c, sim-inline.h, sim-load.c,
221 sim-memopt.c, sim-n-core.h, sim-options.c, sim-profile.c,
222 sim-signal.c, sim-trace.c, sim-trace.h, sim-utils.c, sim-watch.c,
223 syscall.c: Trim trailing whitespace.
227 * gennltvals.sh: Handle bfin targets.
228 * nltvals.def: Regenerate.
232 * callback.c (fdbad): Return EBADF rather than EINVAL for bad
237 * hw-alloc.c (hw_alloc_data): Delete zalloc_p.
238 (hw_zalloc, hw_malloc): Delete zalloc_p reference.
239 (hw_free): Drop zfree logic and always call free.
240 * hw-base.c (hw_delete): Change zfree to free.
241 * hw-handles.c (hw_handle_remove_ihandle): Likewise.
242 (hw_handle_remove_phandle): Likewise.
243 * hw-instances.c (hw_instance_delete): Likewise.
244 * hw-tree.c (parse_reg_property): Likewise.
245 (parse_ranges_property): Likewise.
246 (parse_string_property): Likewise.
247 * sim-core.c (sim_core_uninstall): Likewise.
248 * sim-cpu.c (sim_cpu_free_all): Likewise.
249 * sim-hw.c (sim_hw_uninstall): Likewise.
250 * sim-memopt.c (do_memopt_delete): Likewise.
251 (sim_memory_uninstall): Likewise.
252 * sim-module.c (sim_module_uninstall): Likewise.
253 * sim-options.c (sim_parse_args): Likewise.
254 * sim-profile.c (profile_pc_cleanup): Likewise.
255 (profile_uninstall): Likewise.
256 * sim-watch.c (do_watchpoint_delete): Likewise.
257 * sim-utils.c (zfree): Delete.
258 (sim_state_free): Change zfree to free.
259 * sim-utils.h (zfree): Delete.
263 * sim-events.h (_sim_events.time_from_event): Change type to signed64.
267 * sim-hw.c (sim_hw_uninstall): Uncomment hw_tree_delete.
271 * sim-module.c (sim_pre_argv_init): Return SIM_RC_FAIL when asprintf
273 * sim-options.c (sim_parse_args): Issue an error and return SIM_RC_FAIL
275 * sim-utils.c (sim_do_commandf): Issue an error and return when
277 * sim-watch.c (sim_watchpoint_install): Return SIM_RC_FAIL when
282 * sim-memopt.c (do_memopt_add): Set nr_bytes to s.st_size before
283 bytes has been calculated and when mmap_next_fd is valid and
285 (memory_option_handler): Allow missing size when mmap_next_fd is
290 * aclocal.m4 (SIM_AC_OPTION_HARDWARE): Set $hardware to $2 when $2 is
291 not empty, and always append $3 to $hardware.
295 * hw-device.h (hw_abort, hw_vabort, hw_halt): Add noreturn attribute.
296 * sim-hw.h (sim_hw_abort): Likewise.
300 * sim-load.c (sim_load_file): Change buffer type to unsigned char *.
304 * run.1: Copyright year update.
308 * hw-alloc.h (HW_NALLOC): Define.
312 * hw-alloc.h (HW_NZALLOC): Change ME,TYPE,N to me,type,n.
316 * sim-memopt.c (OPTION_MAP_INFO): Define.
317 (memory_options): Handle --map-info.
318 (memory_option_handler): Handle OPTION_MAP_INFO.
322 * sim-profile.c (PROFILE_PC_FREQ, PROFILE_PC_NR_BUCKETS,
323 PROFILE_PC_SHIFT, PROFILE_PC_START, PROFILE_PC_END,
324 PROFILE_INSN_COUNT): Add stubs when profile is disabled.
328 * sim-core.c (WITH_HW): Add device casts to device_error,
329 device_io_read_buffer, and device_io_write_buffer.
333 * dv-sockser.c (dv_sockser_write_buffer): New function.
334 (dv_sockser_write): Rewrite to use dv_sockser_write_buffer.
335 * dv-sockser.h (dv_sockser_write_buffer): New prototype.
339 * callback.c (os_lseek): Call wrap on lseek result.
343 * dv-sockser.c (dv_sockser_init): Check error return from socket()
344 call by its equality to -1 not by it being negative.
345 (connected_p): Likewise for accept() call.
349 * sim-fpu.c (sim_fpu_zero, sim_fpu_qnan): Add 0 initializers.
353 * profile.c (sim_profile_print_bar): Add cpu argument.
357 * sim-profile.h (sim_profile_print_bar): Use sim_cpu, not SIM_CPU.
361 * sim-profile.c (profile_vprintf, profile_printf): New functions.
362 (profile_print_pc): Convert sim_io_printf to profile_printf.
363 (profile_print_insn): Likewise.
364 (profile_print_memory): Likewise.
365 (profile_print_core): Likewise.
366 (profile_print_model): Likewise.
367 (sim_profile_print_bar): Likewise.
368 (profile_print_speed): Likewise.
369 (profile_print_addr_ranges): Likewise.
370 (profile_info): Likewise.
371 * sim-profile.h (sim_profile_print_bar): Add cpu argument.
375 * sim-model.c (OPTION_MODEL): Convert to enum.
376 (OPTION_MODEL_INFO): New enum.
377 (model_options): Add model-info/info-model entries.
378 (model_option_handler): Handle OPTION_MODEL_INFO.
382 * dv-sockser.h (DV_SOCKSER_DISCONNECTED): Define.
383 * dv-sockser.c (dv_sockser_status): Set DV_SOCKSER_DISCONNECTED
388 * sim-hrw.c (sim_write): Add const to buf arg.
389 * sim-utils.h (sim_write_fn): Likewise.
393 * sim-profile.h (PROFILE_BRANCH_TAKEN, PROFILE_BRANCH_UNTAKEN): New
398 * dv-core.c (dv_core_descriptor): Add NULL initializer.
399 * dv-glue.c (hw_glue_ports, dv_glue_descriptor): Likewise.
400 * dv-pal.c (hw_pal_ports, dv_pal_descriptor): Likewise.
401 * dv-sockser.c (sockser_options): Likewise.
402 * hw-ports.c (empty_hw_ports): Likewise.
403 * sim-hw.c (hw_options): Likewise.
404 * sim-model.c (model_options): Likewise.
405 * sim-options.c (standard_options): Likewise.
406 * sim-profile.c (profile_options): Likewise.
407 * sim-trace.c (trace_options): Likewise.
408 * sim-watch.c (watchpoint_options): Likewise.
412 * sim-options.c (dup_arg_p): Add "const" to the "arg" argument,
413 the local "arg_table" variable, and the xmalloc cast.
417 * sim-fpu.c (sim_fpu_print_status): Add const markings to local
419 (sim_fpu_print_func): Add const markings to format buffer.
423 * sim-fpu.c (sim_fpu_print_status): Remove duplicate break statements.
427 * sim-trace.c (save_data): Add const markings to "buf" argument.
431 * sim-options.c (standard_option_handler): Add const markings to
436 * hw-ports.h: Fix spelling typos.
440 * configure.ac: Check for socklen_t.
441 * configure, config.in: Regenerated.
442 * dv-sockser.c (connected_p): Change addrlen type to socklen_t.
446 * sim-utils.c (sim_io_eprintf_cpu): Use %s with printf string.
447 * sim-hw.c (hw_option_handler): Likewise.
451 * sim-watch.c (watchpoint_type_to_str): Add const to return.
452 (interrupt_nr_to_str): Likewise.
453 (default_interrupt_names): Add const to pointer type.
454 (sim_watchpoint_install): Add const to prefix.
455 * sim-watch.h (struct _sim_watchpoints): Add const to interrupt_names.
459 * sim-core.c (sim_core_read_buffer): Change raddr to address_word.
460 (sim_core_write_buffer): Likewise.
464 * sim-trace.c (trace_option_handler): Move cpu_nr decl behind
465 the SIM_HAVE_ADDR_RANGE define.
469 * sim-core.h (device_error): Add const to message, and add printf
474 * sim-profile.c (profile_print_addr_ranges): Wrap with the
475 SIM_HAVE_ADDR_RANGE define.
479 * dv-glue.c (hw_glue_ports): Swap static and const.
483 * nrun.c (usage): Use void in definition.
484 * sim-options.c (dup_arg_p): Convert old-style function definition.
485 (sim_parse_args): Likewise.
486 (sim_print_help): Likewise.
487 * sim-trace.c (set_trace_option_mask): Likewise.
488 (set_trace_option): Likewise.
489 * sim-utils.c (sim_analyze_program): Likewise.
490 (sim_elapsed_time_get): Likewise.
491 (sim_elapsed_time_since): Likewise.
495 * sim/common/sim-options.c (enum): Remove SIM_HAVE_BIENDIAN ifdef.
496 (standard_options): Likewise.
497 (standard_option_handler): Likewise.
501 * hw-ports.c (TRACE): Delete.
502 * hw-properties.c (TRACE): Delete.
503 (hw_find_ihandle_runtime_property): Change TRACE to HW_TRACE.
504 (hw_find_integer_property): Likewise.
505 (hw_find_integer_array_property): Likewise.
506 (hw_add_duplicate_property): Likewise.
510 * hw-properties.h (hw_add_boolean_property): Rename "bool" to
515 * sim-model.c: Include sim-model.h
519 * sim-base.h: Declare sim_state.cpu as a pointer in the comment. Drop
520 & from the STATE_CPU() examples.
524 * cgen-accfp.c (fextsfdf): New arg how. All callers updated.
525 (ftruncdfsf, floatsisf, flostsidf, ufloatsisf, fixsfsi, fixdfsi,
527 * cgen-fpu.h (CGEN_FPCONV_KIND): New enum.
528 (struct cgen_fp_ops): Update signatures of floating point conversion
531 * Make-common.in (CGEN_SIM_DEPS): Define.
532 (CGEN_INCLUDE_DEPS): Use it.
533 (CGEN_MAIN_CPU_DEPS): Simplify.
537 * cgen-ops.h (SUBWORDXFSI): Fix word ordering.
538 (SUBWORDTFSI, JOINSIDI): Ditto.
542 * cgen-types.h (SETDI): Delete, unused.
546 * cgen-engine.h: Remove duplicated comment.
550 * cgen-engine.h (EXTRACT_MSB0_SINT): Renamed from EXTRACT_MSB0_INT.
551 (EXTRACT_LSB0_SINT): Renamed from EXTRACT_LSB0_INT.
555 * cgen-engine.h (EXTRACT_MSB0_LGSINT, EXTRACT_MSB0_LGUINT): Define.
556 (EXTRACT_LSB0_LGSINT, EXTRACT_LSB0_LGUINT): Define.
557 (EXTRACT_FN, SEMANTIC_FN): Use CGEN_INSN_WORD in prototype
558 instead of CGEN_INSN_INT.
560 * cgen-trace.h (trace_extract): Add cast to fix warning.
564 * cgen-mem.h (DECLARE_GETT): Don't inline.
565 (DECLARE_SETT): Ditto.
569 * sim-inline.h: Fix spelling error.
573 * Make-common.in: Add datarootdir.
577 * aclocal.m4 (SIM_CHECK_MEMBER, SIM_CHECK_MEMBERS)
578 (SIM_CHECK_MEMBERS_1): Remove.
579 * configure.ac: Replace SIM_CHECK_MEMBERS call with equivalent
580 AC_CHECK_MEMBERS one.
581 * configure: Regenerate.
583 * aclocal.m4 (SIM_CHECK_MEMBER): Use AU_ALIAS to define, not defn.
584 * configure: Regenerate.
588 * config.in: Regenerate.
589 * configure: Likewise.
591 * aclocal.m4 (SIM_CHECK_MEMBER): Replace definition with
592 definition of AC_CHECK_MEMBER.
594 * aclocal.m4: m4_include toplevel config/override.m4.
595 * configure: Regenerate.
599 * Makefile.in (datarootdir): New variable.
603 * Make-common.in (CPU_DIR): Define.
607 * Make-common.in (CGEN_CPU_EXTR,CGEN_CPU_READ): Pass canonical
608 identifiers for file types rather than encoding internal
609 implementation details of cgen.sh.
610 (CGEN_CPU_WRITE,CGEN_CPU_SEM,CGEN_CPU_SEMSW): Ditto.
611 * cgen.sh: Add support for parallel makes.
612 Rewrite cpu/decode handling to avoid generating "extrafiles" twice.
616 * gennltvals.sh: Add lm32 target.
617 * nltvals.def: Add lm32 syscall definitions.
621 Speed up simulator startup:
622 * sim-utils.c (zalloc): Use xcalloc.
626 * cgen-ops.h (ADDQI, SUBQI, MULQI, NEGQI, ABSQI, ADDHI, SUBHI)
627 (MULHI, NEGHI, ABSHI, ADDSI, SUBSI, MULSI, NEGSI, ABSSI, ADDDI)
628 (SUBDI, MULDI, NEGDI, ABSDI): Cast arguments to the unsigned type
629 variant; UQI, UHI, USI, UDI, and cast the result to the signed
630 type, QI, HI, SI, DI.
632 * callback.c (os_error): Mark as being a noreturn function.
633 * sim-io.h (sim_io_error): Similar for sim_io_error.
637 * aclocal.m4: Fix underquoting of function names.
641 * Make-common.in (run$(EXEEXT)): Add LDFLAGS.
645 * common.m4: Add test for libz and zlib.h.
646 * configure: Regenerate to track ../common/common.m4 changes.
653 * aclocal.m4: Include ../../config/acx.m4.
654 * common.m4: Use ACX_PKGVERSION and ACX_BUGURL.
655 * configure, config.in: Regenerate.
656 * Make-common.in (LIB_OBJS): Add version.o.
657 (version.c, version.o): New rules.
658 * run.c: Include version.h.
659 (usage): Add help parameter. Print output either to stdout or
660 stderr depending on that parameter.
661 (print_version): New.
662 (main): Check for --help and --version.
663 * run-sim.h (sim_target_display_usage): Add help parameter.
668 * sim-signal.c: Define missing signals for _WIN32.
672 * gennltvals.sh: Add cr16.
673 * nltvals.def: Rebuild.
677 * callback.c (cb_is_stdin, cb_is_stdout, cb_is_stderr): Add functions.
678 * syscall.c (cb_syscall): Test for stdin/out/err, not just fd 0/1/2.
682 * sim-memopt.c (memory_options): Mention that the
683 --memory-size switch accepts suffixes.
684 (parse_size): Handle a suffix on the size value.
685 * sim-options.c (standard_options): Mention that the mem-size
686 switch accepts suffixes.
687 (standard_option_handler): Handle a suffix on the size value.
691 * acconfig.h: Remove.
692 * config.in: Regenerate.
696 * gentmap.c: Fix compile time warning.
700 * sim-base.h (text_start, text_end, start_addr): Use bfd_vma type
701 for bfd text addresses.
706 * sim-fpu.c (pack_fpu): Handle QUIET_NAN correctly for
707 SIM_QUIET_NAN_NEGATED.
711 * sim-profile.c (profile_pc_init): Initialise default profiling
712 frequency to a prime number.
713 (profile_print_pc): Convert gmon.out sample data into target
718 * aclocal.m4: Pass ../../intl to ZW_GNU_GETTEXT_SISTER_DIR.
719 * common.m4: Likewise.
720 * configure: Regenerated.
724 * aclocal.m4: Use ZW_GNU_GETTEXT_SISTER_DIR.
725 * configure: Regenerated.
729 * Make-common.in: Replace INTLLIBS and INTLDEPS with LIBINTL
730 and LIBINTL_DEP everywhere.
731 (CSEARCH): Use INCINTL.
732 * aclocal.m4: Use ZW_GNU_GETTEXT_SISTER_DIR. Include new
734 * configure: Regenerated.
738 * aclocal.m4 (SIM_AC_OPTION_HARDWARE): Correct duplicate-
739 option-contents test.
743 * sim-signal.c (sim_signal_to_target): Fix typos.
745 * sim-reason.c (sim_stop_reason): Use
746 sim_signal_to_target, not sim_signal_to_host.
747 * sim-signal.c (sim_signal_to_host): Fix typo.
748 (sim_signal_to_target): New function.
752 * sim-load.c (xprintf, eprintf): Remove fallout from ANSI_PROTOTYPES
757 * sim-fpu.c (sim_fpu_abs): Always clear the sign bit.
759 * sim-fpu.c (pack_fpu): If SIM_QUIET_NAN_NEGATED is defined, use a
760 different fraction for a quiet NaN.
761 (unpack_fpu): Likewise.
765 * callback.c: Remove ANSI_PROTOTYPES conditional code.
766 * sim-load.c: Likewise.
767 * syscall.c: Likewise.
771 * Make-common.in (LIBDEPS): Correctly use INTLDEPS for dependency
776 * Make-common.in (install-common, installdirs): Honor $DESTDIR.
780 * sim-types.h: Changed unsigned32 and unsigned64 to signed32
781 and signed64 for __ALPHA__.
785 * aclocal.m4 Include ../../gettext.m4.
786 (CY_WITH_NLS, CY_GNU_GETTEXT, AM_PATH_PROG_WITH_TEST)
787 (AM_LC_MESSAGES): Remove.
788 * configure: Regenerate.
792 * aclocal.m4 (SIM_AC_OPTION_WARNINGS): Don't include
793 -Wuninitialized in the default list of build warnings if CFLAGS is
794 set, and doesn't include -O. (Using -Wuninitialized without
795 optimization produces a warning, which interferes with compilation
800 * callback.c (os_fstat): Don't declare 't' unless it's used.
804 * Make-common.in (CGEN): Load guile.scm, and include a trailing
806 (CGEN_FLAGS_TO_PASS): Include single quotes around the reference
807 to $(CGEN), to ensure that the command substitution happens where
808 the variable is referenced in the submake, not when the submake's
809 arguments are expanded.
810 (cgen.sh): Be prepared for the 'cgen' argument to contain spaces.
811 (arch, cpu, decode, cpu-decode, defs, desc): Place the name of the
812 application Scheme script directly after ${cgen}; don't precede it
817 * syscall.c (cb_syscall) <case CB_SYS_pipe>: New case.
818 * callback.c [HAVE_LIMITS_H]: Include limits.h.
820 (os_close, os_read, os_write, os_fstat, os_ftruncate): Support fd
821 being either end of a pipe.
822 (os_pipe, os_pipe_empty, os_pipe_nonempty): New functions.
823 (os_shutdown): Clear pipe state.
824 (default_callback): Initialize new members.
826 * callback.c (default_callback): Initialize target_endian.
827 (cb_store_target_endian): Renamed from store, new first parameter
828 host_callback *cb, drop last parameter big_p. Take endianness
830 (cb_host_to_target_stat): Change to use cb_store_target_endian.
831 Remove variable big_p.
832 * nrun.c (main): Initialize default_callback.target_endian.
836 * configure.ac: Replace SIM_AC_COMMON with sinclude of common.m4.
837 Add explicit call to AC_CONFIG_HEADER.
838 * common.m4: Delete call to AC_CONFIG_HEADER, update usage.
839 * configure: Re-generate.
843 * common.m4: New file, based on of aclocal.m4.
847 * aclocal.m4 (SIM_AC_OUTPUT): Rewrite to use 2.59 macros.
848 * configure: Regenerated to track ../common/aclocal.m4 changes.
852 * configure.ac: Rename configure.in, require autoconf 2.59.
853 * aclocal.m4 (SIM_AC_COMMON): Delete call to AC_CONFIG_AUX_DIR.
854 * configure: Re-generate.
858 * syscall.c (cb_syscall) <case CB_SYS_truncate>
859 <case CB_SYS_ftruncate>: New cases.
863 * syscall.c (cb_syscall) <case CB_SYS_lstat>: New case.
864 (cb_syscall) <case CB_SYS_rename>: New case.
865 * callback.c (os_lstat): New function.
869 * run.1: Document --sysroot=filepath.
870 * sim-options.c (STANDARD_OPTIONS): New member OPTION_SYSROOT.
871 (standard_options): Support --sysroot=<path>.
872 (standard_option_handler): Handle OPTION_SYSROOT.
873 * syscall.c (simulator_sysroot): Define, initialized empty.
874 (get_path): Prepend simulator_sysroot to absolute file path.
875 [HAVE_STRING_H]: Include string.h.
876 [!HAVE_STRING_H && HAVE_STRINGS_H]: Include strings.h.
877 * nrun.c [HAVE_UNISTD_H]: Include unistd.h.
878 (main): If simulator_sysroot is not empty, chdir there.
879 * sim-config.h (simulator_sysroot): Declare.
881 * aclocal.m4 (SIM_AC_OUTPUT): Substitute @cgen_breaks@ for "break
882 cgen_rtx_error" in a CGEN-generated simulator.
883 * gdbinit.in: Break on sim_core_signal too. Have autoconf
884 replacement for CGEN-related breakpoints.
888 * Make-common.in (sim-basics_h): Add $(callback_h).
892 * configure.in (SIM_CHECK_MEMBERS): Call for struct stat members
893 st_dev, st_ino, st_mode, st_nlink, st_uid, st_gid, st_rdev,
894 st_size, st_blksize, st_blocks, st_atime, st_mtime and st_ctime.
895 * aclocal.m4 (SIM_CHECK_MEMBER, SIM_CHECK_MEMBERS_1)
896 (SIM_CHECK_MEMBERS): New macros.
897 * callback.c (cb_host_to_target_stat): Use temporary macro ST_x
898 for struct stat member test and write. Add ST_x calls for each
899 struct stat member tested in configure.in. Wrap each ST_x call in
900 #ifdef of configure macro for that member.
901 * configure, config.in: Regenerate.
905 * cgen.sh: New thirteenth parameter opcfile, defaulting to
907 <case desc>: Pass -OPC opcfile.
908 * Make-common.in (cgen-desc): Pass $(opcfile) as thirteenth
909 parameter to cgen.sh.
913 * Make-common.in (sim-basics_h): Correct dependencies on
914 cconfig.h and tconfig.h
915 (sim-load.o): Correct typo in sim-basics_h dependency.
919 * Make-common.in (sim-*_h): Add macros for all sim headers listing
920 sub-dependencies for other sim files that they include.
921 (sim_main_headers): Use sim-*_h macros.
922 (sim-load.o): Depend on sim-basics_h, not sim_main_headers.
926 * sim-config.c (sim_config): Recognize when a bfd has unspecified
929 * Make-common.in (sim-load.o): Depend on $(sim_main_headers) and
931 (sim_main_headers): Add sim-utils.h.
935 * cgen-defs.h (ENDSWITCH): Changed to compile with gcc-3.4.2.
940 * Makefile.in (install-man, installdirs): Add DESTDIR prefix.
944 * hw-tree.c (parse_integer_property): Typo fix in comments.
945 * sim-options.c (sim_args_command): Likewise.
949 * run.c: Rename ui_loop_hook to deprecated_ui_loop_hook.
953 * callback.c (os_shutdown): Fix bug in last change: actually
954 mark file descriptors as available on startup.
958 [ include/gdb: * callback.h (host_callback_struct): Replace
959 members fdopen and alwaysopen with fd_buddy. ]
960 * callback.c: Changed all users.
964 * sim-load.c (sim_load_file): Use bfd_get_section_size
965 instead of bfd_get_section_size_before_reloc.
969 * dv-glue.c (hw_glue_finish): Cast result of sizeof to long before
970 passing it to printf.
974 * callback.c: Update copyright dates.
976 * sim-basics.h: Likewise.
977 * sim-load.c: Likewise.
978 * syscall.c: Likewise.
982 * callback.c: Include cconfig.h instead of config.h.
984 * sim-basics.h: Likewise.
985 * sim-load.c: Likewise.
986 * syscall.c: Likewise.
990 * Makefile.in (clean): Remove rm -f $(ALL), as $(ALL) is empty.
994 * sim-core.c (sim_core_trans_addr): Added for m32r-linux-run.
998 * sim-options.c (standard_options): Fix the names of H8
1003 * sim-trace.c, sim-base.h: Replace "struct symbol_cache_entry"
1004 with "struct bfd_symbol".
1008 * callback.c (os_truncate): Call "truncate", and not "stat".
1012 * sim-base.h: Replace "struct sec" with "struct bfd_section".
1016 * callback.c (os_ftruncate, os_truncate): New functions.
1017 (default_callback): Initialize ftruncate and truncate members.
1022 * cgen.sh: New arg archfile.
1023 * Make-common.in (cgen-arch,cgen-cpu,cgen-defs,cgen-decode,
1024 cgen-cpu-decode,cgen-desc): Update call to cgen.sh.
1028 * dv-glue.c (hw_glue_finish): Change %d to %ld to match sizeof.
1029 * sim-options.c (print_help): Cast the format with specifier to
1035 * cgen-par.h (flags, word1): New target-specific
1036 fields of CGEN_WRITE_QUEUE_ELEMENT.
1037 (CGEN_WRITE_QUEUE_ELEMENT_FLAGS): New accessor macro.
1038 (CGEN_WRITE_QUEUE_ELEMENT_WORD1): New accessor macro.
1039 * gennltvals.sh: Add frv target.
1040 * nltvals.def: Add frv target.
1044 * nrun.c (main): Delete h8/300 ifdef (sim now handles signals).
1045 * sim-reg.c: Fix cut-and-paste bug in comment.
1050 * sim-fpu.h: Update copyright.
1051 (sim_fpu_fraction, sim_fpu_guard): New prototypes.
1052 * sim-fpu.c: Update copyright.
1053 (sim_fpu_fraction, sim_fpu_guard): New inline functions.
1058 * cgen-trace.h (sim_disasm_read_memory): Update args to be compatible
1059 with disassemble_info:read_memory_func.
1060 * cgen-trace.c (sim_disasm_read_memory): Ditto.
1064 * common/run.c (main): Remove SIM_H8300 ifdef.
1066 * common/sim-options.c (STANDARD_OPTIONS): Add SIM_H8300SX.
1067 (standard_options): Add '-x' for h8/300sx.
1068 (standard_option_handler): Add case for SIM_H8300SX.
1072 * Make-common.in (sim-events.o, sim-config.o): Depend on sim-main.h.
1076 * sim-engine.c (sim_engine_halt): If jmpbuf is invalid, abort.
1077 (sim_engine_vabort): Ditto.
1081 * sim-utils.h (sim_analyze_program, sim_load_file): Rename _bfd to bfd.
1082 * sim-hload.c (sim_load), sim-base.h (sim_state_base): Ditto.
1083 * nrun.c (main): Ditto.
1087 * sim-engine.h (sim_engine_abort): Add noreturn attribute.
1088 (sim_engine_vabort): Ditto.
1089 (sim_engine_halt, sim_engine_restart): Ditto.
1093 * Make-common.in (SIM_NEW_COMMON_OBJS): Remove sim-break.o
1094 (sim-break_h): Delete macro.
1095 (sim-break.o): Delete rule.
1096 * sim-break.c: Delete file.
1097 * sim-break.h: Delete file.
1098 * sim-base.h [SIM_HAVE_BREAKPOINTS]: Don't include "sim-break.h".
1099 (STATE_BREAKPOINTS): Delete macro.
1100 (sim_state_base): Delete field breakpoints.
1101 * sim-module.c (modules) [SIM_HAVE_BREAKPOINTS]: Don't add
1102 sim_break_install to array.
1106 * run.c (usage): Fix typos.
1110 * sim-fpu.c (sim_fpu_inv): Use sim_fpu_div.
1114 * dv-core.c: Update copyright. sim/common contributed to the FSF.
1115 * dv-glue.c, dv-pal.c, hw-base.c, hw-base.h, hw-device.c: Ditto.
1116 * hw-device.h, hw-handles.c, hw-handles.h: Ditto.
1117 * hw-instances.c, hw-instances.h, hw-properties.c: Ditto.
1118 * hw-properties.h, hw-tree.c, hw-tree.h, sim-alu.h: Ditto.
1119 * sim-basics.h, sim-bits.c, sim-bits.h, sim-config.c: Ditto.
1120 * sim-config.h, sim-core.c, sim-core.h, sim-endian.c: Ditto.
1121 * sim-endian.h, sim-events.c, sim-events.h, sim-inline.c: Ditto.
1122 * sim-inline.h, sim-io.c, sim-io.h, sim-n-bits.h: Ditto.
1123 * sim-n-core.h, sim-n-endian.h, sim-types.h: Ditto.
1127 * run.c (main): Remove SIM_HAVE_ENVIRONMENT from #endif.
1131 * Make-common.in (SIM_EXTRA_DISTCLEAN): New macro.
1132 (distclean): Depend on it.
1136 * cgen-trace.h: Test __BFD_H_SEEN__ rather than BFD_VERSION.
1140 * Make-common.in (CGEN_READ_SCM): Remove ../../cgen/stamp-cgen.
1144 * run-sim.h: Add #ifdef RUN_SIM_H wrapper.
1145 (sim_set_callbacks, sim_size, sim_trace)
1146 (sim_set_trace, sim_set_profile_size, sim_kill): Declare. Moved
1147 to here from "gdb/remote-sim.h".
1151 * sim-resume.c (sim_resume): Add local variable sig_to_deliver to
1152 avoid possible longjmp problems with automatic variable siggnal.
1157 * Make-common.in (installdirs): Make $(libdir) too, needed when
1158 installing libsim.a.
1162 * gennltvals.sh (dir): Mark d30v as obsolete.
1163 * nltvals.def: Remove d30v.
1167 * hw-events.c (hw_event_queue_schedule): Initialize `dummy'.
1169 * sim-memopt.c: Include <unistd.h>.
1170 (do_memopt_add): Fix printf format.
1171 * sim-events.c (sim_events_schedule): Initialize ``dummy''.
1175 * aclocal.m4 (SIM_AC_OPTION_WARNINGS): Update to match GDB's
1176 --enable-gdb-build-warnings.
1177 * configure: Regenerated to track ../common/aclocal.m4 changes.
1181 * sim-fpu.c (unpack_fpu): Initialize exponent for
1184 (sim_fpu_sqrt): Same.
1188 * gentmap.c (gen_targ_map_c): Generate "gdb/callback.h".
1189 * sim-basics.h: Include "gdb/callback.h" and "gdb/remote-sim.h".
1191 * sim-load.c: Ditto.
1192 * callback.c: Ditto.
1194 * Make-common.in (callback_h): Define.
1195 (remote_sim_h): Define.
1197 (callback.o): Update.
1198 (syscall.o): Update.
1201 (sim-hload.o): Update.
1203 (sim-reason.o): Update.
1204 (sim-reg.o): Update.
1205 (sim-resume.o): Update.
1209 * run.c: Fix formatting.
1213 * run-sim.h: New header. Provide prototypes for functions used
1214 between run() and libsim.a which are not used by GDB.
1215 * run.c: Include run-sim.h.
1216 (main): If SIM_TARGET_SWITCHES is defined call
1217 sim_target_parse_command_line.
1218 (usage): If SIM_TARGET_SWITCHES is defined call
1219 sim_target_display_usage.
1223 * run.c: Made h8300s as new target, not h8300h alias.
1224 Added new option -S (h8300s target)
1225 * sim-options.c: Ditto.
1229 * callback.c: Use 'deprecated' rather than 'depreciated.'
1233 From wiz at danbala:
1234 * sim-fpu.h: Fix grammar and typos.
1239 * callback.c: Fix some spelling errors.
1240 * hw-device.h: Likewise.
1241 * hw-tree.c: Likewise.
1242 * sim-abort.c: Likewise.
1243 * sim-alu.h: Likewise.
1244 * sim-core.h: Likewise.
1245 * sim-events.c: Likewise.
1246 * sim-events.h: Likewise.
1247 * sim-fpu.h: Likewise.
1248 * sim-profile.h: Likewise.
1249 * sim-utils.c: Likewise.
1253 * cgen-ops.h (ADDCQI, ADDCFQI, ADDOFQI, SUBCQI, SUBCFQI, SUBOFQI):
1258 * sim-fpu.h (SIM_FPU_IS_QNAN): Replace "Quite" with "Quiet" in
1259 the comment for this enumerator.
1263 * sim-fpu.h: Fix comment about sim_fpu_* constants.
1267 * run.c (usage): Fix a typo.
1271 * Make-common.in (srccgen): Remove.
1272 (CGEN_CPU_DIR): Define.
1273 (CGEN_READ_SCM): Redefine without $(srccgen).
1274 (CGEN_ARCH_SCM): Ditto.
1275 (CGEN_CPU_SCM): Ditto.
1276 (CGEN_DECODE_SCM): Ditto.
1277 (CGEN_DESC_SCM): Ditto.
1281 * sim-load.c (sim_load_file): Put it back: external now.
1282 * sim-utils.c (sim_analyze_program): Ditto. Nyuk nyuk nyuk.
1286 * sim-load.c (sim_load_file): Delete call bfd_cache_close. BFD
1288 * sim-utils.c (sim_analyze_program): Ditto.
1292 * sim-utils.c (sim_analyze_program): Call bfd_cache_close after
1293 we're finished with its immediate use.
1294 * sim-load.c (sim_load_file): Ditto.
1298 Add support for mmap-based memory regions.
1299 * sim-memopt.c (mmap_next_fd): New global.
1300 (sim_memory_init): Reinitialize it.
1301 (OPTION_MEMORY_MAPFILE, memory_option_handler): Support new
1302 "--memory-mapfile FILE" option. Check for some errors.
1303 (do_memopt_add): Conditionally do mmap instead of malloc for
1304 backing store of simulated memory. Check for more errors.
1305 (do_simopt_delete, sim_memory_uninstall): Corresponding cleanup.
1306 * sim-memopt.h (munmap_length): New member of _sim_memopt.
1307 * configure.in: Look for mmap/fstat related functions and headers.
1308 * config.in, configure: Regenerated.
1312 * sim-core.c (sim_core_map_attach): Correct overlap-related
1317 * run.c (alloca-conf.h): Delete, no longer provided.
1321 * sim-trace.h (TRACE_VPU_IDX): Add.
1322 (TRACE_vpu): Define.
1323 (WITH_TRACE_VPU_P): Likewise.
1324 (TRACE_VPU_P): Likewise.
1325 * sim-trace.c (OPTION_TRACE_VPU): Define.
1326 (trace_options): Add --trace-vpu.
1327 (trace_option_handler): Handle OPTION_TRACE_VPU.
1328 (trace_option_handler): Include VPU tracing in --trace-semantics.
1329 (trace_idx_to_str): Handle TRACE_VPU_IDX.
1333 * sim-trace.h (TRACE_BRANCH_INPUT1): New macro.
1334 (TRACE_BRANCH_INPUT2): Likewise.
1338 * (profile_print_pc): Write header out in target byte order.
1342 * sim-profile.c (profile_pc_init): Correct bug in loop logic when
1343 adjusting the pc shift value.
1347 * aclocal.m4 (SIM_AC_OPTION_SCACHE): Properly handle the case
1348 where a numeric value is supplied.
1352 * cgen.sh: Allow extrafiles to include the semantics files when
1353 generating an ISA-specific decoder.
1357 * Make-common.in (sim-io.o): Depend on targ-vals.h.
1361 * cgen-trace.c (trace_result): Handle 'f' type operands; output
1362 them to the trace stream using sim_fpu_printn_fpu. Include
1367 * sim-fpu.h (sim_fpu_printn_fpu): Declare.
1368 * sim-fpu.c (print_bits): Add digits parameter. Print only as many
1369 trailing digits as specified (-1 to print all digits).
1370 (sim_fpu_print_fpu): New wrapper around sim_fpu_printn_fpu.
1371 (sim_fpu_printn_fpu): Rename from sim_fpu_print_fpu; update calls
1376 * cgen.sh: Set prefix/PREFIX (append ISA if applicable). Factor
1377 sed expressions into $sedscript, substituting @prefix@/@PREFIX@.
1382 * sim-endian.h: Don't have parameters on macro definitions which
1383 are simply renaming functions, to permit use of XCONCAT2 in both
1384 the macro name and the arguments in a use of such a definition.
1388 * cgen-ops.h (SUBWORDDFDI): New function.
1392 * Make-common.in (cgen-defs): New target.
1393 (cgen-decode): Pass $(EXTRAFILES).
1395 * genmloop.sh: Use @prefix@, not @cpu@ throughout. Add -prefix and
1396 -outfile-suffix options.
1400 * cgen-ops.h (SUBWORDSIQI): Mask off top bits.
1401 (SUBWORDSIUQI): Likewise.
1402 (SUBWORDDIHI): Likewise.
1403 (SUBWORDDIQI): New function.
1405 * cgen-trace.c (disassemble_insn): Remove unused declaration.
1406 * cgen-scache.c (scache_option_handler): Remove unused local var.
1410 * sim-profile.c (profile_option_handler): Remove unused prof_nr.
1414 * hw-events.c (delete_hw_event_data): Remove the scheduled events.
1418 * dv-core.c (dv_core_attach_address_callback): Don't abort if
1423 * hw-base.c (hw_delete): Don't free base_of_hw since it's freed.
1424 (set_hw_delete): Moved the macro as a function.
1425 * hw-base.h (set_hw_delete): Declare as external function.
1426 * hw-alloc.c (delete_hw_alloc_data): Allow to free the memory
1427 allocated using hw_malloc.
1431 * sim-options.c (sim_parse_args): Free the memory used for
1432 long_options, short_options, handlers, opt_cpu, orig_val.
1436 * cgen-ops.h (SUBBI): New macro.
1437 (SUBWORDSIQI, SUBWORDSIHI, SUBWORDSIUQI): New functions.
1438 (SUBWORDDIHI, SUBWORDDIUQI, SUBWORDDIDF): Likewise.
1442 * cgen-types.h (VOID): New type.
1446 * sim-fpu.c (sim_fpu_one): Set exponent to 0.
1447 (sim_fpu_two): Set exponent to 1.
1451 * cgen.sh: Handle an isa argument between cpu and mach. Default to
1452 `all'. Pass `-i' options to cgen applications.
1453 * Make-common.in (cgen-arch, cgen-cpu, cgen-decode, cgen-cpu-decode,
1454 cgen-desc): Pass $(isa) to cgen.sh.
1458 * cgen-utils.c (cgen_rtx_error): New function.
1462 * cgen-trace.c (sim_cgen_disassemble_insn): Handle failure
1463 conditions for sim_core_read_buffer().
1467 * cgen-utils.c (RORQI): New function.
1468 (ROLQI): New function.
1469 (RORHI): New function.
1470 (ROLHI): New function.
1474 * cgen-trace.c (sim_cgen_disassemble_insn): Make sure entire insn is
1475 in insn_value if it will fit.
1479 * Make-common.in, cgen.sh: Contribute CGEN-related build targets/rules.
1483 * sim-profile.c (profile_print_speed): Print cpu frequency if not zero.
1487 * sim-profile.h (PROFILE_DATA): Add cpu_freq.
1488 (PROFILE_CPU_FREQ): New macro.
1489 * sim-profile.c (OPTION_PROFILE_CPU_FREQUENCY): New enumerator.
1490 (profile-options): Add profile-cpu-frequency.
1491 (parse_frequency): New function.
1492 (profile_option_handler): Handle OPTION_PROFILE_CPU_FREQUENCY.
1493 (profile_print_speed): Print cpu frequency and simulated execution time.
1494 Re-indent other items to match.
1498 * dv-sockser.c (dv_sockser_init): Eliminate MIN macro.
1503 * Makefile.in (install): Install run.1 man page.
1508 * Makefile.in (headers,nltvals.def): Merge.
1513 * nrun.c (main): Print the simulator statistics only in
1515 * hw-properties.h (hw_find_integer_array_property): Fix
1516 prototype (use signed_cell).
1519 * sim-events.c (sim_events_remain_time): New function returning
1520 the time that remains before the event is raised.
1521 * hw-events.c (hw_event_remain_time): Likewise.
1522 * sim-events.h (sim_events_remain_time): Declare.
1523 * hw-events.h (hw_event_remain_time): Declare.
1526 * sim-hw.c: Use <errno.h> instead of <sys/errno.h>
1527 (OPTION_HW_LIST): New option --hw-list to list the devices.
1528 (hw_option_handler): List the device tree with 'sim_hw_print'.
1531 * sim-bits.h (_MSB_16, _LSB_16): Define for 16-bit targets.
1532 (MASK, LSBIT, MSBIT): Likewise and use _MSB_16 and _LSB_16.
1533 (EXTENDED): Define for 16-bit word size.
1534 * sim-bits.c (LSEXTRACTED, MSEXTRACTED, LSINSERTED,
1535 MSINSERTED, LSSEXT, MSSEXT): Implement for 16-bit word size.
1536 * sim-types.h: Added support for 16-bit targets.
1540 * cgen-trace.h (TRACE_USEFUL_MASK): Remove TRACE_EVENTS_IDX.
1545 * Makefile.in (distclean): Clean cconfig.h also.
1549 * configure: Regenerated to track ../common/aclocal.m4 changes.
1553 * aclocal.m4 (sim-profile): Enable the profiler by default.
1557 * run.c (main): Initialize sigrc.
1561 * sim-events.c (update_time_from_event): Add more detailed event
1566 * aclocal.m4 (cgen): Use guile to run cgen.
1570 * cgen-fpu.h: Rename extsfdf to fextsfdf. Rename truncdfsf to
1572 * cgen-accfp.c (fextsfdf): New function.
1573 (ftruncdfsf): New function.
1574 (cgen_init_accurate_fpu): Initialize fextsfdf and ftruncdfsf.
1578 * cgen-ops.h: Added TRUNCSISI.
1582 * cgen-par.h (cgen_write_queue_kind): Add CGEN_FN_SF_WRITE.
1583 (CGEN_WRITE_QUEUE_ELEMENT): Add fn_sf_write.
1584 (sim_queue_fn_si_write): Last argument is has type USI.
1585 (sim_queue_fn_sf_write): New function.
1586 * cgen-par.c (sim_queue_fn_si_write): Declare 'value' as USI.
1587 (sim_queue_fn_sf_write): New function.
1588 (cgen_write_queue_element_execute): Handle CGEN_FN_SF_WRITE.
1592 * run.c (main): When SIM_HAVE_ENVIRONMENT enable tracing with
1593 sim_set_trace and run simulator using sim_resume.
1594 (main): Add option ``-o'' - operating environment. Only continue
1595 after a signal when operating environment.
1596 (main): Always set REASON and SIGRC using sim_stop_reason.
1597 (sim_trace): Delete extern declaration.
1601 * callback.c: Fix compile time warning messages.
1602 * run.c: Fix compile time warning messages.
1606 * sim-profile.h: (set_profile_option_mask): Add prototype.
1607 * sim-profile.c (set_profile_option_mask): No longer static.
1611 * sim-arange.c: Include <string.h>
1615 * sim-options.c (print_help): '=' required before optional argument.
1616 * cgen-par.h (CGEN_FN_MEM_QI_WRITE): New enumerator.
1617 (CGEN_FN_MEM_HI_WRITE): New enumerator.
1618 (CGEN_FN_MEM_SI_WRITE): New enumerator.
1619 (CGEN_FN_MEM_DI_WRITE): New enumerator.
1620 (CGEN_FN_MEM_DF_WRITE): New enumerator.
1621 (CGEN_FN_MEM_XI_WRITE): New enumerator.
1622 (fn_mem_qi_write): New union members.
1623 (fn_mem_hi_write): New union members.
1624 (fn_mem_si_write): New union members.
1625 (fn_mem_di_write): New union members.
1626 (fn_mem_df_write): New union members.
1627 (fn_mem_xi_write): New union members.
1628 (sim_queue_fn_mem_qi_write): New function.
1629 (sim_queue_fn_mem_hi_write): New function.
1630 (sim_queue_fn_mem_si_write): New function.
1631 (sim_queue_fn_mem_di_write): New function.
1632 (sim_queue_fn_mem_df_write): New function.
1633 (sim_queue_fn_mem_xi_write): New function.
1634 * cgen-par.c (sim_queue_fn_mem_qi_write): New function.
1635 (sim_queue_fn_mem_hi_write): New function.
1636 (sim_queue_fn_mem_si_write): New function.
1637 (sim_queue_fn_mem_di_write): New function.
1638 (sim_queue_fn_mem_df_write): New function.
1639 (sim_queue_fn_mem_xi_write): New function.
1640 (cgen_write_queue_element_execute): Handle CGEN_FN_MEM_QI_WRITE,
1641 CGEN_FN_MEM_HI_WRITE, CGEN_FN_MEM_SI_WRITE, CGEN_FN_MEM_DI_WRITE,
1642 CGEN_FN_MEM_DF_WRITE, CGEN_FN_MEM_XI_WRITE.
1646 * cgen-accfp.c (subsf): Check status code.
1666 * cgen-par.h (fn_df_write): Mode of data is DF.
1667 (sim_queue_fn_df_write): Mode of data is DF.
1668 * cgen-par.c (sim_queue_fn_df_write): Mode of data is DF.
1672 * cgen-trace.c (SIZE_TRACE_BUF): Inxrease size of trace buffer.
1673 * cgen-par.h (CGEN_WRITE_QUEUE_SIZE): Increase size of queue.
1677 * cgen-par.h (cgen_write_queue_kind): Add CGEN_FN_XI_WRITE and
1678 CGEN_MEM_XI_WRITE members.
1679 (CGEN_WRITE_QUEUE_ELEMENT): Add fn_xi_write and mem_xi_write members.
1680 (sim_queue_fn_xi_write): New function.
1681 (sim_queue_mem_xi_write): New function.
1683 * cgen-par.c (sim_queue_fn_xi_write): New function.
1684 (sim_queue_mem_xi_write): New function.
1685 (cgen_write_queue_element_execute): Handle CGEN_FN_XI_WRITE and
1690 * cgen-par.h (insn_address): New field in CGEN_WRITE_QUEUE_ELEMENT.
1691 (CGEN_WRITE_QUEUE_ELEMENT_IADDR): New macro.
1692 * cgen-par.c: Set insn_address for each queued write. Get pc from
1693 cpu when executing queued writes.
1697 * cgen-par.h (sim_queue_fn_pc_write): New function.
1698 (CGEN_FN_PC_WRITE): New enumerator.
1699 (fn_pc_write): New union member.
1700 * cgen-par.c (sim_queue_fn_pc_write): New function.
1701 (cgen_write_queue_element_execute): Handle CGEN_FN_PC_WRITE.
1705 * cgen-par.h (CGEN_MEM_DI_WRITE): New enumerator.
1706 (CGEN_MEM_DF_WRITE): New enumerator.
1707 (mem_di_write): New union member.
1708 (mem_df_write): New union member.
1709 * cgen-par.c (sim_queue_mem_di_write): New function.
1710 (sim_queue_mem_df_write): New function.
1711 (cgen_write_queue_element_execute): Handle CGEN_MEM_DI_WRITE and
1713 * cgen-accfp.c (divsf): Check for division errors.
1717 * cgen-engine.h (EXTRACT_INT,EXTRACT_UINT): Delete.
1721 * cgen-par.h (CGEN_FN_HI_WRITE): New enumerator.
1722 (fn_hi_write): New union member.
1723 (sim_queue_fn_hi_write): New function.
1724 * cgen-par.c (sim_queue_fn_hi_write): New function.
1725 (cgen_write_queue_element_execute): Handle CGEN_FN_HI_WRITE.
1729 * cgen-defs.h (sim_engine_invalid_insn): New arg `vpc'.
1730 Change type of result to SEM_PC.
1734 * cgen-defs.h (sim_engine_invalid_insn): Now returns PC.
1738 * cgen-ops.h (SUBWORD*): Delete cpu arg.
1739 (JOIN*): Delete cpu arg.
1743 * genmloop.sh (@cpu@_scache_lookup): No longer takes last_insn_p
1745 (SET_LAST_INSN_P): Set last_insn_p flag in the scache element.
1749 * sim-fpu.c (i2fpu): Keep the guard bits sticky when converting
1754 * run.c (main): Check the sim_stop_reason and only halt simulation
1755 when a valid stop condition is identified.
1759 * hw-tree.c, hw-properties.c, hw-instances.c: Include "sim-io.h".
1763 * cgen-par.h (CGEN_BI_WRITE): New enumerator.
1764 (bi_write): New union element.
1765 (sim_queue_bi_write): New function.
1766 * cgen-par.c (sim_queue_bi_write): New function.
1767 (cgen_write_queue_element_execute): Handle CGEN_BI_WRITE.
1771 * configure: Regenerated to track ../common/aclocal.m4 changes.
1773 * aclocal.m4 (WERROR_CFLAGS, WARN_CFLAGS): Merge from
1774 ../gdb/configure.in.
1775 * Make-common.in (WERROR_CFLAGS, WARN_CFLAGS): Define.
1776 (SIM_WERROR_CFLAGS, SIM_WARN_CFLAGS): Define.
1777 (SIM_WARNINGS): Delete
1778 (CONFIG_CFLAGS): Update.
1782 * cgen-par.c: New file.
1783 * cgen-par.h: New file.
1784 * cgen-sim.h (cgen-par.h): #include it.
1785 * cgen-cpu.h (write_queue): New field.
1786 (CPU_WRITE_QUEUE): New access macro.
1787 * Make-common.in (CGEN_MAIN_CPU_DEPS): Add cgen-par.h.
1788 (cgen-par.o): New target.
1792 * cgen-types.h (mode_type,MODE_VOID): Renamed from MODE_VM.
1793 * cgen-utils.c (mode_names): Update.
1797 * genmloop.sh: New args -parallel-generic-write, -parallel-only.
1798 * cgen-engine.h (SEMANTIC_FN): Don't use version with PAREXEC
1799 buffer arg if WITH_PARALLEL_GENWRITE.
1800 (struct insn_sem): Handle WITH_PARALLEL_GENWRITE.
1801 (struct idesc): Ditto.
1805 * sim-model.c (model_option_handler): Add \n to error message.
1809 * cgen-engine.h (SEM_FN_NAME,SEMF_FN_NAME): Delete.
1810 (insn_sem): Rewrite.
1811 (sem_fn_desc): New struct.
1813 * genmloop.sh (scache case,@cpu@_scache_lookup): Profile scache hit,
1815 (scache case): Split into non-parallel/parallel versions.
1816 (@cpu@_engine_run_{full,fast}): Call @cpu@_{sem,semf}_init_idesc_table
1817 if not use semantic switch version.
1821 * cgen-defs.h (SEM_BRANCH_TYPE): New enum.
1822 * cgen-engine.h (SEM_BRANCH_UNTAKEN,SEM_BRANCH_UNCACHEABLE): Delete.
1823 (SEM_BRANCH_INIT_EXTRACT): Delete.
1824 (SEM_BRANCH_INIT): Replace npc_ptr with br_type.
1825 (SEM_BRANCH_FINI): Ditto.
1826 (SEM_BRANCH_VIA_ADDR): Ditto.
1827 (SEM_BRANCH_VIA_CACHE): Ditto. Delete cachvarptr arg.
1828 (SEM_BRANCH_ADDR_CACHE): Delete.
1829 (SEM_SKIP_COMPILE,SEM_SKIP_INSN): New macros.
1830 * cgen-scache.h (cpu_scache): Replace member pbb_pr_npc_ptr with
1832 * genmloop.sh (eng.hin): Update prototype of ${cpu}_pbb_cti_chain.
1833 (@cpu@_pbb_begin): Initialize branch_target.
1834 (@cpu@_pbb_cti_chain): Replace arg new_vpc_ptr with br_type.
1835 (@cpu@_engine_run_full): Replace local pbb_br_npc_ptr with
1837 (@cpu@_engine_run_fast): Ditto.
1841 * cgen-utils.c (RORSI): New function.
1842 (ROLSI): New function.
1846 * Makefile.in (TAGS): Tweak TAGS regex.
1847 * cgen-mem.h (*): Add TAGS markers.
1851 * sim-resume.c (sim_resume): Ensure that the siggnal [sic] is only
1852 passed in when sim_resume is first entered - don't re-pass it
1857 * sim-options.c (standard_option_handler): Add OPTION_LOAD_VMA and
1858 OPTION_LOAD_LMA but only when is defined.
1859 (standard_options): When SIM_HANDLES_LMA is defined include
1860 options --load-lma and --load-vma.
1861 (standard_install): Initialize STATE_LOAD_AT_LMA_P.
1863 * sim-base.h (STATE_LOAD_AT_LMA_P): Define.
1864 (struct sim_state_base): Add load_at_lma_p.
1865 * sim-hload.c (sim_load): Replace SIM_HANDLES_LMA with
1866 STATE_LOAD_AT_LMA_P.
1870 * nrun.c (main): Re-format loop gnu style.
1874 * dv-sockser.c (connected_p): Initialize addrlen.
1878 * cgen-accfp.c (floatsidf): New function.
1879 (fixdfsi): New function.
1883 * sim-model.c (sim_model_init): Issue error if machine is unsupported.
1887 * Make-common.in (CGEN_MAIN_CPU_DEPS): Add cgen-fpu.h.
1888 (cgen-fpu.o,cgen-accfp.o): Add rules for.
1889 * cgen-fpu.c: New file.
1890 * cgen-fpu.h: New file.
1891 * cgen-accfp.c: New file.
1892 * cgen-cpu.h (CGEN_CPU): New member fpu.
1893 * cgen-mem.h: Redo fp support.
1894 * cgen-ops.h: Delete k&r support. Redo fp support.
1895 * cgen-sim.h: Include cgen-fpu.h.
1896 * cgen-types.h (SF,DF,XF,TF): Moved to cgen-fpu.h.
1900 * cgen-engine.h (TARGET_SEM_BRANCH_FINI): Remove cruft at end of
1902 * genmloop.sh (@cpu@_scache_lookup): Delete unused local var.
1903 (@cpu@_pbb_cti_chain): Minor clean up.
1907 * aclocal.m4: Use AC_EXEEXT instead of AM_EXEEXT. Delete defn of
1908 AM_CYGWIN32 and AM_EXEEXT.
1909 * configure: Regenerate.
1913 * sim-core.c (device_error,device_io_read_buffer,
1914 device_io_write_buffer): Delete decls.
1915 * sim-core.h: Put them here.
1917 * sim-core.c (sim_core_read_buffer): Pass sd to device_io_read_buffer.
1918 (sim_core_write_buffer): Pass sd to device_io_write_buffer.
1919 * sim-n-core.h (sim_core_read_aligned_N): Ditto.
1920 (sim_core_write_aligned_N): Ditto.
1924 * sim-memopt.c (sim_memory_uninstall): Don't look into
1929 * cgen-utils.scm (virtual_insn_entries): Update attribute definition.
1933 * sim-core.c (sim_core_read_buffer): Handle NULL cpu when WITH_DEVICES.
1934 (sim_core_write_buffer): Ditto.
1938 * sim-io.c (sim_io_poll_quit): Only call the poll_quit callback
1939 after the interval counter has expired.
1940 (POLL_QUIT_INTERVAL): Define. Used to tweak the frequency of
1941 poll_quit callbacks. May be overridden by Makefile.
1942 (poll_quit_counter): New global.
1943 * sim-events.c: Remove all mentions of ui_loop_hook. The
1944 host callback "poll_quit" will serve the purpose.
1945 * run.c: Add definition of ui_loop_hook when NEED_UI_LOOP_HOOK
1947 * nrun.c: Remove declaration of ui_loop_hook.
1951 * cgen-run.c (sim_resume): Don't tell main loop to run "forever"
1952 if being used by gdb.
1956 * cgen-types.h (XF,TF): Tweak.
1957 * cgen-ops.h: Redo inline support. Delete DI_FN_SUPPORT,
1959 (SUBWORD*,JOIN*): Define.
1960 * cgen-trace.c (sim_cgen_disassemble_insn): Update, base_insn_bitsize
1961 moved into cpu descriptor.
1962 * sim-model.h (MACH): New member `num'.
1966 * cgen-cpu.h (CGEN_DISASSEMBLER): New type.
1967 (CGEN_CPU): Member opcode renamed to cpu_desc.
1968 New members get_idata,disassembler.
1969 * cgen-defs.h (CGEN_INSN_VIRTUAL_P): CGEN_INSN_ATTR renamed to
1970 CGEN_INSN_ATTR_VALUE.
1971 (CGEN_STATE): Delete member opcode_table.
1972 (sim_disassemble_insn): Delete decl.
1973 * cgen-engine.h (struct insn_sem): Moved to here from <cpu>-decode.c.
1974 (struct idesc): Moved to here from <cpu>-decode.h.
1975 * cgen-run.c (prime_cpu): Call prepare_run callback.
1976 * cgen-trace.h (SFILE): New type.
1977 (sim_disasm_sprintf): Declare.
1978 (sim_disasm_read_memory,sim_disasm_perror_memory): Declare.
1979 (sim_cgen_disassemble_insn): Declare.
1980 * cgen-trace.c: Include errno.h,dis-asm.h. Don't include cpu-opc.h.
1981 (insn_fields): Delete.
1982 (trace_insn_fini): STATE_OPCODE_TABLE (sd) replaced with
1984 (trace_insn): Call CPU_DISASSEMBLER hook.
1985 (sim_disasm_sprintf): New function.
1986 (sim_disasm_read_memory): New function.
1987 (sim_disasm_perror_memory): New function.
1988 (sim_cgen_disassemble_insn): New function.
1989 * cgen-utils.c: Don't include cpu-opc.h.
1990 (virtual_insn_entries): New static local.
1991 (cgen_virtual_insn_table): Renamed from cgen_virtual_opcode_table.
1992 (cgen_insn_name): Rewrite.
1993 (disasm_sprintf,sim_disassemble_insn): Moved to cgen-trace.c.
1994 * cgen.sh (desc): New file generator handler.
1995 * genmloop.sh: -parallel changed to -parallel-read/-parallel-write.
1996 Define WITH_PARALLEL_READ/WITH_PARALLEL_WRITE appropriately.
1997 Don't include cpu-opc.h,cpu-sim.h.
1998 * sim-model.c (model_set): Delete SIM_DESC arg.
1999 (sim_model_set): Update.
2000 * sim-model.h (MACH): New member prepare_run.
2004 * sim-memopt.c (memory_option_handler): Avoid memset() calls
2005 if redundant with allocator functions.
2009 * cgen-engine.h (EXTRACT_LSB0_{INT,UINT}): Fix.
2011 * sim-profile.h: Make like sim-trace.h.
2012 (PROFILE_USEFUL_MASK): New macro.
2013 * sim-profile.c (profile_options): Make like trace_options, allow
2014 optional on|off arg where applicable.
2015 (set_profile_option_mask): New function.
2016 (sim_profile_set_option): New function.
2017 (profile_option_handler): Simplify.
2018 Have -p only enable selected things, not everything.
2019 Add missing break to OPTION_PROFILE_PC_RANGE.
2020 * cgen-scache.c (scache_options): Allow optional on|off arg to
2022 (scache_option_handler): Use sim_profile_set_option.
2026 * sim-memopt.c (memory_options): Add MEMORY_FILL option.
2027 (memory_option_handler): Implement MEMORY_FILL option. Make
2028 MEMORY_CLEAR an alias for MEMORY_FILL=0.
2029 (parse_ulong_value): New function.
2030 (do_memopt_add): Allocate all buffers. Optionally fill them.
2034 * hw-events.c (hw_event_queue_schedule): _vtracef takes a
2035 va_list, not an integer.
2036 * sim-events.c (sim_events_schedule): Likewise.
2038 * sim-types.h (UNSIGNED32, UNSIGNED64): Properly cast to
2039 the appropriate type.
2043 * cgen-defs.h (PCADDR,CIA): Define in terms of IADDR.
2044 (sim_disassemble_insn): Update prototype.
2045 (sim_engine_invalid_insn): Ditto.
2046 * cgen-engine.h (SEMANTIC_FN): Add !WITH_SCACHE version.
2047 (SEM_BRANCH_INIT): PCADDR->IADDR.
2048 (SEM_NBRANCH_FINI): New macro for !WITH_SCACHE case.
2049 * cgen-scache.c (scache_lookup,scache_lookup_or_alloc): PCADDR->IADDR.
2050 * cgen-scache.h (*): Ditto.
2051 * cgen-trace.c (*): Ditto.
2052 * cgen-trace.h (*): Ditto.
2053 * cgen-utils.c (*): Ditto.
2054 * cgen-types.h (integer modes): Use signedNN/unsignedNN types.
2056 * genmloop.sh (@cpu@_fill_argbuf): Add !WITH_SCACHE support.
2057 (simple engine framework): Rewrite.
2058 * sim-module.c (modules): Install model module sooner (and in
2059 particular before the profile module).
2063 * sim-model.h (sim_mach_lookup_bfd_name): Add prototype.
2064 * sim-model.c (sim_mach_lookup_bfd_name): New function.
2065 (sim_model_init): Call it.
2067 * cgen-trace.c (trace_insn): Pass pc to trace_prefix for virtual insns.
2071 * Make-common.in (CGEN_INCLUDE_DEPS): Add cgen-defs.h, cgen-engine.h.
2072 * cgen-engine.h (SEM_BRANCH_FINI): New arg pcvar, all uses updated.
2073 (SEM_BRANCH_INIT_EXTRACT): New macro.
2074 (SEM_BRANCH_INIT): Add taken_p.
2075 (TARGET_SEM_BRANCH_FINI): Provide default definition.
2076 (SEM_BRANCH_FINI): Use it.
2078 * cgen-run.c (sim_resume): Handle tracing of last insn.
2079 * cgen-scache.h (WITH_SCACHE): Define as 0 if not defined.
2080 * cgen-trace.c (current_abuf): New static global.
2081 (trace_insn_init): Initialize it.
2082 (trace_insn_fini): Use it.
2083 (trace_insn): Set it.
2084 * cgen.sh (arch case): Pass -m ${mach} to cgen.
2085 * genmloop.sh (@cpu@_emit_before): Only define if WITH_SCACHE_PBB.
2086 (@cpu@_emit_after): Ditto.
2087 (simple @cpu@_engine_run_full): New local `pc'. Initialize semantic
2088 labels if WITH_SEM_SWITCH_FULL.
2089 * sim-model.c: Include bfd.h.
2090 (sim_model_init): New function.
2091 (sim_model_install): Record init fn.
2092 * sim-model.h (MACH): New member bfd_name.
2093 * sim-module.c (modules): Initialize model before scache.
2097 * dv-sockser.c (DEFAULT_TIMEOUT): Increase to 1 ms.
2099 * nrun.c (main): Remain in simulation loop for traps and
2100 exceptions when in operating environment mode.
2101 (ui_loop_hook): New stub hook for standalone use.
2102 * sim-events.c (sim_events_process): Call ui_loop_hook
2103 periodically on CYGWIN host.
2105 * sim-reason.c (sim_stop_reason): Return host signal numbers
2106 to gdb on sim_stopped and sim_signalled cases.
2107 * sim-engine.c (sim_engine_halt): Call SIM_CPU_EXCEPTION_SUSPEND
2108 hook just before longjmp.
2109 * sim-resume.c (sim_resume): Call SIM_CPU_EXCEPTION_RESUME
2110 hook just before sim_engine_run.
2112 * sim-n-core.h (sim_core_trace_M): Allay const warning.
2113 * sim-trace.h (trace_generic): Ditto.
2114 * sim-trace.c (trace_generic): Ditto.
2118 * Make-common.in (SIM_MAIN_DEPS): New var.
2119 (CGEN_MAIN_CPU_DEPS): New var.
2120 * aclocal.m4: Add --enable-cgen-maint option.
2121 * cgen-mem.h (GETMEM*): New arg `pc'. Pass to sim_core routine.
2123 (GETIMEM*): Pass pc value to sim_core routine.
2127 * hw-handles.c (hw_handle_add_ihandle, hw_handle_add_phandle):
2128 Compare with ZERO not NULL.
2132 * hw-properties.c, hw-instances.c, hw-tree.c: Include
2137 * sim-arange.c: Include libiberty.h, and stdlib.h if present.
2138 * sim-trace.c: Include stdlib.h if present.
2139 * dv-sockser.c: Include unistd.h if present.
2140 (dv_sockser_init): Add missing arg to call to sim_io_eprintf.
2141 * cgen-scache.c (scache_flush): Delete unused locals i,sc.
2145 * gennltvals.sh: Add i960.
2146 * nltvals.def: Rebuild.
2150 * cgen-defs.h: New file, old cgen-sim.h.
2151 * cgen-sim.h: Simple header that includes others.
2152 * sim-arange.c: New file.
2153 * sim-arange.h: New file.
2154 * sim-basics.h: Include it.
2155 * Make-common.in (SIM_NEW_COMMON_OBJS): Add sim-arange.o.
2156 (sim-arange.o): Add rule for.
2157 * sim-cpu.h (sim_cpu_msg_prefix): Add prototype.
2158 (sim_io_eprintf_cpu): Add prototype.
2159 * sim-inline.h (HAVE_INLINE): Define if GNUC.
2160 (INLINE2): New macro.
2161 (EXTERN_INLINE): New macro.
2162 * sim-module.c (sim_post_argv_init): Initialize cpu backlink
2163 before calling module init fns.
2164 * sim-profile.c (OPTION_PROFILE_*): Move into enum.
2165 (profile_init): New function.
2166 (profile_options): New option --profile-range.
2167 (profile_option_handler): Handle --profile-range.
2168 (profile_print_insn): Qualify address range specific section titles.
2169 (profile_print_addr_ranges): New function.
2170 (profile_info): Print address ranges if specified.
2171 (profile_install): Set profile_init init fn.
2172 * sim-profile.h (PROFILE_DATA): New member `range'.
2173 * sim-trace.c (trace_init): New function.
2174 (trace_options): New option --trace-range.
2175 (trace_option_handler): Handle --trace-range.
2176 (trace_install): Set trace_init init fn.
2177 * sim-trace.h (TRACE_DATA): New member `range'.
2178 * sim-utils.c (sim_cpu_msg_prefix): New function.
2179 (sim_io_eprintf_cpu): New function.
2180 * cgen-engine.h (PC_IN_TRACE_RANGE_P): New macro.
2181 (PC_IN_PROFILE_RANGE_P): New macro.
2182 * cgen-trace.c (trace_insn_init): Set current_insn to NULL.
2183 (trace_insn_fini): New arg abuf. All callers updated.
2184 Exit early if trace_insn not called. Check ARGBUF_PROFILE_P before
2185 printing cycle counts.
2186 * cgen-trace.h (trace_insn_fini): Update prototype.
2187 (TRACE_RESULT_P): New macro.
2188 (TRACE_INSN_INIT,TRACE_INSN_FINI): New arg abuf. All callers updated.
2189 (TRACE_INSN): Check ARGBUF_TRACE_P.
2190 (TRACE_EXTRACT,TRACE_RESULT): New arg abuf. All callers updated.
2191 * cgen-types.h (SIM_INLINE): Delete.
2192 (SIM_HAVE_MODEL,SIM_HAVE_ADDR_RANGE): Define.
2193 * cgen-utils.c: Don't include cgen-engine.h
2194 * genmloop.sh (@cpu@_fill_argbuf): New function.
2195 (@cpu@_fill_argbuf_tp): New function.
2196 (@cpu@_emit_before,@cpu@_emit_after): New functions.
2197 (@cpu@_pbb_begin): Prefix cti_sc,insn_count with '_'.
2198 (SET_CTI_VPC,SET_INSN_COUNT): Update.
2199 (@cpu@_pbb_before): Check ARGBUF_PROFILE_P before calling
2200 doing profiling. Update call to TRACE_INSN_INIT,TRACE_INSN_FINI.
2201 (@cpu@_pbb_after): Check ARGBUF_PROFILE_P before calling
2202 doing profiling. Update call to TRACE_INSN_FINI.
2204 * sim-memopt.c (sim_memory_uninstall): Result type is `void'.
2208 * sim-memopt.c (sim_memory_uninstall): Deallocate all memory
2213 * sim-inline.c (SIM_INLINE_P): Fix typo.
2217 * cgen-utils.c (cgen_virtual_opcode_table): Update.
2221 * gennltvals.sh: Add v850 and d10v. Sort alphabetically.
2222 * nltvals.def: Re-generate.
2226 * sim-core.c (reverse_n, sim_core_uninstall, sim_core_init,
2227 sim_core_map_attach, sim_core_map_detach, next_event_queue,
2228 new_sim_core_mapping): Only define when EXTERN_SIM_CORE_P, pacify
2230 * sim-events.c (sim_events_uninstall, sim_events_suspend,
2231 sim_events_resume, sim_events_zalloc, insert_sim_event): Ditto.
2235 * genmloop.sh (${cpu}_pbb_chain): Watch for Ctrl-C's.
2236 (${cpu}_pbb_cti_chain): Ditto.
2240 * Make-common.in (cgen-utils.o): Depend on cgen-engine.h.
2241 * cgen-engine.h (EXTRACT_[ML]SB0_{INT,UINT}): New macros.
2242 (EXTRACT_INT,EXTRACT_UINT): New macros.
2243 (SEM_SEM_ARG): New macro.
2244 (SEM_NEXT_VPC): New arg `pc'.
2245 * cgen-sim.h (EXTRACT_SIGNED,EXTRACT_UNSIGNED): Delete.
2246 (sim_disassemble_insn): Update prototype.
2247 * cgen-trace.c (current_insn,insn_fields): New static locals.
2248 (trace_insn): Set them.
2249 * cgen-utils.c: #include cgen-engine.h.
2250 (sim_disassemble_insn): New arg insn_fields.
2251 Handle variable length insns.
2252 * genmloop.sh: Only emit pbb decls if -pbb.
2253 (${cpu}_scache_lookup): New arg `vpc'.
2254 (scache support): Fetch pc before entering loop.
2256 * gennltvals.sh: Add fr30 support.
2257 * nltvals.def: Rebuild.
2261 * sim-types.h: Re-do type system so that GCC's attribute and mode
2262 are used to specify types. Handle case of ALPHA.
2266 * aclocal.m4: Add tests for dlopen family.
2267 * config.in: Regenerated.
2271 * sim-hload.c (sim_load): Pass `prog_name' to sim_load_file, not NULL.
2275 * genmloop.sh (eng.hin): Rename HAVE_PARALLEL_EXEC to
2276 HAVE_PARALLEL_INSNS, define as 0 or 1. Emit decls of fns in mloop.cin.
2277 * cgen-engine.h: Typedefs of IADDR,CIA,SEM_ARG,SEM_PC moved ...
2278 * cgen-sim.h: ... to here.
2282 * aclocal.m4 (enable-build-warnings): Replace
2283 enable-sim-warnings. Extend =LIST syntax so that prepend and
2284 append of options is possible. Drop -Werror, add
2285 -Wstrict-prototypes for GDB compatibility.
2286 * Make-common.in (SIM_WARNINGS): Update.
2290 * Make-common.in (CGEN_INCLUDE_DEPS): Define.
2291 (sim-core.o): Delete duplicate dependence on $(SIM_EXTRA_DEPS).
2292 (sim-cpu.o,sim-endian.o,sim-hw.o): Ditto.
2293 (cgen-run.o,cgen-scache.o,cgen-trace.o,cgen-utils.o): Delete
2294 explicit cgen header dependencies, require SIM_EXTRA_DEPS to include
2296 * cgen-cpu.h: New file.
2297 * cgen-engine.h: New file.
2298 * cgen-scache.h: New file.
2299 * cgen-sim.h: Delete portions moved to new files.
2300 * genmloop.sh: Generate two files eng.hin,mloop.cin explicitly,
2301 rather than sending result to stdout.
2305 * Make-common.in (sim-reg.o): New rule.
2306 (cgen-run.o): New rule.
2307 * cgen-ops.h: Delete many BI macros. Change all UBI -> BI.
2308 * cgen-run.c (prime_cpu): New function.
2309 * cgen-scache.c: Add pseudo-basic-block (pbb) scaching support.
2310 (scache_option_handler, case OPTION_PROFILE_SCACHE): Handle explicitly
2312 (scache_flush_cpu,scache_lookup,scache_lookup_or_alloc): New fns.
2313 * cgen-sim.h (CGEN_INSN_VIRTUAL_TYPE): New enum.
2314 (CGEN_INSN_VIRTUAL_P): New macro.
2315 (SEM_PC): New typedef.
2316 (SEMANTIC_FN): Change type of result to SEM_PC.
2317 (SEM_SET_FULL_CODE,SEM_SET_FAST_CODE,SEM_SET_CODE): New macros.
2318 (IDESC_CTI_P,IDESC_SKIP_P): New macros.
2319 (SCACHE_MAP): New typedef.
2320 (CPU_SCACHE): Add pbb support.
2321 (scace_lookup,scache_lookup_or_alloc,scache_flush_cpu): Declare.
2322 (SEM_BRANCH_INIT_EXTRACT,SEM_BRANCH_INIT,SEM_BRANCH_FINI): New macros.
2323 (CGEN_CPU): New members running_p,insn_count,{fast,full}_engine_fn,
2325 (INSN_NAME): Delete.
2326 (cgen_insn_name): Declare.
2327 (sim_engine_invalid_insn): Renamed from sim_engine_illegal_insn.
2328 * cgen-trace.c (trace_buf): Shrink from 1024 to 256 bytes.
2329 (first_insn_p): Make static.
2330 (trace_insn): Handle virtual insns specially.
2331 (cgen_trace_printf): Ensure we haven't overflowed the buffer.
2332 * cgen-types.h (UBI): Delete.
2333 (MODE_TYPE): New enum.
2334 (HOSTINT,HOSTUINT,HOSTPTR): Delete.
2335 * cgen-utils.c (mode_names): Delete UBI. Add INT,UINT,PTR.
2336 (cgen_virtual_opcode_table): New global.
2337 (cgen_insn_name): New function.
2338 (sim_disassemble_insn): Ignore virtual insns.
2339 * genmloop.sh: Delete top level loop generation. Add pbb support.
2340 * sim-cpu.h (CPU_INSN_NAME_FN): New typedef.
2341 (sim_cpu_base): New members max_insns,insn_name,model_data.
2342 (CPU_PC_GET,CPU_PC_SET): New macros.
2343 (sim_pc_get,sim_pc_set): Declare.
2344 * sim-model.c (model_set): Call model init fn.
2345 * sim-model.h (MODEL_FN): New typedef.
2346 (INSN_TIMING): New member model_fn.
2347 (MODEL): New members num,init.
2348 * sim-profile.c (sim_profile_print_bar): Renamed from print_bar.
2349 All callers updated.
2350 (profile_insn_init): New fn.
2351 (profile_print_insn): Update, INSN_NAME -> CPU_INSN_NAME.
2352 Exit early if insn profiling not supported.
2353 (profile_print_memory): Update, MAX_MODES -> MODE_TARGET_MAX.
2354 (profile_install): Record profile_insn_init as init fn.
2355 (profile_uninstall): Free PROFILE_INSN_COUNT if non-null.
2356 * sim-profile.h: Update, MAX_MODES -> MODE_TARGET_MAX.
2357 (PROFILE_DATA): Delete member exec_time.
2358 Change insn_count to pointer to array, rather than the array.
2359 (sim_profile_print_bar): Declare.
2363 * cgen-run.c: New file.
2364 * sim-reg.c: New file.
2368 * aclocal.m4: Add checks for -lsocket and -lnsl.
2370 * dv-sockser.c (dv_sockser_init): Use SO_REUSEADDR to
2371 allow local port reuse on listening socket.
2375 * sim-config.h: Remove reference to linux kernel header.
2379 * dv-sockser.c (sockser_addr): Make variable non-static.
2383 * sim-hw.{c,h} (sim_hw_parse): Return struct hw pointer.
2387 * sim-events.c (sim_events_elapsed_time): Fix calculation.
2391 * Make-common.in (install-common): Add $(EXEEXT) when installing
2396 * cgen-sim.h (cgen_state): New member opcode_table.
2397 * cgen-utils.c (sim_disassemble_insn): Use it.
2401 * cgen-mem.h (DECLARE_SETT): Fix return type.
2402 * cgen-sim.h (sim_engine_illegal_insn): Declare.
2403 * cgen-scache.c: Include stdlib.h.
2404 * cgen-trace.c (trace_extract): Use %lx for PCADDR.
2405 * sim-model.c (model_option_handler): Remove unused variable `n'.
2409 * cgen-utils.c: Include bfd.h.
2410 (sim_disassemble_insn): Update call to CGEN_EXTRACT_FN.
2414 * sim-bits.h (EXTEND24): Fix typo.
2418 * sim-events.c (ETRACE_P): New macro.
2419 (struct _sim_event): Add member trace.
2420 (sim_events_free): Reclaim trace message.
2422 * sim-events.c, sim-events.h (sim_events_schedule_vtracef,
2423 sim_events_schedule_tracef): New functions, include printf trace
2424 information in argument list. If tracing, store asprintf'd trace
2425 message in sim_event.
2427 * hw-events.c, hw-events.h (hw_event_queue_schedule_tracef,
2428 hw_event_queue_schedule_vtracef): New functions, mimic
2433 * sim-bits.h (EXTEND24): Define.
2437 * cgen-sim.h (CPU_SCACHE): Make size unsigned.
2438 (CPU_SCACHE_HASH_MASK): New macro.
2439 (SCACHE_HASH_PC): Rewrite.
2440 * genmloop.sh (engine_resume_{full,fast}): Move some of hash
2441 computation out of main loop.
2445 * cgen-sim.h (RECORD_IADDR): Delete.
2446 * cgen-types.h (HOSTINT,HOSTUINT,HOSTPTR): New types.
2447 * genmloop.sh (engine_resume_{full,fast}): Delete icount.
2451 * gennltvals.def (mn10200): Add entry.
2452 * nltvals.def: Regenerate with MN10200 additions.
2456 * sim-inline.h (EXTERN_*): Replace with EXTERN_*_P. Correct
2457 documentation on how it works.
2459 * sim-core.h, sim-core.c (sim_core_install, sim_core_attach,
2460 sim_core_detach, sim_core_read_buffer, sim_core_write_buffer,
2461 sim_core_set_xor, sim_core_xor_read_buffer,
2462 sim_core_xor_write_buffer): Update.
2464 * sim-events.h, sim-events.c (sim_events_install,
2465 sim_events_watch_clock, sim_events_schedule_after_signal,
2466 sim_events_schedule, sim_events_watch_sim, sim_events_watch_core,
2467 sim_events_deschedule): Update.
2469 * sim-fpu.h, sim-fpu.c (sim_fpu_zero, sim_fpu_one, sim_fpu_two,
2470 sim_fpu_max32, sim_fpu_max64): Update.
2474 * cgen-trace.c (trace_insn_fini): Redo cycle handling.
2475 * sim-profile.h (PROFILE_DATA): Rename cycle handling members.
2476 * sim-profile.c (profile_print_model): Update.
2480 * gennltvals.def (m32r): Use common syscall.h now.
2481 (mn10300): Add entry.
2482 * nltvals.def: Regenerate.
2484 * sim-engine.c (sim_engine_get_run_state): New function.
2485 * sim-engine.h (sim_engine_get_run_state): Declare it.
2489 * sim-core.h (SIM_CORE_SIGNAL_FN): New typedef.
2490 * sim-core.c (sim_core_signal): Make extern, always define.
2494 * Make-common.in (CGEN_FLAGS_TO_PASS): New variable.
2495 * cgen-ops.h (ANDIF): New macro.
2496 (ANDIF[BQHSD]I): Delete.
2500 * hw-events.c (create_hw_event, delete_hw_event): Delete.
2501 (hw_event_queue_schedule, hw_event_queue_deschedule,
2502 bounce_hw_event): Fix hw-event memory corruptions found by Joyce
2505 * hw-alloc.h (HW_NZALLOC): Define.
2507 * Make-common.in (test-hw-events): Add target for testing the
2512 * Make-common.in (SIM_COMMON_HW_OBJS): Add hw-handles.o and
2514 hw-handles.c, hw-instances.c, hw-handles.h, hw-instances.h: New
2516 * hw-main.h: Include hw-handles.h, hw-instances.h.
2517 * hw-base.h ({create,delete}_hw_{handles,instances}_data): Declare
2518 * hw-base.c (hw_create, hw_delete): Call same.
2522 * dv-core.c: Include hw-main.h and sim-main.h.
2523 * dv-pal.c: Include hw-main.h and sim-io.h.
2524 * dv-glue.c: Include hw-main.h.
2526 * hw-main.h: New file. Move list of includes to here.
2527 * hw-base.h: From here.
2528 * Make-common.in (hw_base_headers): Rename to hw_main_headers.
2529 (hw-*.o, dv-*.o): Update.
2530 * hw-tree.c, hw-base.c, hw-properties.c, hw-ports.c, hw-device.c,
2531 hw-events.c, hw-alloc.c, sim-hw.c: Include hw-main.h instead of
2534 * hw-base.h (do_hw_attach_regs, do_hw_poll_read_method,
2535 do_hw_poll_read): Move declarations from here.
2536 * hw-main.h: To here.
2538 * hw-base.h (struct hw_device_descriptor, hw_finish_callback):
2540 * hw-main.h (struct hw_descriptor, hw_finish_method): To here,
2542 * Make-common.in (hw-config.h): Update
2543 * hw-base.c, dv-pal.c, dv-glue.c: Update
2545 * dv-glue.c, hw-device.h, hw-base.h, hw-ports.c: Rename
2546 `*_callback' to `*_method.
2550 * hw-base.h (set_*): Move set method macros from here.
2551 * hw-device.h: To here.
2555 * hw-base.h (create_hw_property_data, delete_hw_property_data):
2558 * hw-base.c (hw_create, hw_delete): Call
2559 * hw-properties.c (create_hw_property_data,
2560 delete_hw_property_data): Define.
2564 * hw-device.c, hw-properties.c: Include hw-base.h
2566 * hw-alloc.h, hw-alloc.c: New files. Move alloc code to here.
2567 * hw-device.c: From here.
2568 * hw-base.h: Include "hw-events.h".
2570 * hw-base.h (create_hw_alloc_data, delete_hw_alloc_data): Declare.
2571 * hw-base.c (hw_create, hw_delete): Call.
2572 * hw-alloc.c (create_hw_alloc_data, delete_hw_alloc_data): Define.
2574 * Make-common.in (SIM_NEW_COMMON_OBJS): Add hw-alloc.o.
2575 (hw-alloc.o): New target.
2579 * hw-events.h, hw-events.c: New files. Move event code to here.
2580 * sim-hw.c: From here.
2581 * hw-base.h: Include "hw-events.h".
2582 * Make-common.in (SIM_NEW_COMMON_OBJS): Add hw-events.o.
2583 (hw-events.o): New target.
2585 * hw-device.h (struct hw): Add struct hw_event_data events_of_hw.
2586 * hw-events.h (struct hw_event): Replace typedef hw_event.
2588 * hw-base.h (create_hw_event_data, delete_hw_event_data): Declare.
2589 * hw-base.c (hw_create, hw_delete): Call.
2590 * hw-events.c (create_hw_event_data, delete_hw_event_data): Define.
2596 * hw-base.c (panic_hw_port_event, empty_hw_ports): Move from here.
2597 * hw-ports.c: To here.
2599 * hw-base.h, hw-ports.c (create_hw_port_data,
2600 delete_hw_port_data): New functions.
2601 * hw-base.c (hw_delete, hw_create): Call same.
2603 * hw-base.h (set_hw_ports, set_hw_port_event): Move set functions
2605 * hw-ports.h: To here.
2609 * hw-device.c (hw_ioctl), hw-device.h (hw_ioctl_callback): Drop
2610 PROCESSOR and CIA arguments.
2614 * aclocal.m4 (SIM_AC_OPTION_HW): Add enable / disable argument.
2615 Move common object files from here.
2616 * Make-common.in (SIM_COMMON_HW_OBJS): To here.
2620 * sim-hw.c: Include ctype.h.
2621 (do_hw_poll_read): Do not assume EAGAIN.
2625 * cgen-trace.c (first_insn_p): New static local.
2626 (trace_insn_init): Set it.
2627 (trace_insn_fini): Use TRACE_PREFIX.
2628 (trace_insn): Rewrite to use trace_prefix.
2629 * sim-trace.c (trace_prefix): Don't print filename arg if NULL.
2630 Adjust width accordingly.
2632 * sim-profile.h (PROFILE_DATA): New member profile_any_p.
2633 (PROFILE_ANY_P,PROFILE_INSN_P,PROFILE_MEMORY): New macros.
2634 (PROFILE_SCACHE_P,PROFILE_PC_P,PROFILE_CORE_P): New macros.
2635 (PROFILE_COUNT_INSN,PROFILE_COUNT_READ,PROFILE_COUNT_WRITE): Simplify.
2636 (PROFILE_COUNT_CORE): Simplify.
2637 * sim-profile.c (profile_option_handler): Compute profile_any_p.
2641 * cgen-ops.h (ADDCFSI): Fix typo.
2645 * cgen-sim.h (CGEN_CPU): New members idesc_{read,sem}_init_p.
2646 * genmloop.sh: Use them rather than static locals.
2648 * sim-engine.c (sim_engine_set_run_state): New function.
2649 * sim-engine.h (sim_engine_set_run_state): Declare.
2650 * genmloop.sh (pending_reason,pending_sigrc): New static locals.
2651 (@cpu@_engine_stop): New args reason,sigrc. All callers updated.
2652 (engine_resume): Reorganize. Allow synchronous exit from main loop.
2656 * cgen-trace.c (trace_insn_init): New arg first_p.
2657 All callers updated.
2658 (trace_insn_fini): New arg last_p. All callers updated.
2659 * cgen-trace.h (trace_insn_init,trace_insn_fini): Update.
2660 (TRACE_INSN_INIT,TRACE_INSN_FINI): Update.
2661 * genmloop.sh (engine_resume): Update.
2665 * Make-common.in (install-common): Run ranlib on installed copy of
2670 * Make-common.in (install-common): Rename and install libsim.a.
2674 * sim-io.c (unistd.h): Include.
2678 * Make-common (sim_main_headers): Sort.
2679 (cgen-*.o): Add cgen-sim.h dependency.
2681 * cgen-scache.c (scache_init): Only allocate space if scache element
2683 (scache_flush,scache_print_profile): Check if scache in use first.
2685 * cgen-sim.h (IDESC): Provide forward declaration.
2687 (CGEN_CPU): Always define scache member. New members idesc,opcode.
2688 (cgen_cpu_max_extra_bytes): Declare.
2689 * cgen-utils.c (cgen_cpu_max_extra_bytes): New function.
2691 * sim-cpu.h: New file. sim_cpu_base moved here.
2692 Move sim_cpu_lookup decl here.
2693 * sim-base.h: #include "sim-cpu.h".
2694 * sim-cpu.c: New file.
2695 * Make-common (sim_main_headers): Add sim-cpu.h.
2696 (sim-cpu.o): Add rule for.
2698 * sim-model.c (set_model): Delete.
2699 (sim_model_set,model_set): New functions.
2700 (sim_model_install): Renamed from model_install.
2701 Don't set default model here.
2702 (model_option_handler): Rewrite --model processing.
2703 (sim_model_lookup,sim_mach_lookup): New functions.
2704 * sim-model.h (MAX_MODELS,MAX_INSNS): Delete.
2705 (insn_timing): Delete.
2706 (INSN_TIMING): New member `num'.
2707 (IMP_PROPERTIES): Always define scache_elm_size member.
2708 (MACH): New member init_cpu.
2709 (sim_machs): Renamed from machs.
2710 (sim_model_install): Renamed from model_install.
2711 (sim_model_set,sim_model_lookup,sim_mach_lookup): Declare.
2712 * sim-module.c (modules): Update.
2714 * sim-profile.c (profile_print_insn): Add cpu arg to INSN_NAME macro.
2716 * sim-io.c: #include <errno.h>.
2720 * dv-pal.c (struct hw_pal_device): Add reader.
2721 (hw_pal_finish): Initialize reader.
2722 (scan_hw_pal): Use reader.
2724 * hw-base.h, sim-hw.c (do_hw_poll_read): New function.
2725 (HW_IO_EOF, HW_IO_NOT_READY): Define.
2728 * sim-io.h, sim-io.c (sim_io_poll_read): New function. Copy from
2729 ../ppc/main.c sim_io_read_stdin.
2733 * hw-tree.h (hw_tree_print): Paramaterize with print and file
2735 * hw-tree.c: Update.
2737 * hw-base.h (hw_port_event_callback): Delete CPU/CIA args.
2738 * hw-device.h (hw_io_read_buffer, hw_io_write_buffer): Delete
2740 * hw-ports.h (hw_port_event): Ditto.
2741 * hw-ports.c (hw_port_event): Update.
2742 * hw-base.c (panic_hw_io_read_buffer, panic_hw_io_write_buffer):
2744 * dv-pal.c (hw_pal_io_read_buffer, hw_pal_io_write_buffer):
2746 (hw_pal_io_write_buffer): Call hw_halt not sim_engine_halt.
2747 (do_counter_event): Update.
2748 * dv-glue.c (hw_glue_io_read_buffer): Update.
2749 (hw_glue_port_event): Update.
2751 * hw-device.h (SIM_DESC): Replace with struct sim_state.
2752 * hw-base.h (hw_create): Ditto.
2753 * hw-base.c (hw_create): Ditto.
2755 * hw-device.c (hw_abort, hw_trace, hw_hw_event_queue_schedule,
2756 hw_event_queue_deschedule, hw_event_queue_time): Delete, moved
2759 * hw-device.h (hw_system_cpu): Declare.
2760 * sim-hw.c (hw_system_cpu): New function.
2762 * sim-core.c (sim_core_map_attach, sim_core_attach): Call
2763 sim_hw_abort not hw_abort.
2764 (sim-hw.h): Include.
2765 (sim_core_read_buffer, sim_core_write_buffer): Call
2766 sim_hw_io_read_buffer and sim_hw_io_write_buffer. Do not pass CPU
2768 (sim_core_set_xor): Do not pass CPU when aborting.
2770 * sim-n-core.h (sim_core_read_aligned_N,
2771 sim_core_write_aligned_N): Call sim_hw_abort not hw_abort.
2772 (sim_core_read_aligned_N, sim_core_write_aligned_N): Call
2773 sim_cpu_hw_io_read_buffer and sim_cpu_hw_io_write_buffer. Does not
2776 * sim-hw.h: Declare sim_hw_io_{read,write}_buffer. Declare
2778 * sim-hw.c (sim_hw_io_read_buffer, sim_hw_io_write_buffer,
2779 sim_cpu_hw_io_read_buffer, sim_cpu_hw_io_write_buffer): New
2781 (sim_hw_print): New function.
2783 * sim-engine.h (sim_engine_vabort): Declare.
2784 * sim-engine.c (sim_engine_vabort): New function.
2788 * sim-trace.c (print_data): For floating-point numbers trace raw
2790 (trace_result_fp2): New function.
2791 * sim-trace.h (trace_result_fp2): New declaration.
2792 (TRACE_FP_RESULT2): New macro.
2796 * common/aclocal.m4: call AM_EXEEXT in SIM_AC_COMMON, define
2797 AM_CYGWIN32 and AM_EXEEXT.
2798 * common/Make-common.in: set EXEEXT, add missing EXEEXTs
2799 to run and install-common rules.
2800 * common/configure: regenerate
2804 * sim-types.h (cell_word): New type.
2805 (natural_cell): Delete type.
2807 Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
2809 * configure: Regenerated to track ../common/aclocal.m4 changes.
2814 * acconfig.h (NEED_DECLARATION_PRINTF): Removed.
2816 Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
2818 * configure: Regenerated to track ../common/aclocal.m4 changes.
2823 * acconfig.h: New file.
2824 * Make-common.in (top_builddir): New macro.
2825 (INTL_LIB): Removed.
2826 (INTLLIBS): New macro.
2827 (INTLDEPS): Likewise.
2828 (LIBDEPS): Use INTLDEPS.
2829 (EXTRA_LIBS): Use INTLLIBS.
2830 * aclocal.m4 (SIM_AC_COMMON): Call CY_GNU_GETTEXT.
2831 (CY_WITH_NLS, CY_GNU_GETTEXT, AM_PATH_PROG_WITH_TEST,
2832 AM_LC_MESSAGES): New macros from GNU gettext.
2836 * sim-config.h: Discard leading _ from macros.
2837 * sim-types.h: Ditto.
2841 * Make-common.in (CSEARCH): Add -I to intl directories.
2842 (INTL_LIB): Point to libintl.a.
2843 (LIBDEPS): Add $(INTL_LIB).
2844 (EXTRA_LIBS): Ditto.
2848 * cgen-types.h (GETHIDI,MAKEDI): Tweak.
2850 * cgen-ops.h (ADDCFSI): Fix.
2855 * sim-types.h (signed_address, unsigned_address): Define.
2859 * sim-fpu.c (sim_fpu_2d): Don't return an SNaN, convert it into a
2864 * sim-fpu.c, sim-fpu.h (sim_fpu_fractionto, sim_fpu_tofraction):
2865 New functions, pack / unpack sim_fpu struct using raw values.
2866 (sim_fpu_is): Differentiate between negative and positive
2871 * sim-bits.h (EXTEND4): Define.
2872 (EXTEND4, EXTEND15, EXTEND11): Ditto.
2876 * sim-memopt.c (parse_addr): Sunos 4.5 does not have strtol
2877 declared so we need this cast to prevent long long addresses
2878 from being misconfigures. Results in access to unmapped memory.
2882 * Make-common.in (RUNTESTFLAGS): Define.
2883 (check): Pass RUNTESTFLAGS to recursive make.
2887 * sim-info.c (sim_info): Be verbose when either VERBOSE or
2892 * aclocal.m4 (sim-inline): By default, disable sim-inline when
2897 * aclocal.m4 (sim-cflags): Add -fomit-frame-pointer to defaults.
2898 (sim-inline): Update to match sim-inline.[hc]
2899 * configure: Regenerated to track ../common/aclocal.m4 changes.
2901 * Make-common.in (sim_main_headers): Add sim-inline.h
2903 * sim-bits.h (sim-bits.c): Include when H_REVEALS_MODULE_P.
2905 * sim-endian.h (sim-endian.c): Ditto.
2907 * sim-events.h (_SIM_EVENTS_H_): Replace with SIM_EVENTS_H.
2908 (sim_events_set_trace): Delete unused prototype.
2910 * sim-core.h (_SIM_CORE_H_): Replace with SIM_CORE_H.
2911 * sim-core.c (_SIM_CORE_C_): Ditto for SIM_CORE_C.
2913 * sim-fpu.h (sim-fpu.c): Include when H_REVEALS_MODULE_P.
2914 (sim_fpu_to232i, sim_fpu_to232u, sim_fpu_i232to, sim_fpu_u232to):
2915 Comment out, not yet implemented in sim-fpu.c.
2916 (sim_fpu_zero, sim_fpu_one, sim_fpu_two, sim_fpu_qnan,
2917 sim_fpu_max32, sim_fpu_max64): Mark as EXTERN_SIM_FPU.
2919 * sim-inline.h: Rewrite description.
2920 (H_REVEALS_MODULE_P, C_REVEALS_MODULE_P): Define.
2921 (SIM_MAIN_INLINE): Add inline option.
2923 * sim-inline.c (semantics.c, idecode.c, engine.c, ...): Do not
2924 include generated files. Handled by generator directly.
2928 * sim-trace.c (set_trace_option_mask): Keep TRACE_ANY_P
2931 * sim-trace.h (TRACE_ANY_P): Define.
2932 (struct _trace_data): Add trace_any_p.
2936 * run.c (main): Handle all alternatives of enum sim_stop.
2937 (main): Delete unused `asection *s'.
2941 * hw-tree.h, hw-tree.c (hw_tree_vparse): New function
2943 * configure: Regenerated to track ../common/aclocal.m4 changes.
2945 * sim-hw.c: New file.
2946 * sim-hw.h (sim_hw_parse): Declare function.
2947 (hw-tree.h): Do not include.
2949 * sim-base.h (STATE_HW): Define.
2950 (struct sim_state_base): Add member struct *hw.
2952 * sim-module.c (sim-hw.h): Include.
2953 (modules): Add sim_hw_install.
2955 * aclocal.m4 (sim_hw_obj): Add sim-hw.o
2959 * sim-base.h (CPU_INDEX): Define.
2961 * sim-utils.c (sim_state_alloc): Initialize.
2962 * sim-module.c (sim_post_argv_init): Ditto.
2966 * aclocal.m4 (sim_hw_obj): Fix sed expression to generate
2967 properly formatted lists.
2971 * dv-pal.c (enum hw_pal_address_mask): From Stu Grossman, was
2972 0x2f needs to be 0x3f.
2976 * hw-tree.c (hw_tree_find_property): Return NULL when device is
2978 (hw_tree_find_*_property): Clean up error message when property is
2981 * dv-pal.c (hw_pal_io_read_buffer): Check the smp property is
2982 present before looking for it.
2986 * aclocal.m4 (AC_CHECK_HEADERS): Add check for fpu_control.h.
2987 (AC_CHECK_FUNCS): Add check for __setfpucw.
2988 * configure: Regenerated.
2992 * dv-pal.c (hw_pal_countdown, hw_pal_countdown_value,
2993 hw_pal_timer, hw_pal_timer_value): Define.
2994 (hw_pal_io_read_buffer, hw_pal_io_write_buffer): Add timer support
2995 (do_counter_event, do_counter_read, do_counter_value,
2996 do_counter_write): new functions.
3000 * hw-tree.c (hw_printf): Send tree dump to stderr, same as other
3003 * hw-base.c (hw_create): Stop searching for a device when one is
3008 * configure: Regenerated to track ../common/aclocal.m4 changes.
3012 * aclocal.m4 (SIM_AC_OPTION_HARDWARE): Add second argument,
3013 appends extra devices.
3014 (SIM_AC_OPTION_HARDWARE): Substute sim_hw, a non-duplicate list of
3017 * Make-common.in (hw-config.h): New target, create hw-config.h
3019 (SIM_HW): Definition from @sim_hw@.
3020 (hw-base.o): Depend on hw-config.h
3024 * Make-common.in: Get SHELL from configure.
3025 * (stamp-tvals sim-inline.c): Use $(SHELL) when invoking
3026 move-if-change. Fixes NT native build problem.
3027 * Makefile.in (nltvals.def): Use $(SHELL) when invoking
3028 move-if-change. Fixes NT native build problem.
3029 * configure: Regenerate with autoconf 2.12.1 to fix shell issues for
3034 * hw-device.h, hw-device.c (hw_strdup): New function.
3036 * hw-base.c (hw_create): Use hw_strdup when saving a copy of the
3037 strings name, family and args.
3038 (full_name_of_hw): Use hw_strdup when returning the full path.
3040 * hw-properties.c: Clean up property not found / wrong type error
3043 * hw-tree.c (hw_tree_parse): Finish a devices initialization
3044 before attaching any ports.
3046 * hw-base.c (hw-config.): Include. Replace hardwired table.
3048 * dv-glue.c: Copy over ../ppc/hw_glue.c. Update to new framework.
3050 * Make-common.in: Add rule for dv-glue.o.
3054 * hw-base.c (hw_finish): Move setting of trace level to here.
3055 (hw_create): From here.
3057 * hw-base.h, hw-base.c (do_hw_attach_regs): Copy function from
3058 ../ppc/device_table.c.
3060 * dv-pal.c (hw_pal_finish): Attach PAL device to parent bus.
3062 * hw-tree.c (print_properties): Supress path when printing
3063 properties of root node.
3067 * hw-device.h (HW_TRACE): Define.
3068 (hw_trace): Declare.
3069 * hw-device.c (hw_trace): Implement function.
3071 * hw-base.c (hw_create): Set hw trace level from "trace?"
3074 * dv-core.c (dv_core_attach_address_callback): Add trace.
3076 * dv-pal.c: Replace DTRACE with HW_TRACE.
3080 * hw-device.h (HW_ZALLOC, HW_MALLOC): New macros.
3081 (hw_alloc_data): Delcare.
3082 (struct hw): Add member alloc_of_hw.
3084 * hw-device.c (hw_zalloc, hw_malloc, hw_free, hw_free_all): New
3085 functions. Assocate memory with a device.
3086 (stdlib.h): Include.
3088 * hw-base.h (set_hw_delete): Define.
3089 (hw_delete_callback): Declare.
3090 (hw_delete): Declare.
3092 * hw-base.c (hw_delete): Implement function.
3093 (struct hw_base_data): Add member to_delete.
3094 (ignore_hw_delete): New function, does nothing.
3095 (hw_create): Set the hw_delete method.
3096 (hw_create): Allocate the base type using HW_ZALLOC before setting
3099 * hw-tree.h, hw-tree.c (hw_tree_delete): New function.
3101 * hw-properties.c: Replace zalloc/zfree with hw_zalloc/hw_free.
3103 * hw-ports.c: Replace zalloc/zfree with hw_zalloc/hw_free.
3104 (attach_hw_port_edge): Add struct hw argument
3106 * dv-pal.c (hw_pal_finish): Replace zalloc/zfree with
3111 * hw-device.h (hw_attach_address_callback,
3112 hw_detach_address_callback): Attach to a single space not a space
3113 mask. Clarify interpretation of SPACE:ADDR parameters.
3115 * hw-base.c (passthrough_hw_attach_address,
3116 passthrough_hw_detach_address): Update.
3117 * dv-core.c (dv_core_attach_address_callback): Ditto.
3118 * dv-pal.c (hw_pal_attach_address): Ditto.
3122 * sim-options.h: Document additional CPU arg to OPTION_HANDLER.
3126 * Make-common.in (SIM_HW_OBJS, SIM_HW_SRC, SIM_DV_OBJS): Define.
3127 (hw-base_h, hw-device_h, hw-handles_h, hw-instances_h, hw_ports_h,
3128 hw-properties_h, hw-tree_h): Define, point at corresponding
3130 (hw_base_headers): Define list of headers included by hw-base.h
3131 (hw-base.o, hw-device.o, hw-instances.o, hw-handles.o, hw-ports.o,
3132 hw-properties.o, hw-tree.o): Specify dependencies.
3133 (dv-core.o, dv-pal.o): Ditto.
3135 * sim-hw.h: New file.
3137 * hw-device.h, hw-device.c, hw-properties.h, hw-properties.c,
3138 hw-ports.h, hw-ports.c: New files. Copied from ../ppc/device.[ch].
3140 * hw-tree.h, hw-tree.c: New files. Copied from ../ppc/tree.[hc].
3142 * hw-base.h, hw-base.c: new files. Copied from
3143 ../ppc/device_table.[hc].
3145 * dv-core.c, dv-pal.c: New files. Copied from
3146 ../ppc/hw_{core,pal}.c
3148 * sim-basics.h (struct hw): Declare.
3149 (enum port_direction, enum object_disposition): Declare.
3153 * aclocal.m4 (SIM_AC_OPTION_HARDWARE): Set sim_hw_obj, sim_dv_obj,
3154 sim_dv_src in Makefile. Take list of devices as parameter to m4
3157 * configure: Regenerated to track ../common/aclocal.m4 changes.
3161 * sim-trace.h, sim-trace.c (trace_prefix): Pass in sim_cia so that
3162 trace_prefix can abort cleanly.
3166 * dv-sockser.c, dv-sockser.h: New files.
3167 * Make-common.in (dv-sockser.o): Add rule for.
3168 * aclocal.m4: Check for fcntl.h.
3169 * config.h: Add HAVE_FCNTL_H.
3171 * sim-break.c (remove_breakpoint): Fix thinko.
3173 * sim-hload.c (sim_load): Provide default value of SIM_HANDLES_LMA.
3174 Use SIM_HANDLES_LMA for lma_p arg to sim_load_file.
3178 * sim-base.h (struct sim_state_base): Add prog_syms and
3179 define macro STATE_PROG_SYMS.
3180 * sim-trace.c (trace_prefix): Add variables abfd, symsize,
3181 symbol_count, and asymbols. Call bfd_get_symtab_upper_bound
3182 and bfd_canonicalize_symtab, to get symbol table on first use
3183 and preserve it via STATE_PROG_SYMS for future calls to
3184 bfd_find_nearest_line.
3188 * sim-core.h, sim-core.c (sim_core_map_to_str): Delete.
3190 * sim-core.c (sim_core_attach): Handle a generic number of maps -
3191 up to nr_maps, not just access_* maps.
3193 * sim-profile.h (struct PROFILE_DATA): Track nr_maps different
3196 * sim-profile.c (profile_print_core): Make map unsigned. Iterate
3197 over nr_maps not sim_core_nr_maps.
3199 * sim-events.h, sim-events.c (sim_events_watch_core): Change
3200 core_map argument to unsigned.
3201 (struct _sim_core): Ditto for struct member core_map.
3203 * sim-core.h (nr_sim_core_maps, sim_core_*_map): Delete
3205 * sim-basics.h (access_io, access_*_io): Define.
3206 (map_read, map_write, map_exec, map_io): Define.
3208 * sim-core.c, sim-core.h (sim_core_attach): Replace argument
3209 attach with more generic mapmask.
3210 (sim_core_{read,write}_*): Change map argument to unsigned.
3212 * sim-core.c (sim_core_uninstall, sim_core_attach,
3213 sim_core_detach): Iterate over nr_maps instead of
3216 * sim-break.c (insert_breakpoint): Write breakpoints to exec_map
3217 instead of the write_map.
3218 (remove_breakpoint): Ditto.
3220 * genmloop.sh (engine_resume_full): Replace sim_core_*_map
3221 with read_map, write_map, exec_map resp.
3223 * cgen-mem.h (DECLARE_GETMEM, DECLARE_SETMEM, DECLARE_GETIMEM):
3226 * cgen-utils.c (sim_disassemble_insn): Ditto.
3228 * sim-hrw.c (sim_write, sim_write): Ditto.
3230 * sim-utils.h, sim-utils.c (access_to_str, map_to_str,
3231 transfer_to_str): New functions.
3235 * sim-base.h (sim_state_base): New member environment.
3236 (STATE_ENVIRONMENT): New macro.
3237 * sim-config.c (current_environment): Delete.
3238 (sim_config_default): New function.
3239 (sim_config): Set STATE_ENVIRONMENT, not current_environment.
3240 * sim-config.h (current_environment,CURRENT_ENVIRONMENT): Delete.
3241 (sim_config_default): Add prototype.
3242 * sim-module.c (sim_pre_argv_init): Call sim_config_default.
3243 * sim-options.c (standard_option_handler, case OPTION_ENVIRONMENT):
3244 Set STATE_ENVIRONMENT, not current_environment.
3248 * sim-fpu.c (NR_GUARDS64): Change NR_PAD32 to NR_PAD64.
3252 * sim-types.h (SIGNED32, SIGNED64): Pacify GCC.
3254 * sim-alu.h (ALU64_BEGIN): Make alu64_r unsigned.
3258 * Make-common.in (TAGS): Make smarter.
3259 * Makefile.in (TAGS): Ditto.
3263 * sim-module.c (*): Fix typos in assertion tests.
3267 * sim-module.c (sim_pre_argv_init): String passed to asprintf
3270 * sim-options.c (sim_parse_args): Ditto.
3271 (sim_args_command): Return OK, instead of nothing, for an empty
3276 * sim-profile.c (profile_info): Rename from profile_print. Drop
3277 misc and misc_cpu callback arguments. Use
3278 PROFILE_INFO_CPU_CALLBACK and STATE_PROFILE_INFO_CALLBACK instead.
3279 (profile_install): Install profile_info function.
3281 * sim-profile.h (PROFILE_INFO_CPU_CALLBACK,
3282 STATE_PROFILE_INFO_CALLBACK): Define.
3283 (struct PROFILE_DATA): Add field info_cpu_callback.
3284 (profile_print): Delete function.
3286 * sim-base.h (STATE_MODULES): Define. Replace individual
3287 STATE_*_LIST with single struct module_list.
3289 * sim-module.h (MODULE_INFO_FN, MODULE_INFO_LIST): Declare.
3290 (struct module_list): Declare.
3292 * sim-module.h, sim-module.c (sim_module_add_info_fn,
3293 sim_module_info): New functions.
3294 (sim_module_install): Clean up module data structures.
3296 * sim-info.c (sim_info): New file. New function. Call
3299 * Make-common.in (sim-info.o): Define rule.
3300 (SIM_NEW_COMMON_OBJS): Add sim-info.o.
3305 * sim-base.h (sim_cpu_base): New members name, options.
3306 (sim_cpu_lookup): Add prototype.
3307 * sim-module.c (sim_pre_argv_init): Provide default names for cpus.
3308 * sim-options.h (DECLARE_OPTION_HANDLER): New argument `cpu'.
3309 (sim_add_option_table): Update prototype.
3310 * sim-options.c (sim_add_option_table): New argument `cpu'.
3311 (standard_option_handler,standard_install): Update.
3312 (sim_parse_args): Handle cpu specific options.
3313 (print_help): New static function.
3314 (sim_print_help): Call it. Print cpu specific options.
3315 (find_match): New static function.
3316 (sim_args_command): Call it. Handle cpu specific options.
3317 * sim-utils.c (sim_cpu_lookup): New function.
3318 * sim-memopt.c (memory_option_handler): Update.
3319 (sim_memopt_install): Update.
3320 * sim-model.c (model_option_handler): Update.
3321 (model_install): Update.
3322 * sim-profile.c (profile_option_handler): Update.
3323 (profile_install): Update.
3324 * sim-trace.c (trace_option_handler): Update.
3325 (trace_install): Update.
3326 * sim-watch.c (watchpoint_option_handler): Update.
3327 (sim_watchpoint_install): Update.
3328 * cgen-scache.c (scache_option_handler): Update.
3329 (scache_install): Update.
3333 * Make-common.in (check): Run `make check' in testsuite dir.
3337 * sim-trace.c (trace_result0): New function.
3339 * sim-trace.h (TRACE_FP_*, TRACE_FPU_*): Rename TRACE_FPU_*
3340 macro's to TRACE_FP_*. TRACE_FPU_* should be defined and used when
3341 tracing sim_fpu variables.
3342 (TRACE_ALU_RESULT0): Define.
3343 (TRACE_FP_RESULT_WORD): Define.
3344 (TRACE_FP_INPUT_WORD1): Define.
3346 * sim-fpu.c, sim-fpu.h (sim_fpu_max32, sim_fpu_max64, sim_fpu_one,
3347 sim_fpu_two): New constants.
3348 (sim_fpu_op1, sim_fpu_op2): New types.
3349 (struct _sim_fpu): Delete member result. Re-order other members.
3350 (sim_fpu_sign, sim_fpu_exp): New functions.
3351 (sim_fpu_max, sim_fpu_min): new functions.
3352 (EXPMAX32, EXPMAX64, NR_PAD32, NR_PAD64, NR_GUARDS32, NR_GUARDS64,
3353 NORMAL_EXPMAX32, NORMAL_EXPMAX64): Define.
3357 * sim-profile.c (profile_print): Delete duplicate test of
3359 (profile_print_pc): Exit early if data collection not set up.
3360 (profile_print_core): Simplify by calling sim_core_map_to_str.
3361 * sim-core.h (sim_core_map_to_str): Declare.
3362 * sim-core.c (sim_core_map_to_str): Make non-static.
3364 * genmloop.sh (engine_resume): Update insn_count before exiting.
3365 (engine_resume_full): Keep accurate core profile data.
3367 * cgen-utils.c (sim_disassemble_insn): Don't use
3368 sim_core_read_aligned_N, it messes up profiling results.
3372 * nltvals.def: Regenerate with MN10300 additions.
3376 * sim-trace.h (TRACE_ALU_RESULT2): Define.
3378 * sim-trace.h, sim-trace.c (trace_result_word2,
3379 trace_input_word4, trace_result_word4): New function.
3383 * cgen-sim.h (SEM_NEXT_PC): New arg `len'.
3385 * sim-xcat.h: Delete.
3386 * cgen-mem.h: Delete inclusion of sim-xcat.h.
3387 * cgen-sim.h: Ditto.
3388 * sim-alu.h: Replace sim-xcat.h with symcat.h.
3389 * sim-n-bits.h: Ditto.
3390 * sim-n-core.h: Ditto.
3391 * sim-n-endian.h: Ditto.
3395 * syscall.c (cb_syscall): Handle short reads, and EOF.
3399 * sim-trace.c (print_data): case trace_fmt_fp missing break. Use
3400 sim_fpu to safely print fp_word values.
3401 (print_data): Add trace_fmt_bool and trace_fmt_addr.
3402 (trace_result_bool1, trace_result_addr1): New functions.
3403 (trace_input_bool1, trace_input_addr1): New functions.
3405 * sim-trace.h (TRACE_FPU_*): Define.
3409 * sim-fpu.h (enum sim_fpu_class): Add sim_fpu_class_denorm.
3410 (sim_fpu_fpto, sim_fpu_tofp): Define.
3414 * sim-fpu.c (sim_fpu_cmp): New function.
3418 * cgen-utils.h (sim_disassemble_insn): Use CGEN_INSN_BITSIZE
3419 instead of abuf->length.
3420 * sim-trace.c (trace_options): Have -t only trace a few useful things.
3421 (set_trace_option_mask): Renamed from set_trace_options.
3422 (set_trace_option): New function.
3423 (trace_option_handler): Update calls to set_trace_option{,_mask}.
3424 * sim-trace.h (TRACE_USEFUL_MASK): New macro.
3428 * sim-basics.h: Declare struct _sim_fpu.
3432 * sim-trace.h (TRACE_ALU_INPUT*, TRACE_ALU_RESULT): Define.
3433 (trace_prefix, trace_input*, trace_result*): Declare.
3434 (trace_one_insn): Change declaration, assume trace_prefix called.
3435 (trace_generic): Like trace_one_insn.
3436 (TRACE_ALU_IDX, TRACE_*_IDX): Change #define's to enum.
3437 (TRACE_alu, TRACE_[a-z]*): Update.
3439 * sim-trace.c (trace_prefix, trace_input*, trace_result*,
3440 trace_insn, save_data, trace_idx_to_str, print_data): New
3442 (trace_one_insn): Rewrite.
3443 (trace_generic): New function.
3447 * aclocal.m4 (USE_MAINTAINER_MODE): New variable.
3449 * cgen-sim.h (SEMANTIC_CACHE_FN): Delete.
3450 (SEMANTIC_FN): Rewrite declaration.
3451 (DECODE): Update type of semantic_fast member.
3452 ({EX,SEM}_FN_NAME): Have only one version.
3453 * sim-base.h (sim_state_base): Delete conditionals surrounding
3458 * sim-load.c (sim_load_file): Print LMA/VMA according to value
3463 * sim-core.c: Add missing prototypes for WITH_DEVICES.
3464 Add missing parameters to device_io calls.
3465 * sim-core.h: Add missing parameters to device_io calls.
3469 * cgen-sim.h (DECODE): Always use switch for `read' for now.
3470 (PAREXEC): Renamed from PARALLEL_EXEC. All uses updated.
3471 (SEMANTIC{,_CACHE}_FN): Fix return type.
3472 * genmloop.sh (@cpu@_engine_run): Delete `current_state'.
3473 (engine_resume): Likewise. Make `engine' volatile. Save copy
3474 of cpu pointer in volatile object. Initialize read switch if
3479 * cgen-sim.h (EX_FN_NAME): _exc_ -> _ex_.
3480 (SEM_INSN): New macro.
3484 * sim-run.c (sim_engine_run): Assume IMEM is 32 bit.
3488 * configure: Regenerated to track ../common/aclocal.m4 changes.
3492 * sim-types.h (fp_word): New type, define according to
3493 WITH_TARGET_FLOATING_POINT_BITSIZE.
3495 * aclocal.m4 (default_sim_floating_point_bitsize): Add
3496 configuration of size of floating point registers.
3500 * sim-profile.c (profile_print): Only print CPU <N> if other
3501 output is going to appear.
3505 * configure: Regenerated to track ../common/aclocal.m4 changes.
3509 * sim-types.h (address_word): Typedef according to
3510 WITH_TARGET_ADDRESS_BITSIZE.
3511 (signed_cell, unsigned_cell, natural_cell): Ditto using
3512 WITH_TARGET_CELL_BITSIZE.
3514 * sim-config.h (WITH_TARGET_ADDRESS_BITSIZE): Define.
3515 (WITH_TARGET_CELL_BITSIZE): Define.
3516 (WITH_HOST_WORD_BITSIZE): Delete.
3518 * sim-config.c (print_sim_config): Update.
3520 * aclocal.m4 (SIM_AC_OPTION_BITSIZE): Add support for
3521 configuration of address and OpenFirmware cell sizes.
3525 * sim-engine.h (sim_engine_run): Add argument nr_cpus.
3526 * sim-run.c (sim_engine_run): Update.
3528 * sim-engine.h (SIM_ENGINE_HALT_HOOK): Use SET_CPU_CIA instead of
3530 * sim-run.c (sim_engine_run): Ditto.
3532 * sim-resume.c (sim_resume): Obtain nr_cpus from sim_engine.
3533 (sim_resume): Pass nr_cpus to sim_engine_run.
3535 * sim-engine.h (struct _sim_engine): Add member nr_cpus.
3537 * sim-engine.c (sim_engine_init): Hardwire nr_cpus to
3539 (sim_engine_nr_cpus) sim-engine.c, sim-engine.h: New function
3543 * Make-common.in (stamp-tvals): New rule.
3544 (targ-vals.h,targ-map.c): Depend on it.
3545 (clean): Remove stamp-tvals.
3549 * sim-utils.c (sim_state_alloc): #if 0 variable that is only used
3550 in code also #if 0'ed.
3552 Mon Jan 19 22:26:29 1998 Doug Evans <devans@seba>
3554 * configure: Regenerated to track ../common/aclocal.m4 changes.
3555 * aclocal.m4: Recognize --enable-maintainer-mode.
3559 * cgen-scache.h: Deleted.
3560 * Make-common.in (cgen-run.o,cgen-scache.o): Delete cgen-scache.h dep.
3561 * cgen-scache.c: Only compile contents if WITH_SCACHE.
3562 (scache_init): Use runtime computed size of SCACHE.
3563 (scache_flush): Likewise.
3564 * cgen-mem.h (GETIMEMU[QHSD]I): Declare.
3565 ([GS]ETT{QI,UQI,HI,UHI,SI,USI,DI,UDI}): Declare.
3566 * cgen-sim.h: Scache support moved here.
3567 (PC): Redo definition.
3568 (ARGBUF,SCACHE,PARALLEL_EXEC): Provide forward decls.
3569 (DECODE): Add parallel execution support.
3570 Only include semantic label members if using switch.
3571 (SWITCH,CASE,BREAK,DEFAULT,ENDSWITCH): Portable computed goto support.
3572 (CGEN_CPU): Delete members exec_state, halt_sigrc, halt_jmp_buf.
3573 (IADDR,CIA,SEM_ARG,EX_FN_NAME,SEM_FN_NAME,RECORD_IADDR,SEM_ARGBUF,
3574 SEM_NEXT_PC,SEM_BRANCH_VIA_{CACHE,ADDR},SEM_NEW_PC_ADDR): Moved here
3576 (engine_{stop,run,resume,halt,signal}): Delete decls.
3577 * cgen-types.h (CGEN_{XCAT3,CAT3}): Delete.
3578 (argbuf,scache): Delete forward decls.
3579 (STATE): Delete decl.
3580 * cgen-utils.c: Don't include decode.h, mem-ops.h, sem-ops.h.
3581 Include cgen-mem.h, cgen-ops.h.
3582 (engine_halt,engine_signal): Delete.
3583 ({ex,exc,sem,semc}_illegal): Delete.
3584 (sim_disassemble_insn): Result of extract fn is in bits.
3585 * genmloop.sh: Rewrite.
3587 * cgen-trace.c (trace_insn): Set printed_result_p=0 if not tracing
3590 * sim-base.h (sim_state_base): Delete member `model'.
3591 (sim_cpu_base): Add member `model'.
3592 * sim-model.h (IMP_PROPERTIES): New type.
3593 (MACH): New members imp_props, models.
3594 (models): Delete decl.
3595 * sim-model.c (set_model): Update.
3596 * sim-profile.c (profile_print_model): Update.
3598 * sim-utils.c (sim_state_alloc): Delete setting of cpu backlink here.
3602 * cgen-trace.c (trace_insn): Call CGEN_INSN_MNEMONIC() rather than
3607 * configure: Regenerated to track ../common/aclocal.m4 changes.
3612 * aclocal.m4 (AR): Check for sigaction.
3616 * Make-common.in (sim-core.o): Depend on $(sim_main_headers).
3618 * sim-config.h (WITH_TREE_PROPERTIES): Define as 0.
3619 * sim-config.c (sim_config): Replace WITH_DEVICES with
3620 WITH_TREE_PROPERTIES.
3622 * configure: Regenerated to track ../common/aclocal.m4 changes.
3626 * Make-common.in (SIM_ENVIRONMENT): New variable.
3627 (CONFIG_CFLAGS): Add it.
3628 * aclocal.m4 (SIM_AC_OPTION_ENVIRONMENT): Handle
3629 --enable-sim-environment option.
3630 * configure: Regenerated.
3631 * sim-config.h (environment support): Rewrite.
3632 * sim-config.c (current_environment): Define as enum, unconditionally.
3633 (current_alignment): Define unconditionally.
3634 (config_environment_to_a): Update.
3635 (config_alignment_to_a): Fix type of argument. Define unconditionally.
3636 (sim_config): Handle environment and alignment determination
3637 unconditionally. Delete sanity checks of current_environment,
3639 (print_sim_config): Update.
3640 * sim-options.c (STANDARD_OPTIONS enum): Add OPTION_ENVIRONMENT.
3641 (standard_options): Add --environment.
3642 (standard_option_handler): Likewise.
3646 * sim-alu.h: Add notes on carry vs borrow for subtraction.
3647 (ALU{,8,16,32,64}ADD): Redefine ADD macro as add overflowing.
3648 (ALU{,8,16,32,64}ADDC): Define - add carrying.
3649 (ALU{,8,16,32,64}SUB): Redefine SUB macro as subtract overflowing.
3650 (ALU{,8,16,32,64}SUBB): Define - subtract borrowing.
3651 (ALU{,8,16,32,64}SUBC): Define - tract carrying.
3652 (ALU{,8,16,32,64}ADD_CA, ALU{,8,16,32,64}ADDC_C): Replace single
3653 argument ADD_CA macro with two argument ADDC_C - add carrying with
3655 (ALU{,8,16,32,64}SUB_CA, ALU{,8,16,32,64}SUBC_X): Replace single
3656 argument SUB_CA macro with two argument SUBC_X - subtract
3658 (ALU{,8,16,32,64}SUBB_B): Define - subtract borrowing with
3660 (ALU{,8,16,32,64}NEGC, ALU{,8,16,32,64}NEGB): Define.
3664 * sim-io.c (sim_io_{syscalls,getstring}): Delete. No longer used.
3665 * sim-io.h (sim_io_syscalls): Delete.
3669 * syscall.c (cb_syscall): Add missing else, so write to stdout
3672 * sim-alu.h (ALU{,8,16,32,64}_SET_CARRY): Provide macros to import
3673 the carry bit from the CPU's psw.
3677 * gennltvals.sh: Redo syscall support.
3678 * nltvals.def: Regenerated.
3682 * syscall.c (cb_syscall): If writing to stdout or stderr, flush
3683 the stream immediately.
3687 * sim-io.c (sim_io_getstring): Delete unused len2.
3688 (sim_io_syscalls): Ditto for sys_errno.
3692 * syscall.c (cb_syscall): Test CB_SYSCALL struct magic number.
3694 * Make-common.in (run.o): Depend on remote-sim.h.
3695 (nrun.o,sim-hload.o,sim-hrw.o): Likewise.
3696 (sim-io.o,sim-reason.o,sim-resume.o): Likewise.
3700 * sim-io.c (sim_io_syscalls): Disable lseek.
3704 * gennltvals.sh: Generate syscall values for d30v.
3706 * gennltvals.sh: Use libgloss/syscall.h for sparc.
3707 * nltvals.def: Regenerate.
3709 * callback.c (os_stat): Make 3rd arg a host struct stat ptr.
3710 (os_fstat): Likewise. Validate fd argument.
3711 (cb_host_to_target_stat): Delete big_p arg. If HS arg is NULL,
3712 just compute target stat struct length.
3713 * syscall.c: #include "libiberty.h", <sys/types.h>, <sys/stat.h>.
3714 (ENOSYS,ENAMETOOLONG): Provide definitions if missing.
3715 (get_string): Return host errno values so they can be properly
3717 (cb_syscall): Likewise.
3718 (cb_syscall, cases open,unlink): Use get_path instead of get_string.
3719 (cb_syscall, case read): Use read_stdin for file descriptor 0.
3720 (cb_syscall, case write): Use write_stderr for file descriptor 2.
3721 (cb_syscall): Add cases for lseek, unlink, stat, fstat, time.
3722 (get_path): New function.
3726 * sim-io.c (sim_io_syscalls): New function to provide system call
3727 emulation. Provide exit, open, close, read, write, lseek, and
3729 (sim_io_getstring): New function to return a string from a
3730 simulated memory location.
3732 * sim-io.h (sim_io_syscalls): Add declaration.
3736 * sim-core.c (sim_core_signal): Fix spelling error in message.
3738 * sim-hrw.c (sim_read): Use read map, not write map.
3740 * Make-common.in (all): Add .gdbinit.
3741 * gdbinit.in: Add dump command.
3743 * sim-model.c (model_options): Use '\0' for `shortopt'.
3745 * sim-trace.c (trace_option_handler): Set state trace file
3746 for --trace-file in addition to cpu's values.
3747 (trace_vprintf): If cpu == NULL, try state's trace file.
3748 (trace_options): Reorganize table, reword some descriptions.
3752 * sim-fpu.c (sim_fpu_abs, sim_fpu_neg, sim_fpu_inv), sim-fpu.h:
3757 * sim-reason.c (sim_stop_reason): For sim_signalled, return the
3758 signal untranslated, document problem with this.
3760 * nrun.c (main): Check for a prog name of `*step'. If present,
3761 step the simulator instead of allowing it to run free.
3763 * sim-signal.c (SIGQUIT): Define on _MSC_VER hosts.
3765 * Make-common.in (sim_main_headers): Add sim-signal.h.
3769 * sim-signal.c (sim_signal_to_host): Return 0 for SIM_SIGNONE.
3773 * sim-signal.h: Start simulator signals at 64 so that host signal
3774 numbers can be detected and reported.
3776 * sim-signal.h (SIM_SIGFPE), sim-signal.h: Add signal.
3780 * callback.c (cb_host_to_target_stat): Fix return values.
3782 * cgen-sim.h (enum_signal_type): Delete.
3783 (engine_signal): Update prototype.
3784 * cgen-utils.c: Don't include <signal.h>.
3785 (sim_signal_to_host): Delete, lives in sim-signal.c now.
3786 (engine_signal): Update.
3788 * sim-utils.c (sim_state_alloc): Call SIM_STATE_ALLOC if defined.
3789 (sim_state_free): Call SIM_STATE_FREE if defined.
3791 * sim-module.c (sim_module_install): Don't leave any modules
3792 installed if one fails to install.
3796 * sim-options.c: Don't include ../libiberty/alloca-conf.h any
3797 more, since alloca is not used in this file.
3799 * sim-alu.h (ALU{32,64}_*): Rewrite 32 and 64 bit ALU support to
3800 correctly set the carry and overflow bits for those types.
3801 (ALU{8,16,32,64}_{ADD,SUB}_CA): Take VAL argument to add along
3802 with carry, so carry is correct after doing both adds.
3803 (ALU*): Space out '\' to make it easier to read.
3807 * sim-core.c (sim_core_signal): Use sim_stopped instead of
3810 * sim-signal.c, sim-signal.h: New files.
3811 * Make-common.in (sim-signal.o): Add rule for.
3812 (SIM_NEW_COMMON_OBJS): Add sim-signal.o.
3813 * sim-abort.c: Don't include <signal.h>.
3814 * sim-basics.h: #include "sim-signal.h".
3815 * sim-break.c: Don't include <signal.h>.
3816 (sim_handle_breakpoint): Replace SIGTRAP with SIM_SIGTRAP.
3817 * sim-core.c: Don't include <signal.h>.
3818 (SIGBUS): Delete definition.
3819 (sim_core_signal): Replace SIGSEGV,SIGBUS with SIM_SIGSEGV,SIM_SIGBUS.
3820 * sim-engine.c: Don't include <signal.h>.
3821 (sim_engine_abort): Replace SIGABRT with SIM_SIGABRT.
3822 * sim-reason.c (sim_stop_reason): Call sim_signal_to_host.
3823 * sim-resume.c: Don't include <signal.h>.
3824 (SIGTRAP): Delete definition.
3825 (has_stepped): Replace SIGTRAP with SIM_SIGTRAP.
3826 * sim-stop.c: Don't include <signal.h>.
3827 (control_c_simulation): Replace SIGINT with SIM_SIGINT.
3828 * sim-watch.c: Don't include <signal.h>.
3829 (handle_watchpoint): Replace SIGINT with SIM_SIGINT.
3831 * Make-common.in (SIM_NEW_COMMON_OBJS): New variable.
3833 * sim-base.h (CIA_ADDR): Provide default definition.
3834 * sim-core.c (sim_core_signal): Use CIA_ADDR to fetch value.
3835 * sim-break.c (sim_handle_breakpoint): Likewise.
3839 * Make-common.in (srccom): New variable.
3841 * Make-common.in (DEP, COMMON_DEP_CFLAGS): Define.
3842 (LIB_OBJS): Add syscall.o.
3843 (gentmap): Pass $(NL_TARGET) to $(CC).
3844 (syscall.o): Add rule for.
3845 (sim_main_headers): Add $(SIM_EXTRA_DEPS).
3846 (sim-bits.o): Depend on $(sim-n-bits_h).
3847 (sim-load.o): Depend on callback.h.
3849 * Make-common.in (cgen-*.o): Update dependencies, mem-ops.h renamed to
3850 cgen-mem.h, sem-ops.h renamed to cgen-ops.h.
3851 * cgen-mem.h, cgen-ops.h: New files.
3853 * aclocal.m4 (--enable-sim-scache): Pass -DWITH_SCACHE=0 for "=no".
3855 * Makefile.in (nltvals.def): Depend on gennltvals.sh.
3857 * callback.c: #include string.h or strings.h.
3858 #include sys/types.h and sys/stat.h.
3859 (cb_init_syscall_map,cb_init_errno_map,cb_init_open_map): Declare.
3860 (os_get_errno,os_open): Update.
3861 (os_stat,os_fstat): New functions.
3862 (os_init): Initialize syscall_map, errno_map, open_map.
3863 (default_callback): Add entries for os_stat, os_fstat, syscall_map,
3864 errno_map, open_map, signal_map, stat_map.
3865 (cb_read_target_syscall_maps): New function.
3866 (cb_target_to_host_syscall): New function.
3867 (cb_host_to_target_errno): Renamed from host_to_target_errno.
3868 (cb_target_to_host_open): Renamed from target_to_host_open.
3869 (store): New function.
3870 (cb_host_to_target_stat): New function.
3871 * syscall.c: New file.
3872 * gentmap.c (sys_tdefs): New global.
3873 (gen_targ_vals_h): Output target syscall numbers.
3874 (gen_targ_map_c): Update. Output target syscall translation map.
3875 * gentvals.sh: New first argument `target'. Preface table with
3876 #ifdef NL_TARGET_$target if non-null target passed.
3877 * gennltvals.sh: New file.
3878 * nltvals.def: Regenerated.
3882 * sim-n-core.h (sim_core_read_unaligned_N): Return static
3884 (sim_core_dummy_M): Declare.
3888 * sim-core.c (sim_core_signal): Print the address of the
3893 * sim-base.h (sim_state_base): Move `magic' to end of struct.
3895 * sim-base.h (sim_state_base): Add member trace_data.
3896 (STATE_TRACE_DATA): New macro.
3897 * sim-trace.h (TRACE_DEBUG_IDX,TRACE_debug): New macros.
3898 ({WITH_,}TRACE_DEBUG_P): New macros.
3899 (STATE_TRACE_FLAGS,STRACE_P,STRACE_DEBUG_P): New macros.
3900 (_sim_cpu): Delete forward reference.
3901 (debug_printf): Update.
3902 * sim-trace.c (OPTION_TRACE_DEBUG): Define.
3903 (trace_options): Add --trace-debug.
3904 (set_trace_options): Handle it.
3905 (trace_option_handler): Likewise.
3906 (trace_install): Init state trace_data struct.
3907 (trace_uninstall): Close state trace file.
3908 * sim-events.c (ETRACE): Only print source file and line number if
3910 * sim-n-core.h (sim_core_trace_M): Likewise.
3912 * sim-core.c (sim_core_signal): Add missing "\n" in message.
3916 * sim-n-core.h (sim_core_read_unaligned_N): illegal empty
3918 * sim-types.h (unsigned128,signed128): fix typo for MSVC.
3922 * aclocal.m4 (SIM_AC_OPTION_SCACHE): Fix typo.
3924 * Make-common.in (BUILT_SRC_FROM_COMMON): Remove files no longer
3926 (sim-config.o): Remove non-existent $(sim-nconfig_h) dependency.
3927 (clean): Don't delete $(BUILT_SRC_FROM_COMMON) if building in
3932 * sim-events.c (sim_events_process): Re-compute the time -
3933 update_time_from_event - as each event is processed. Reverses
3938 * callback.c (os_poll_quit): Replace _WIN32 with _MSC_VER.
3942 * sim-events.c (sim_events_process): Delete redundant call to
3943 update_time_from_event.
3944 (sim_events_slip): Always decrement time_from_event.
3945 (sim_events_tick, sim_events_deschedule, update_time_from_event):
3946 Delete assertion that time_from_event >=0 when work in queue, no
3951 * sim-options.c (STANDARD_OPTIONS): Change OPTION_* to an enum.
3952 (standard_option_handler): Update.
3954 * sim-options.h: Clarify documentation.
3955 (OPTION_LONG_ONLY_P): Delete definition.
3956 (OPTION_VALID_P): Define.
3958 * sim-options.c (sim_print_help): Allow short only options.
3959 (sim_parse_args): Ditto.
3960 (sim_args_command): Skip short only options.
3961 (sim_parse_args): Allocate space for NUM_OPTS not just 256. Make
3962 separate entries for short and long options in the HANDLERS and
3964 (sim_parse_args): Disable argument permutation.
3968 * sim-core.h (DECLARE_SIM_CORE_WRITE_N. DECLARE_SIM_CORE_READ_N):
3969 Add argument M, size of data type.
3970 (sim_core_read_misaligned_3, sim_core_write_misaligned_3):
3971 Declare, ditto for 5, 6 & 7 byte transfers.
3972 (sim_core_write_unaligned_1, sim_core_write_unaligned_1): Define
3975 * sim-n-core.h (sim_core_trace_M): Rename from
3976 sim_core_trace_N. Add nr_bytes argument. Replace transfer argument
3977 with transfer type. Print transfer direction. Handle 1 and 2 byte
3979 (sim_core_read_unaligned_N, sim_core_write_unaligned_N): Trace
3981 (unsigned_M, T2H_M, H2T_M): Rename from unsigned_N, T2H_N, H2T_N.
3982 Update all functions.
3984 * sim-core.c: Generate functions starting with 16 not 1.
3985 (sim_core_read_unaligned_3): Generate. Ditto for 3 byte write and
3986 all 5, 6 & 7 byte transfers.
3988 * sim-n-core.h (sim_core_read_misaligned_N,
3989 sim_core_write_misaligned_N): Implement.
3993 * sim-endian.h (U16_8): Implement
3995 * sim-endian.c (sim_endian_split_16, sim_endian_join_16): New functions
3997 * sim-endian.h (VL8_16, VH8_16): Implement.
3999 * sim-memopt.c (memory_option_handler): Typecast 64bit value to
4001 (memory_option_handler): Only zalloc modulo bytes when non-zero.
4002 (memory_option_handler): Skip comma in alias address list
4006 * sim-memopt.c (do_memopt_add, do_memopt_delete): Add level and
4008 (parse_size, parse_addr): New functions
4009 (memory_option_handler, memory_options): Parse address & size
4010 using new functions. Pass level, space, modulo to do_memopt_add &
4013 * sim-memopt.h (struct _sim_memopt): Add level & space fields.
4015 * sim-core.h (sim_core_arrach, sim_core_detach): Replace
4016 `attach_type attach' argument with `unsigned level' argument.
4019 * sim-core.c (new_sim_core_mapping, sim_core_map_attach,
4020 sim_core_attach): Replace argument attach with level. Update
4021 verification of arguments.
4022 (sim_core_map_detach, sim_core_detach): Replace argument attach
4025 * sim-basics.h (enum _attach_type): Delete.
4029 * sim-core.h (sim_core_write_8): Define.
4033 * sim-bits.h: Document ROTn macro.
4035 * sim-endian.h (H2T): Handle 16 byte variables.
4037 * sim-n-core.h (sim_core_read_unaligned_N): Return a dummy when an
4040 * sim-core.c: Do not generate sim_core_*_word.
4042 * sim-n-core.h (sim_core_trace_N): Add line_nr argument.
4043 (sim_core_write_aligned_N, sim_core_read_aligned_N): Update.
4045 * sim-core.h (sim_core_read_unaligned_word,
4046 sim_core_read_aligned_word, sim_core_read_word,
4047 sim_core_write_unaligned_word, sim_core_write_aligned_word,
4048 sim_core_write_word): Change to macros that map onto sim_core_*_N.
4052 * sim-n-endian.h: Add TAGS entrys for 16 byte versions.
4054 * sim-endian.h: Disable 16 byte support.
4058 * sim-endian.c (_SWAP_16): Define. Generate 126 bit swap code.
4060 * sim-n-core.h (sim_core_trace_N): New function.
4061 (sim_core_read_aligned_N, sim_core_write_aligned_N): Use,
4062 (sim_core_read_unaligned_N): Do not retyrn bogus value wden error.
4064 * sim-endian.h: Add 128 bit variant.
4066 * sim-core.h, sim-core.c: Add 128 bit variant.
4068 * sim-types.h: Add signed128 and unsigned128 types using a struct.
4072 * sim-events.c (sim_events_process): Clear events->work_pending.
4073 (sim_events_tickn, sim_events_tick): Accumulate, instead of
4074 setting, nr_ticks_to_process.
4075 (sim_events_preprocess): Allow nr_ticks_to_process to be non-zero
4076 when the event queue isn't next.
4078 * sim-events.h, sim-events.c (sim_events_slip): New function.
4082 * sim-hload.c (sim_load): Pass lma_p==0 and do_load=sim_load.
4084 * sim-utils.h, sim-load.c (sim_load_file): Add lma_p and do_load
4089 * nrun.c (main): Remove useless test of name != NULL.
4090 Exit if bfd_openr fails. Call bfd_check_format after bfd_openr.
4094 * sim-fpu.c (EXPMAX): Type is unsigned.
4095 (MIN_INT, MAX_INT): Type is signed64.
4096 (i2fpu): Type of val is signed64.
4100 * sim-profile.h (PROFILE_PC_BUCKET_SIZE): Treat a shift of zero as
4101 a bucket size of zero.
4103 * sim-profile.c (OPTION_PROFILE_PC_GRANULARITY,
4104 OPTION_PROFILE_PC): Define.
4105 (profile_option_handler): Add support for --profile-pc and
4106 --profile-pc-granularity options.
4107 (profile_pc_init): When possible, compute nr buckets from bucket
4110 * sim-profile.c (profile_pc_init): Align the profile-pc end
4111 address with the profile-pc bucket size.
4113 * sim-profile.h (PROFILE_PC_NR_BUCKETS): Rename PROFILE_PC_SIZE to
4114 something less ambiguous.
4115 (PROFILE_PC_BUCKET_SIZE): Ditto for PROFILE_PC_SAMPLE_SIZE.
4117 * sim-profile.c (profile_pc_cleanup): New function. Move
4118 profile_pc_uninstall code to here.
4119 (profile_pc_uninstall): Call.
4120 (profile_pc_init): Call.
4124 * sim-profile.c (profile_print_pc): Dump pc profile to dmon.out
4125 file using BSD gprof format.
4127 * sim-bits.h (LSBIT, MSBIT, BIT): Force result to type
4129 (LSBIT8, LSBIT16, LSBIT32, LSBIT64, MSBIT8, MSBIT16, MSBIT32,
4130 MSBIT64): Force result to unsignedN.
4134 * sim-alu.h (ALU16_BEGIN, ALU32_BEGIN, ALU64_BEGIN): Drop opening
4136 (ALU8_BEGIN, ALU8_SET, ALU8_ADD, ALU8_SUB, ALU8_NEGATE): Define.
4137 (ALU16_ADD, ALU16_SUB, ALU16_NEGATE): Simplify arrithmetic.
4138 (ALU32_ADD, ALU32_SUB, ALU32_NEGATE): Simplify arrithmetic.
4139 (ALU64_ADD, ALU64_SUB, ALU64_NEGATE): Simplify arrithmetic.
4143 * sim-core.h (struct _sim_core_mapping): Change free_buffer to
4146 * sim-core.c (sim_core_uninstall, new_sim_core_mapping,
4147 sim_core_map_attach, sim_core_map_detach): Change free_buffer to
4149 (sim_core_attach): Rename buffer_freed to free_buffer, type
4150 void*. Ensure that allocated buffer is alligned according to
4155 * sim-alu.h (ALU64_HAD_OVERFLOW): Define.
4156 (ALU64_SUB): Define.
4158 * Make-common.in (all): Build SIM_EXTRA_ALL first.
4159 (.gdbinit): Remove dependencies, generate once per build.
4163 * sim-n-core.h (sim_core_read_aligned_N,
4164 sim_core_write_aligned_N): Make xaddr param type address_word not
4169 * sim-fpu.h, sim-fpu.c: Rewrite. Change sim_fpu object to an
4170 unpacked floating point struct. Pass sim_fpu object by reference.
4171 Add preliminary support for rounding modes.
4175 * configure: Regenerated to track ../common/aclocal.m4 changes.
4179 * aclocal.m4 (sim-bitsize): Fix typo, WITH_TARGET_WORD_BITSIZE not
4180 WITH_TARGET_BITSIZE.
4184 * sim-profile.c (profile_print_core): label needs empty statement.
4188 * sim-break.c (sim_set_breakpoint sim_clear_breakpoint): Use ZALLOC
4189 and zfree instead of xmalloc and free. Prevents warnings.
4193 * configure: Regenerated to track ../common/aclocal.m4 changes.
4197 * Make-common.in (SIM_BITSIZE): Assign from configured value.
4198 (CONFIG_CFLAGS): Add SIM_BITSIZE.
4200 * aclocal.m4 (--enable-sim-bitsize): Developer option for
4201 controling the bitsize/msb of the target.
4205 * Make-common.in: New files sim-break.c, sim-break.h.
4206 * sim-base.h: Add point to breakpoint list to sim_state_base.
4207 * sim-break.c sim-break.h: New modules that implement intrinsic
4209 * sim-module.c: Add breakpoint module.
4213 * sim-events.c (SIM_EVENTS_POLL_RATE): poll more often than once
4215 * sim-n-core.h (WITH_XOR_ENDIAN): MSVC barfs on
4217 * sim-core.c (sim_core_xor_write_buffer): WITH_XOR_ENDIAN + 1.
4218 (SIGBUS) define for Windows.
4219 * sim-trace.c (trace_printf,debug_printf): added ALMOST_STDC.
4220 * sim-resume.c: define SIGTRAP for windows.
4221 * sim-xcat.h: use token pasting if ALMOST_STDC.
4225 * Make-common.in (SIM_SCACHE, SIM_DEFAULT_MODEL): Assign
4227 (CONFIG_CFLAGS): Add same.
4231 * sim-types.h (SIGNED64): ##i64 when _MSC_VER, not _WIN32.
4232 (SIGNED32): use ##i32.
4236 * configure: Regenerated to track ../common/aclocal.m4 changes.
4240 * aclocal.m4 (sim-endian): Simplify logic determining [default]
4243 * Make-common.in (SIM_WARNINGS, SIM_ALIGNMENT, SIM_ENDIAN,
4244 SIM_HOSTENDIAN, SIM_RESERVED_BITS, SIM_ASSERT, SIM_FLOAT,
4245 SIM_HARDWARE, SIM_INLINE, SIM_PACKAGES, SIM_REGPARM, SIM_SMP,
4246 SIM_STDCALL, SIM_XOR_ENDIAN): Assign configured values.
4247 (CONFIG_CFLAGS): Add same.
4249 * aclocal.m4: Perform AC_SUBST on optional options.
4253 * sim-config.h (WITH_DEFAULT_ALIGNMENT): Don't hardwire any alignment.
4255 * sim-options.c (standard_option_handler): Typo in warning message.
4257 * sim-base.h (STATE_MODEL): Make conditional on SIM_HAVE_MODEL.
4259 * sim-profile.c (profile_print_insn): Check 0 .. MAX_INSN for any
4260 insn count. Make count conditional on there being a valid
4262 (profile_pc_init): Make default PC profile frequency an arbitrary
4265 * sim-base.h: Ditto.
4267 * sim-profile.h (WITH_PROFILE_MODEL_P): Only enable modeling when
4270 * sim-model.h (struct MACH): Depreciate, to be replaced by bfd
4275 * configure: Regenerated to track ../common/aclocal.m4 changes.
4279 * aclocal.m4 (sim_alignment): Simplify logic for selecting the
4280 configured alignment.
4284 * configure: Regenerated to track ../common/aclocal.m4 changes.
4288 * sim-config.c (sim_config): Check for default alignment.
4290 * sim-options.c (standard_option_handler): Add alignment option.
4292 * aclocal.m4 (sim_alignment): Allow configuration of hardwired and
4293 default alignment requirements on memory accesses.
4297 * sim-load.c (sim_load_file): Return failure if the executable
4298 had no loadable sections.
4302 * sim-events.c (ETRACE): Use trace_printf not sim_io_printf for
4305 * sim-core.c (sim_core_signal): When bad access halt simulator
4306 SIGSEGV / SIGBUS instead of aborting.
4307 (signal.h): Include.
4309 * sim-watch.c (sim_watchpoint_install): Handler for watchpoint
4310 options was missing.
4312 * sim-bits.h (MOVED): Define
4316 * sim-alu.h (ALU32_HAD_OVERFLOW): Pacify GCC, Use MSBIT instead of
4319 * sim-bits.h (LSBIT, MSBIT): Check for overflow of shift value.
4321 * sim-bits.c: Add 8 bit versions of bit macros.
4323 * sim-bits.h: Ditto.
4327 * sim-bits.c (LSSEXT, MSSEXT): Replace SEXT.
4328 (LSINSERTED, MSINSERTED): Ditto for INSERTED.
4330 * sim-n-bits.h (MSSEXTn, LSSEXTn): Replace SEXTn.
4331 (LSINSERTDn, MSINSERTEDN): Ditto for INSERTEDn.
4333 * sim-bits.h (SEXT*): Define as MSEXT/LSEXT.
4334 (INSERTED*): Ditto for LSINSERTED/MSINSERTED.
4338 * aclocal.m4 (SIM_AC_COMMON): Add optional config.h file argument.
4339 configure.in: Output to cconfig.h instead of config.h.
4341 * configure: Regenerated to track ../common/aclocal.m4 changes.
4345 * sim-utils.c (sim_analyze_program): Set STATE_ARCHITECTURE from
4350 * callback.c (os_write): divert stdout and stderr to their
4355 * sim-profile.c (profile_print_speed): Call
4356 sim_events_elapsed_time instead of PROFILE_EXEC_TIME for moment.
4358 * sim-events.c (sim_events_elapsed_time): New function return nr
4359 host MS consumed by the simulator.
4360 (sim_watch_valid): Use.
4362 * sim-module.c (modules): Install sim_events very very early.
4364 * sim-profile.c (profile_print): Call profile_print_pc.
4366 (profile_pc_init): New function, set up processor for PC
4368 (profile_print_pc): New function, print a PC profile.
4369 (profile_pc_event): New function, sample PC.
4371 * sim-profile.h (PROFILE_PC_COUNT, PROFILE_PC_START,
4372 PROFILE_PC_END, PROFILE_PC_SHIFT, PROFILE_PC_SAMPLE_SIZE): Add to
4375 * sim-options.c (sim_print_help): Pacify GCC.
4377 * sim-n-core.h (sim_core_read_aligned_N,
4378 sim_core_write_aligned_N): Add un-conditional profile call.
4379 (sim_core_read_unaligned_N, sim_core_write_unaligned_N): Add
4380 profile call when aligned read/write isn't used.
4382 * sim-base.h: Include sim-profile, sim-model after sim-core &
4383 sim-events allow sim-core to define useful values.
4385 * sim-profile.c (OPTION_PROFILE_CORE): Define.
4386 (profile_option_handler, profile_options): Add support for
4387 --profile-core option.
4388 (print_bar): Include when core profiling.
4389 (profile_print_core): New function, print core profile.
4391 * sim-config.c (print_sim_config): Print profile status.
4393 * sim-profile.h (PROFILE_NEXT_IDX, PROFILE_core,
4394 WITH_PROFILE_PC_P): Define.
4395 (PROFILE_CORE_COUNT): Count each core-map/size separatly.
4396 (PROFILE_COUNT_CORE): Define.
4400 * sim-watch.c (handle_watchpoint): Pass a char** index into the
4401 interrupt_names array as the data.
4402 (sim-watch.h): Document.
4406 * sim-options.c (sim_print_help): When the doc string is to long
4409 * sim-watch.c (sim_watchpoint_install): Use option.doc_name so
4410 that only the first few the watch options are listed. Generate
4411 meanginful usage messages.
4413 * sim-options.h (struct OPTION): Clarify use of doc_name field
4417 * sim-options.c (OPTION_ARCHITECTURE_INFO): New option.
4418 (standard_option_handler): Handle --architecture-info.
4422 * sim-core.h (sim_cpu_core): [WITH_XOR_ENDIAN + 1], to avoid
4423 illegal zero-sized array.
4424 * sim-core.c (sim_core_xor_read_buffer): same.
4428 * nltvals.def: Regenerate.
4432 * sim-fpu.c (DP_FRACHIGH2): Define LL using SIGNED64.
4436 * sim-bits.c (MASKED): Delete.
4437 (EXTRACTED): Delete.
4438 (LSEXTRACTED, MSEXTRACTED): New functions.
4440 * sim-n-bits.h (MASKEDn): Delete, define as MSMASKED or LSMASKED.
4441 (MSMASKEDn, LSMASKEDn): Add last argument.
4444 * sim-bits.h (EXTEND8, EXTEND16): Define.
4445 (EXTRACTED64): Define as 64 bit extract, not 32 bit.
4447 * sim-run.c (sim_engine_run): Use CPU_CIA macro.
4449 * sim-engine.h (SIM_ENGINE_HALT_HOOK): Use CPU_CIA to get at
4450 current instruction address.
4452 * sim-inline.h (*_ENGINE): Define.
4456 * sim-core.c (sim_core_attach): Fix checks of modulo/mask.
4458 * sim-watch.c (delete_watchpoint): Delete by ident and type.
4459 (watch_option_handler): Call delete_watchpoint with ident or type.
4460 (sim_watchpoint_install): Create interrupt specific watchpoint
4461 commands on the fly.
4462 (do_watchpoint_create): New function, create a watch point using
4463 type/int-nr info encoded in the option nr.
4464 (do_watchpoint_info): New function. List active watchpoints.
4466 * sim-watch.h: Change data structure to a list.
4468 * sim-memopt.c (memory_option_handler): Require explicit "all"
4469 before deleting all memory regions.
4471 * sim-utils.c (sim_do_commandf): New function, printf version of
4474 * sim-basics.h (asprintf, vasprintf): Hack, define for CYGWIN32.
4476 * sim-alu.h (ALU64_ADD): Use explicit MSEXTRACTED64, do not assume
4478 (SIGNED64, UNSIGNED64): Delete.
4479 (ALU64_ADD): Don't rely on bit endianness.
4480 (ALU64_BEGIN): Define.
4482 * sim-n-bits.h (MSEXTRACTEDn, LSEXTRACTED): New functions.
4483 (EXTRACTEDn): Delete, define as either LSEXTRACTED or MSEXTRACTED.
4485 * sim-types.h (SIGNED64, UNSIGNED64): New macros, attach relevant
4486 suffix - u64, LL - to 64 bit constants.
4490 * sim-config.c (sim_config): Add assert for SIM_MAGIC_NUMBER.
4492 * sim-utils.h (NZALLOC): Define - zalloc * N.
4494 * sim-hrw.c (sim_read, sim_write): New file. Provide generic
4495 implementation of read/write functions.
4497 * Make-common.in (sim-hrw.o): New target.
4499 * sim-base.h (STATE_MEMOPT_P): Delete, simulators _always_ add
4502 * sim-memopt.c (memory_option_handler): Implement memory-size
4503 command. Implement memory-alias command. Let memory-delete delete
4505 (add_memopt): New function. Add a memory region.
4506 (do_memopt_delete): New function. Delete a memory region.
4508 * sim-utils.c (sim_elapsed_time_get): Never return zero.
4510 * sim-core.c (sim_core_detach): New function.
4511 (sim_core_map_detach): New function. Perform the actual detach.
4512 (sim_core_init): Move initialization code from here.
4513 (sim_core_install): To here.
4514 (sim_core_uninstall): And here.
4516 * sim-module.c: Add memopt module.
4518 * sim-base.h (STATE_MEMOPT, STATE_MEMOPT_P): Add memopt to
4519 simulator base type.
4521 * Make-common.in (sim_main_headers): Add sim-memopt.h
4522 (sim-memopt.o): New target.
4524 * sim-core.c (sim_core_install): Add core_options to the option
4527 * sim-watch.c (watch_options): Make --delete-watch a synonym for
4530 * sim-config.h (WITH_MODULO_MEMORY): Define as 0. Update
4533 * sim-core.h (struct _sim_core_mapping): Change nr_bytes to type
4534 address_word, add mask member.
4536 * sim-core.h, sim-core.c (sim_core_attach): Make nr_bytes of type
4537 address_word, allow for 64bit targets in 32bit host. Add modulo
4539 (sim_core_map_attach): Ditto.
4540 (new_sim_core_mapping): Ditto.
4541 (sim_core_translate): Mask address when modulo memory.
4545 * sim-hload.c (sim_load): Add assert for SIM_MAGIC_NUMBER.
4547 * gdbinit.in: New file.
4548 * aclocal.m4 (SIM_AC_OUTPUT): Build .gdbinit.
4549 * Make-common.in (distclean): Delete .gdbinit.
4550 (.gdbinit): Add rule for.
4551 * configure: Regenerated to track ../common/aclocal.m4 changes.
4553 * Make-common.in (cgen-run.o): Add rule for.
4557 * sim-resume.c (sim_resume): Suspend/resume the simulator.
4559 * sim-events.c (sim_watch_valid): Compute total elapsed time from
4560 both resumed and previous elapsed time.
4561 (sim_events_init): Set initial_wallclock and current_wallclock to
4563 (sim_events_install): Install sim_events_suspend and
4565 (sim_events_watch_clock): Allow for suspended simulator when
4566 computing the time of the clock event.
4568 * sim-events.h (struct _sim_event): Add resume_wallclock, rename
4569 initial_wallclock to elapsed_wallclock, set both to zero.
4570 (sim_events_init, sim_events_uninstall): Delete prototypes.
4572 * sim-module.h (MODULE_SUSPEND_FN, MODULE_RESUME_FN): Define types.
4574 * sim-module.c(sim_module_resume, sim_module_suspend): New
4579 * sim-core.c (sim_core_map_attach): Clarify memory overlap error
4584 * Makefile.in (TAGS): Add support for "/* TAGS: foo */" marker.
4585 * Make-common.in (TAGS): Likewise.
4586 * sim-n-bits.h: Add TAGS comments for all functions.
4587 * sim-n-core.h: Likewise.
4588 * sim-n-endian.h: Likewise.
4592 * sim-utils.c (sim_state_alloc): Set CPU backlinks, callback and
4595 * sim-base.h (sim_state_alloc): Add callback and kind arguments.
4597 * sim-base.h (INVALID_INSTRUCTION_ADDRESS): Add default
4602 * sim-fpu.c (DP_GARDMSB, ...): Make unsigned.
4603 (DP_FRACHIGH, DP_FRACHIGH2, ..): Use MSMASK to avoid LL.
4607 * sim-core.c (sim_core_map_attach): Cast attach enum to int.
4608 (sim_core_xor_read_buffer, sim_core_xor_write_buffer): Make
4609 nr_transfered and nr_this_transfer unsigned.
4611 * sim-events.c (sim_events_tickn): N is signed, as limited to
4614 * sim-n-endian.h (offset_N): Change size to unsigned.
4616 * callback.c (os_poll_quit): Add prototypes for kbhit and getkey.
4620 * sim-utils.c (sim_copy_argv): Delete, replaced by dupargv.
4622 * sim-options.c (sim_parse_args): Use dupargv.
4626 * sim-options.c (standard_option_handler): Use xstrdup, not strdup.
4630 * sim-base.h (STATE_ARCHITECTURE, STATE_TARGET): Add to simulator
4633 * sim-options.c (standard_options): Add --architecture=MACHINE and
4634 --target=TARGET options.
4635 (OPTION_ARCHITECTURE, OPTION_TARGET): Define.
4636 (standard_option_handler): Handle architecture and target options.
4639 * sim-utils.c (sim_analyze_program): Pass STATE_TARGET to
4641 (sim_analyze_program): Set prog_bfd architecture from
4642 STATE_ARCHITECTURE if known.
4646 * configure: Regenerated to track ../common/aclocal.m4 changes.
4651 * aclocal.m4 (enable-sim-warnings): Remove comment stating
4652 that option does not apply to certain files.
4656 * sim-bits.h (LSBIT8, LSBIT16, LSBIT32, LSBIT64, LSBIT, MSBIT8,
4657 MSBIT16, MSBIT32, MSBIT64, MSBIT): New macros - single bit as
4658 offset from MSB/LSB.
4660 * sim-endian.h (A1_8, A2_8, A4_8, A1_4, A2_4, A1_2): New macro,
4661 access address of sub word quantity of a hosts 16, 32, 64 bit word
4663 (V1_2, V1_4, V2_4, V1_8, V2_8, V4_8): Ditto for values.
4664 (U8_1, U8_2, U8_4, U4_1, U4_2, U2_1): Ditto for set of values.
4665 (V2_H1, V2_L1, V4_H2, V4_L2, V8_L4, V8_H4): Given N byte argument,
4666 return N*2 byte value with argument in Hi/Lo word. Renamed from
4667 V1_H2, V1_L2, V2_H4, V2_L4, V4_H8, V4_L8.
4669 * sim-alu.h (ALU32_HAD_OVERFLOW): Use 64 bit mask not 32bit.
4670 (ALU16_HAD_CARRY, ALU32_HAD_CARRY, ALU16_HAD_OVERFLOW): Use MSBIT
4671 so that bit offset is explicit.
4675 * sim-utils.c (sim_analyze_program): Add prog_name argument.
4676 Update STATE_PROG_BFD when needed with a dup'd copy of the
4679 * sim-config.c (sim_config): Delete ABFD argument, use
4680 STATE_PROG_BFD directly.
4684 * run.c (main): Pass the open ABFD to sim_create_inferior.
4686 * nrun.c (main): Determine prog_bfd. Pass to sim_create_inferior
4690 * sim-hload.c (sim_load): New file. Implement generic sim_load for
4691 hardware only simulator targets.
4693 * Make-common.in (sim-hload.o): Add rule.
4697 * sim-utils.c (sim_copy_argv): Rewrite to match malloc strategy
4698 used by copyargv and freeargv.
4700 * sim-options.c (sim_parse_args): Save a copy of PROG-ARGS in
4701 STATE_PROG_ARGV, not just a pointer.
4705 * configure: Regenerated to track ../common/aclocal.m4 changes.
4710 * aclocal.m4 (sim-endian): Add second argument to
4711 SIM_AC_OPTION_ENDIAN. First is hardwired endian, second is
4712 default endian when not hardwired.
4714 * sim-config.h (WITH_DEFAULT_TARGET_BYTE_ORDER): New macro, if all
4715 else failes value for target byte order.
4717 * sim-config.c (sim_config): Add abfd arguments. Set
4718 STATE_PROG_BFD accordingly. Determine prefered_target_byte_order
4720 (sim_config): Return SIM_RC, don't abort.
4723 * run.c (main): Update call to sim_open - add ABFD argument.
4724 * nrun.c (main): Add NULL ABFD argument.
4728 * callback.c (os_poll_quit): Make static.
4729 Call sim_cb_eprintf, not p->eprintf.
4730 (sim_cb_printf, sim_cb_eprintf): New functions.
4731 * sim-utils.h (sim_cb_printf, sim_cb_eprintf): Declare.
4733 * sim-basics.h (zalloc,zfree,sim_add_commas,SIM_ELAPSED_TIME,
4734 sim_elapsed_time_get,sim_elapsed_time_since): Move decls to
4735 sim-utils.h. #include sim-utils.h.
4736 * sim-utils.h: Above decls moved here.
4737 (sim_analyze_program,sim_load_file): Use `struct _bfd', not `bfd'.
4739 * sim-watch.c (action_watchpoint): Fix thinkos.
4743 * sim-types.h: Fix defs of 64 bit data types for MSVC.
4747 * sim-n-core.h (sim_core_write_unaligned_N): Add missing break
4748 to FORCED_ALIGNMENT case.
4752 * callback.c (target_to_host_open): Handle hosts with O_BINARY.
4756 * Make-common.in (libsim.a): Fix typo.
4760 * nrun.c (main): Verify the structure returned before using it.
4764 * sim-config.h (WITH_ENGINE): Enable the sim-engine module by
4767 * sim-engine.c (sim_engine_install): New function. Install the
4768 engine init functions.
4769 (sim_engine_init): [Re]initialize the simulator engine.
4771 * sim-module.c: Add sim_engine to list of modules that always
4776 * sim-watch.c (schedule_watchpoint): Use sim_unschedule_watchpoint
4777 to remove the old watchpoint, not delete_watchpoint.
4778 (watch_option_handler): Action the correct watchpoint, not just
4783 * sim-n-core.h (sim_core_write_aligned_N): For 8byte reads, output
4784 both low and high word.
4785 (sim_core_write_aligned_N): Ditto.
4787 * sim-trace.c (set_trace_options): Delete code explicitly setting
4790 * sim-options.c (sim_print_help): Call the list commands if not a
4791 standalone simulator.
4792 (sim_print_help): Advise that some options may not be applicable.
4794 * sim-trace.c (set_trace_options): Assume core present.
4796 * sim-events.c (sim_events_schedule_after_signal): Overflow signal
4797 buffer when full not almost full.
4801 * sim-events.c (sim_events_process): Don't blat the event queue
4802 when processing watchpoints.
4804 * sim-watch.h: Make arg unsigned long - stop sign extension.
4806 * sim-events.c (sim_watch_valid): rewrite so debugable.
4808 * sim-config.h (WITH_XOR_ENDIAN): Default to zero.
4810 * sim-watch.c (schedule_watchpoint): Add is_within option so that
4811 inequality test is possible.
4812 (handle_watchpoint): Re-pass is_within arg.
4813 (watch_option_handler): When `!' prefix to pc-watchpoint arg pass
4814 0 to schedule_watchpoint's is_within arg.
4815 (sim_watchpoint_init): Re-pass is_within arg.
4817 * sim-options.c (sim_print_help): Add is_command argument. Don't
4818 include -- prefix when called from the command line interpreter.
4820 * sim-watch.c (schedule_watchpoint): Pass true is_within argument.
4822 * sim-events.c (sim_events_watch_sim): Add is_within argument,
4823 zero indicates that the test should be reversed.
4824 (sim_events_watch_core): Ditto.
4825 (WATCH_CORE): Compare range against is_within.
4830 * sim-events.c (WATCH_CORE): Pass NULL cpu argument to
4831 sim_core_read_buffer. Check nr-bytes transfered.
4833 * sim-core.h (sim_core_common): Define a new struct that contains
4834 the common data. to sd and cpu structures.
4835 * sim-core.c (sim_core_attach): Update.
4836 (sim_core_init): Update. Remember to copy initialized data to each
4838 (sim_core_find_mapping): Ditto.
4840 * sim-core.c (sim_core_read_buffer): Add cpu argument.
4841 (sim_core_write_buffer): Ditto.
4843 * sim-n-core.h (sim_core_read_unaligned_N): When mis-aligned
4844 transfer use xor version of read buffer.
4845 (sim_core_write_unaligned_N): Ditto for write.
4847 * sim-core.c (sim_core_xor_read_buffer): New function implement
4848 xor-endian data read breaking transfer up into xor-endian sized
4850 (sim_core_xor_write_buffer): Ditto for write.
4851 (reverse_n): Reverse order of arbitrary number of bytes in buffer
4852 - needed for xor-endian transfers.
4856 * sim-inline.h: Review description.
4858 * sim-core.h, sim-core.c: Reduce number of functions being inlined
4859 to just those involved in data transfers and configuration.
4861 * sim-xcat.h (XSTRING): New macro, map macro definition onto
4863 * sim-n-core.h (sim_core_read_aligned_N): Use.
4864 (sim_core_read_unaligned_N): Ditto.
4865 (sim_core_read_unaligned_N): Ditto..
4866 (sim_core_write_unaligned_N): Ditto.
4868 * sim-core.h: Add xor endian bitmap to main structure. *
4870 sim-n-core.h (sim_core_write_aligned_N): Add suport for xor
4872 (sim_core_read_aligned_N): Ditto.
4874 * sim-core.c (sim_core_set_xor_endian): New function.
4875 (sim_core_attach): Don't overwrite the per-cpu xor map when
4876 cloning the global core.
4880 * sim-engine.h: Update below so that it is using an enumerated
4885 * sim-engine.c (sim_engine_restart):
4886 * sim-resume.c (sim_resume): Change longjmp param/setjmp
4887 return value used for simulator restart from 0 to 2.
4891 * cgen-scache.c (scache_option_handler): Add is_command arg.
4893 * sim-model.c (model_option_handler): Add is_command argument.
4895 * sim-profile.c (profile_option_handler): Add is_command arg.
4897 * sim-events.c (sim_watch_valid): Use ub64, lb64 when 64bit value
4900 * sim-module.c (sim_module_add_init_fn): Call init fn in the same
4901 order that they are registered.
4903 * sim-options.h (OPTION_HANDLER): Add argument to differentiate
4904 between option and command line processing.
4906 * sim-options.c: Include stdlib.h, ctype.h.
4908 * Make-common.in (sim-watch.o): Add rule.
4909 (sim_main_headers): Assume sim-assert.h included.
4910 (sim-*.o): Simplify make rule.
4912 * sim-module.c: Add sim_watch_install to module list.
4916 * sim-base.h (STATE_LOADED_P): New predicate. Set once everything
4919 * sim-trace.c (trace_install): Check magic. Include sim-assert.h.
4920 * sim-events.c (sim_events_install): Ditto.
4921 * sim-core.c (sim_core_install): Ditto.
4922 * sim-model.c (model_install): Ditto.
4923 * sim-options.c (standard_install): Ditto.
4924 * sim-profile.c (profile_install): Ditto.
4925 * sim-reason.c (sim_stop_reason): Ditto.
4926 * sim-run.c (sim_engine_run): Ditto.
4927 * sim-utils.c (sim_analyze_program): Ditto.
4929 * sim-module.c (modules): Make profile_install and trace_install
4932 * sim-base.h (STATE_MEM_BASE): Define for flat memory systems.
4934 * sim-options.c (standard_option_handler): Set the byte order.
4936 * sim-events.c (sim_events_process): Allow multi tick processing.
4937 (sim_events_tickn): New function - multi cycle tick.
4939 * sim-events.h (sim_events_tickn, sim_events_timewarp): Add
4940 prototypes. Under development.
4941 (sim_events): Replace processing with nr_ticks_to_process.
4945 * nrun.c (main): Pass callbacks to sim_open instead of using
4948 * run.c (main): Ditto.
4952 * sim-events.c (sim_events_zalloc): Signal save memory allocator -
4953 stop tk interrupting malloc calls.
4954 (sim_events_zalloc): Converse.
4956 * Make-common.in (sim_main_headers): Add sim-events.h.
4958 * sim-events.c (sim_events_schedule_after_signal): Change return
4959 type to void - signal events are strictly internal.
4960 (sim_events_init): Allocate a finite buffer for signal events.
4961 (sim_events_schedule_after_signal): Enter signal events into the
4964 * sim-engine.c (sim_engine_halt): Check SIM_DESC magic.
4965 (sim_engine_restart): Ditto.
4966 (sim_engine_abort): Ditto.
4967 * sim-stop.c (sim_stop): Ditto.
4968 (control_c_simulation): Ditto.
4969 * sim-resume.c (sim_resume): Ditto.
4970 (has_stepped): Ditto.
4971 * sim-abort.c (sim_engine_abort): Ditto.
4973 * sim-basics.h (transfer_type): New type.
4975 * sim-core.c (sim_core_signal): New function. Print core signal
4977 (sim_core_find_mapping): Add transfer argument.
4979 * sim-n-core.h (sim_core_{write,write}_unaligned_N): Call
4980 SIM_CORE_SIGNAL if a recoverable abort.
4981 * sim-core.c (sim_core_find_mapping): Ditto.
4985 * sim-core.c (sim_core_find_mapping): Replace calls to
4986 sim_io_error to more resiliant sim_engine_abort.
4988 * sim-n-core.h (sim_core_read_unaligned_N): Ditto.
4989 (sim_core_write_unaligned_N): Ditto.
4993 * sim-module.c: Add sim_events_install to list.
4995 * sim-events.c (sim_events_install, sim_events_uninstall): Clonse
4997 (sim_events_init): Now returns SIG_RC.
4999 * sim-run.c: New file. Generic sim_engine_run.
5000 * sim-reason.c: New file. Generic sim_stop_reason.
5001 * sim-stop.c: New file. Generic sim_stop.
5002 * sim-resume.c: New file. Generic sim_resume.
5004 * Make-common.in (sim-engine.o): Add rule.
5005 (sim-run.o, sim-reason.o, sim-stop.o, sim-resume.o): Ditto.
5007 * sim-engine.h, sim-engine.c: New file. Provide generic
5008 implementation of sim_engine_halt, sim_engine_error. et.al.
5010 * sim-base.h (sim_state_base): Add member halt.
5011 (sim-engine.h): Include.
5013 * sim-events.h (sim_event_handler): Always pass SIM_DESC to event
5015 * sim-events.c (sim_events_poll): Update event handler.
5019 * sim-events.h, sim-events.c (sim_events_watch_clock): New
5021 (sim_events_watch_sim): New function.
5022 (sim_events_watch_core): New function.
5023 (sim_watch_valid): New function.
5024 (sim_events_preprocess): New function.
5025 (sim_events_process): Process the watchpoints as well as the timer
5027 (sim_events_tick): Check WORK_PENDING instead of the hold queue.
5028 (sim_events_deschedule): Check all the queues when removing an
5030 (sim_events_init): Ditto for cleaning.
5034 * sim-fpu.c (is_ufpu_number): Comment out - currently unused.
5038 * callback.c (os_open): Type of arg flags is int.
5042 * sim-fpu.c (sim_fpu_is_{eq,ne,lt,le,gt,ge}): Compare Infinities
5043 just like normal numbers as per IEEE rules.
5047 * callback.c (os_close): Mark the descriptor as being
5048 available if the close succeeded.
5049 (os_open): Pass 0644 as the mode of the file being created.
5053 * sim-fpu.c (pack_fpu, unpack_fpu): New functions - decode a
5056 * sim-inline.c (SIM_INLINE_C): Rename from _SIM_INLINE_C_.
5057 * sim-lnline.h: Update.
5059 * sim-fpu.h, sim-fpu.c (sim_fpu_[iu]{32,64}to): New int2fp
5060 conversion functions.
5061 (sim_fpu_to{32,64}[iu]): New fp2int functions.
5063 * sim-fpu.h, sim-fpu.c (sim_fpu_is_{lt,le,eq,ne,ge,gt}): New fp
5064 compare functions. Replacing.
5065 (sim_fpu_cmp): This. Delete.
5069 * sim-core.c (sim_core_find_mapping): Call engine_error not
5070 sim_io_error when possible.
5074 * sim-endian.h (V1_H2): Add macro's to insert a word into a
5075 high/low double word.
5077 * sim-trace.h: Remove definition of attribute - defined in
5082 * sim-options.h (struct OPTION): Add doc_opt as the documenting
5083 name of the option - or family of options.
5085 * sim-options.c (sim_args_command): Match command `a-b c' with
5086 option `--a-b-c' from option table.
5090 * sim-options.c (sim_print_help): For optional arguments, wrap
5093 * sim-trace.c (set_trace_options): New function, handle optional
5094 argument and multiple assignment.
5095 (trace_option_handler): Update.
5097 * sim-trace.c (trace_option_handler): Trace branch and not fpu
5098 when branch tracing selected.
5102 * sim-trace.c (trace_one_insn): Make a va-args function.
5104 * sim-trace.c (trace_vprintf): New function, va-arg version of
5109 * sim-trace.c (trace_uninstall): Don't close a file twice.
5110 * sim-profile.c (profile_uninstall): Likewise.
5114 * sim-trace.c (toplevel): Include bfd.h.
5115 (trace_options): Note that --trace-linenum also turns on
5116 --trace-insn. Add --trace-{branch,semantics}.
5117 (trace_option_handler): If --trace-linenum, also turn on
5118 --trace-insn. Add --trace-branch support. If --trace-semantics,
5119 turn on ALU, FPU, branch, and memory tracing.
5120 (trace_one_insn): New function to trace an instruction. Support
5122 (OPTION_TRACE_*): Use an enum, rather than lots of defines.
5124 * sim-trace.h (TRACE_{SEMANTICS,BRANCH}_IDX): Add new macros.
5125 (MAX_TRACE_VALUES): Use 32, not 12 by default.
5126 (TRACE_branch): Add new mask.
5127 (TRACE_*_P): Define all possible trace_p macros.
5128 (trace_one_insn): Declare function.
5132 * sim-trace.h (__attribute__): Define as nothing if not GNU C or
5133 GNU C doesn't support __attributes__.
5134 ({trace,debug}_printf): Add attribute's so -Wformat can check the
5139 * sim-config.h (FORCED_ALIGNMENT): New alignment option -
5140 addresses are masked forcing them to be correctly aligned.
5141 (WITH_ALIGNMENT): Make NONSTRICT_ALIGNMENT the default.
5142 * sim-config.c (config_alignment_to_a): Update.
5144 * sim-core.h (sim_cpu_core): New data type contains cpu specific
5146 * sim-base.h (CPU_CORE): Add cpu specific core data to cpu base
5148 * sim-core.c (sim_core_attach): Add CPU argument. Ready for
5149 processor specific core maps.
5150 (sim_core_map_attach): Copy the core map data to each of the
5151 processor specific core data structures.
5152 * sim-core.c (sim_core_find_mapping): Update.
5154 * sim-n-core.h (sim_core_read_N, sim_core_write_N): Rename.
5155 (sim_core_write_aligned_N, sim_core_write_aligned_N): New names.
5156 (sim_core_write_unaligned_N, sim_core_write_unaligned_N): New
5157 alternatives that handle unaligned addresses.
5158 (sim_core_{read,write}_{,un}aligned_N): Drop SIM_DESC arg, replace
5160 * cgen-utils.c (sim_disassemble_insn): Update.
5164 * sim-trace.h (TRACE_FPU_IDX): Add Floating-point specific
5167 * sim-fpu.h, sim-fpu.c: New files - prototype for generic target
5170 * sim-inline.h, sim-inline.c: Add support for SIM_FPU.
5174 * sim-core.c (sim_core_map_to_str): New function ascii equivalent
5177 * sim-n-core.h (sim_core_read_N, sim_core_write_N): Use in trace
5182 * cgen-trace.c: Prepend additional trace_printf argument.
5184 * cgen-utils.c (sim_disassemble_insn): Add additional core
5189 * nrun.c (main): Catch/report errorenous simulator states.
5191 * sim-module.c: #include "libiberty.h" so that xmalloc is defined.
5192 * sim-trace.c: #include string.h/strings.h so that memset is
5194 * sim-utils.c: Ditto.
5195 * sim-profile.c: Ditto. And stdlib.h.
5196 (print_bar): Only define when used by instruction or memory profiler.
5198 * sim-options.c (standard_option_handler): Make ul more local.
5200 * sim-load.c (sim_load_file): Make the name constant.
5201 (sim_load_file): Passify gcc.
5203 * sim-utils.h: New file, pre-declare utilites in corresponding .c
5205 * sim-utils.c, sim-load.c: Include sim-utils.h.
5207 * sim-base.h (sim_cpu): Pre define here so available to all.
5209 * sim-core.h (DECLARE_SIM_CORE_WRITE_N, DECLARE_SIM_CORE_READ_N):
5210 Restore the sim_cpu and instruction_address arguments so that full
5211 information is available to the abort function.
5212 * sim-core.c (sim_core_find_mapping, sim_core_write_buffer): Ditto.
5213 * sim-n-core.h (sim_core_write_N, sim_core_read_N): Update.
5215 * sim-trace.h, sim-trace.c (trace_option_handler): Add interim
5216 tracing support for sim-events and sim-core.
5217 (trace_option_handler): Convert #if to if where possible so always
5218 compiled/checked by C compiler.
5219 * sim-n-core.h (sim_core_write_N, sim_core_read_N): Update.
5221 * sim-base.h: Adjust comment documenting how to define the cpu
5223 (sim_state_base): Add sim_core and sim_events to simulator base
5226 * sim-trace.h, sim-trace.c (trace_printf): Add SIM_DESC argument.
5227 * sim-core.c (sim_core_init, sim_core_attach,
5228 sim_core_find_mapping): Update.
5229 * sim-events.c (ETRACE, sim_events_init, sim_events_time,
5230 update_time_from_event, insert_sim_event,
5231 sim_events_schedule_after_signal, sim_events_deschedule,
5232 sim_events_tick): Ditto.
5234 * sim-basics.h (sim-module.h, sim-trace.h, sim-profile.h,
5235 sim-model.h): Move #includes from here.
5236 * sim-base.h: To here.
5237 (sim-core.h, sim-events.h, sim-io.h): Include also
5241 * callback.c (default_callback): Missing initialisers.
5245 * sim-utils.c (sim_add_commas): New function.
5246 * sim-basics.h (sim_add_commas): Add prototype.
5247 * cgen-scache.c (scache_print_profile): Print commas in numbers.
5248 * sim-profile.c (COMMAS): New macro.
5249 (print_*): Use it to print commas in numbers.
5251 * configure: Regenerated.
5253 * cgen-sim.h (sim_signal_type): Add SIM_SIGINT.
5254 (cgen_state): New member run_fast_p.
5255 (cgen_init): Add prototype.
5256 (sim_disassemble_insn): New arg `cpu'.
5257 * cgen-trace.c (trace_insn): Update call to sim_disassemble_insn.
5258 * cgen-utils.c (cgen_init): New function.
5259 (sim_disassemble_insn): New arg `cpu'. Rewrite fetching of insn.
5260 * genmloop.sh: Call engine_halt if loop exits.
5262 * Makefile.in (sim-options_h): Define.
5263 (sim-{module,options,trace,profile,utils}.o): Clean up dependencies.
5264 (sim-model.o): Add new rule.
5265 (cgen-{scache,trace,utils}.o): Add new rules.
5266 * aclocal.m4 (SIM_AC_OPTION_{SCACHE,DEFAULT_MODEL}): Add.
5267 * cgen-scache.c (scache_print_profile): Change `sd' arg to `cpu'.
5268 Indent output by 2 spaces.
5269 * cgen-scache.h (scache_print_profile): Update.
5270 * cgen-trace.c (trace_insn_fini): Indent output by 2 spaces.
5271 Use trace_printf, not fprintf.
5272 (trace_extract): Use trace_printf, not cgen_trace_printf.
5273 * genmloop.sh (!FAST case): Increment `insn_count'.
5274 * sim-base.h (sim_state_base): Only include scache_size if WITH_SCACHE.
5275 (sim_cpu_base): Rename member `sd' to `state' to be consistent with
5276 access macro's name.
5277 * sim-core.c (sim_core_init): Use EXTERN_SIM_CORE to define it.
5278 Change return type to SIM_RC.
5279 (sim_core_{install,uninstall}): New functions.
5280 * sim-core.h (sim_core_{install,uninstall}): Declare.
5281 (sim_core_init): Use EXTERN_SIM_CORE to define it.
5282 Change return type to SIM_RC.
5283 * sim-model.h (models,machs,model_install): Declare.
5284 * sim-module.c (modules): Add scache_install, model_install.
5285 (sim_post_argv_init): Set cpu->state backlinks.
5286 * sim-options.c (standard_options): Delete --simcache-size,--max-insns.
5287 (standard_option_handler): Likewise.
5288 * sim-profile.c (PROFILE_{HISTOGRAM,LABEL}_WIDTH): Move to
5291 (profile_options): Delete --profile-simcache.
5292 (profile_option_handler): Likewise.
5293 (profile_print_insn): Change `sd' arg to `cpu'. Indent output 2
5295 (profile_print_{memory,model}): Likewise.
5296 (profile_print_simcache): Delete.
5297 (profile_print_speed): New function.
5298 (profile_print): Rewrite.
5299 * sim-profile.h (PROFILE_scache): Renamed from PROFILE_simcache.
5300 (WITH_PROFILE_SCACHE_P): Renamed from WITH_PROFILE_SIMCACHE_P.
5301 (PROFILE_DATA): Delete members simcache_{hits,misses}.
5302 (PROFILE_COUNT_SIMCACHE_{HIT,MISS}): Delete.
5303 (PROFILE_{CALLBACK,CPU_CALLBACK}): New types.
5304 (profile_print): Update prototype.
5308 * cgen-scache.[ch], cgen-sim.h: New files.
5309 * cgen-trace.[ch], cgen-types.h, cgen-utils.c, genmloop.sh: New files.
5310 * sim-model.c: New file.
5312 * Make-common.in (clean targets): Undo patch of Apr. 22.
5316 * sim-n-bits.h (signed): If we have a standard compiler, undef
5317 signed, so that signedN is defined correctly.
5321 * sim-module.h, sim-model.h, sim-profile.h: New files.
5322 * sim-module.c, sim-profile.c: New files.
5323 * Make-common.in (SIM_PROFILE): Define
5324 (CONFIG_CFLAGS): Add $(SIM_PROFILE).
5325 (sim_main_headers): Add sim-module.h, sim-model.h, sim-profile.h.
5326 (sim_module.o,sim-profile.o): Add rules for.
5327 * aclocal.m4 (--enable-sim-trace): Allow symbolic arguments.
5328 (--enable-sim-profile): Add.
5329 * configure: Regenerated.
5330 * sim-base.h (sim_state_base): New members init_list, uninstall_list,
5331 model. Move trace and profile support to sim-{trace,profile}.h.
5332 New members trace_data, profile_data.
5333 * sim-basics.h: #include sim-module.h, sim-model.h, sim-profile.h.
5334 * sim-config.h: Provide default definition of WITH_PROFILE.
5335 (WITH_TRACE): Change default to -1.
5336 (MAX_NR_PROCESSORS): Always define.
5337 * sim-options.c: Move trace and profile support to
5338 sim-{trace,profile}.h.
5339 (sim_pre_argv_init): Moved to sim-model.c.
5340 (standard_install): New function.
5341 * sim-options.h (sim_pre_argv_init): Move decl to sim-model.c.
5342 (standard_install): Declare.
5343 * sim-trace.c: Tracing option handling moved here from sim-options.c.
5344 (trace_install, trace_uninstall): New functions.
5345 (trace_printf): Update reference to TRACE_FILE.
5346 * sim-trace.h (TRACE_FOO_IDX): Moved here from sim-base.h.
5347 (TRACE_foo): Bit masks for symbolic arguments to --enable-sim-trace.
5348 (WITH_TRACE_FOO_P): Define.
5349 (trace_install): Declare.
5350 (TRACE_DATA): New struct.
5354 * run.c: Undo last exec_bfd patch.
5355 (main): Only pass -E ifdef SIM_HAVE_BIENDIAN.
5359 * run.c (exec_bfd): Add back in.
5360 (main): Set exec_bfd.
5364 * sim-load.c (sim_load_file): #include <stdio.h> for NULL.
5368 * sim-events.c (insert_sim_event): Call sim_io_error instead of
5369 less well defined engine_error.
5370 * sim-core.c: Ditto.
5374 * Make-common.in: Change clean targets to use :: so that other
5375 Makefiles can have their own clean targets.
5376 * sim-load.c (xprintf eprintf): Use ANSI_PROTOTYPES instead of
5377 __STDC__ to control use of stdarg vs. varargs syntax. Some
5378 systems can't use __STDC__, but require stdarg.
5382 * sim-options.c (standard_options): Add --endian.
5383 (standard_option_handler): Likewise.
5385 * nrun.c: #include <signal.h>.
5386 (main, cntrl_c): Wrap calls to sim_resume in a SIGINT
5387 handler that calls sim_stop ().
5391 * run.c (main, cntrl_c): Wrap calls to sim_resume in a SIGINT
5392 handler that calls sim_stop (). Simulators may still be
5393 establishing their own handler.
5395 * sim-events.c (sim_events_poll): Rename from
5396 sim_events_at_large_int. Poll IO.
5398 * sim-io.c (sim_io_poll_quit): New function - pass on a polling
5401 * callback.c (os_poll_quit): New function poll for quit signal
5403 (default_callback): Include magic number.
5407 * aclocal.m4: Check for headers time.h, sys/time.h, sys/resource.h.
5408 Check for functions getrusage, time.
5409 * sim-basics.h (SIM_ELAPSED_TIME): New typedef.
5410 (sim_elapsed_time_get, sim_elapsed_time_since): Add prototypes.
5411 * sim-utils.c: #include time.h, sys/time.h, sys/resource.h if able.
5412 (sim_elapsed_time_get, sim_elapsed_time_since): New functions.
5414 * sim-utils.c (sim_copy_argv, sim_analyze_program): New functions.
5416 * sim-options.c, sim-options.h: New files.
5417 * sim-config.h (WITH_DEBUG): Provide default value of zero.
5418 * Make-common.in (nrun.o): Add rules for.
5421 * run.c (main): Check return value of sim_open.
5423 * Make-common.in (sim-options.o, sim-load.o, sim-trace.o): Add rules.
5424 (sim_main_headers): Add sim-trace.h.
5425 * run.c (exec_bfd, target_byte_order): Delete.
5426 (main): Pass -E <endian> to sim_open. Delete code to load sections,
5427 call sim_load instead. Check return code of sim_create_inferior.
5428 * sim-base.h (CURRENT_STATE): Define.
5429 (sim_state_base): Make typedef. New members options, prog_argv,
5430 prog_bfd, text_{section,start,end}, start_addr, simcache_size,
5431 mem_size, memory [+ corresponding access macros].
5432 (sim_cpu_base): New typedef.
5433 * sim-trace.h: New file.
5434 * sim-trace.c: New file.
5435 * sim-basics.h: #include it.
5436 * sim-load.c: New file.
5440 * Make-common.in (INSTALL): Set to @INSTALL@.
5441 (INSTALL_XFORM, INSTALL_XFORM1): Remove.
5442 (install-common): Depend upon installdirs. Use
5443 $(program_transform_name) directly, rather than using
5445 (installdirs): New target.
5446 * Makefile.in (INSTALL): Set to @INSTALL@.
5447 (INSTALL_XFORM, INSTALL_XFORM1): Remove.
5448 (install-man): Depend upon installdirs. Use
5449 $(program_transform_name) directly, rather than using
5451 (installdirs): New target.
5455 * sim-assert.h (SIM_ASSERT, ASSERT): Allow these macros to
5460 * sim-basics.h: Only bring in config.h and tconfig.h if
5465 * sim-config.h (WITH_TARGET_WORD_MSB): New Macro. Define the bit
5466 numbering convention of the target.
5467 * sim-config.c (print_sim_config): Print WITH_TARGET_WORD_BITSIZE
5468 and WITH_TARGET_WORD_MSB.
5469 (sim_config): When possible, check for consistency with bitsize
5472 * sim-bits.h: Allow MSB to be other than zero.
5473 * sim-bits.c: Ditto.
5474 * sim-n-bits.h: Ditto.
5476 * sim-bits.h (MSMASK*): New macros - converce to LSMASK*.
5477 * sim-n-bits.h (MSMASKEDn): Ditto.
5481 * Makefile.in (INSTALL): Change install.sh to install-sh.
5485 * sim-base.h (sim_state_base): Move `magic' to end of struct.
5489 * run.c (main): Check that a program to run was specified.
5493 * aclocal.m4 (AC_TYPE_SIGNAL): Add check.
5495 * configure: Regenerated to track ../common/aclocal.m4 changes.
5500 * sim-endian.h: Move host {LITTLE,BIG}_ENDIAN support from here,
5501 * sim-config.h: To here.
5503 * Make-common.in (SIM_EXTRA_DEPS): New config var.
5504 (sim_main_headers): Define.
5505 (sim-*.o): Depend on $(SIM_EXTRA_DEPS).
5506 (BUILT_SRC_FROM_COMMON): Move here from ../d30v/Makefile.in.
5508 (sim-utils.o): Add rule for.
5509 * sim-utils.o: New file.
5510 * sim-basics.h: #include sim-base.h.
5511 (zalloc): Make argument unsigned long.
5512 * sim-base.h: New file.
5513 * sim-inline.h (SIM_IO support): Delete.
5514 * sim-io.h: Delete inline support.
5515 * sim-io.c: Likewise. sim-state.h renamed to sim-main.h.
5516 * sim-config.c: sim-state.h renamed to sim-main.h.
5517 * sim-core.c: Likewise.
5518 * sim-events.c: Likewise.
5520 * run.c (main): Pass SIM_OPEN_STANDALONE to sim_open.
5522 * aclocal.m4: Check for stdlib.h, string.h, strings.h, unistd.h.
5523 (sim-debug): Allow arguments. Define WITH_DEBUG in addition to
5525 * configure: Regenerated to track ../common/aclocal.m4 changes.
5529 * configure: Regenerated to track ../common/aclocal.m4 changes.
5533 * sim-config.h (WITH_ALIGNMENT, WITH_FLOATING_POINT,
5534 WITH_XOR_ENDIAN, WITH_SMP, WITH_RESERVED_BITS): Assume that these
5535 are defined by the configure.
5537 * aclocal.m4 (sim-stdio): Add option stdio from ../ppc configure.
5539 * aclocal.m4 (floating-point, xor-endian, alignment, smp,
5540 reserved-bits): Always define.
5542 * sim-config.h, sim-config.c (sim_config): New function - and new
5543 file - co-ordinate the setting/checking of the common simulator
5544 configuration options.
5546 * Make-common.in (sim-config.o): Add rule.
5550 * callback.c (os_{,e}vprintf_filtered): Change stdarg type to
5551 va_list from void *, since va_list might not be a pointer type.
5555 * sim-n-endian.h (offset_N): Correct assertion - word and sub word
5557 (offset_N): Correct computation of LE offset.
5559 * sim-io.c (sim_io_error): Include a new line when reporting
5562 * sim-assert.h (SIM_FILTER_PATH): Out by one when locating last
5567 * run.c: Include alloca-conf.h.
5569 * callback.c (os_evprintf_filtered): Fix typo.
5573 * run.c (string.h, strings.h, stdlib.h): Include.
5575 * sim-events.c (sim_events_tick): Recent cleanup failed to return
5576 0 when nothing pending.
5578 * run.c (sim_size, sim_trace): Plicate GCC - these two functions
5579 will soon be going away.
5580 (getopt): Plicate GCC.
5582 * sim-endian.c (sim-io.h): Plicate GCC.
5583 * sim-bits.c (sim-io.h): Ditto.
5584 * sim-n-bits.h (ROTn): Ditto.
5586 * sim-io.c (sim_io_error): Correct check for NULL.
5588 * sim-assert.h (SIM_FILTER_PATH): Separate out the code filtering
5590 * sim-events.c: Use SIM_FILTER_PATH to filter out the filename
5595 * aclocal.m4 (SIM_AC_OPTION_*: Move so that they are outside of
5596 SIM_AC_COMMON - SIM_AC_COMMON was gobling arguments.
5600 * sim-alu.h: Include sim-xcat.h.
5604 * Make-common.in (sim-bits.c, sim-core.c, sim-endian.c,
5605 sim-events.c, sim-inline.c, sim-io.c): Define rules for building
5608 * sim-events.c (sim_events_at_large_int): New function. Just
5609 schedules an event every large-int ticks.
5610 (sim_events_init): Call.
5611 (sim_events_tick, sim_events_process): Move async handing to
5612 sim_events_process. Move timer decrement so that it occures after
5613 events have been processed.
5615 * sim-basics.h (struct _engine): Remove declaration.
5617 * sim-events.h, sim-events.c: Rename type to sim_events. Prefix
5618 everything with same. Rename global struct to SIM_DESC.
5619 * sim-core.h, sim-core.c, sim-n-core.c: Ditto for sim_core.
5620 * sim-io.h, sim-io.c: Ditto.
5622 * sim-assert.h: New file. Optional assertion checking macros.
5623 * sim-io.c (sim_io_error): Make just this function tolerant to
5626 * sim-xcat.h: New file. Define concatenate macros.
5627 * sim-basics.h (XCONCAT*): Move to sim-xcat.h.
5628 * sim-n-core.h, sim-n-bits.h, sim-n-endian.h: Explicitly include
5634 * sim-bits.h (LSMASK): New macro. Create mask of LS bits.
5638 * sim-inline.h: Add definitions for sim-types.
5639 (ALL_BY_MODULE): New macro, encapsulate full inlining by the
5644 * sim-events.h: Remove defunct reference to callback struct.
5648 * configure: Re-generate.
5652 * Make-common.in (CSEARCH): Do not include the gdb directory in
5657 * Make-common.in (SIM_ENDIAN, SIM_HOSTENDIAN, SIM_INLINE,
5658 SIM_WARNING): Drop, requiring the simulator specific Makefile.in
5659 to explicitly incorporate these.
5661 * aclocal.m4 (--enable-sim-alignment); New option. Strongly
5662 specify the alignment restrictions of the target architecture -
5663 without this option all alignment restrictions are accomodated.
5664 (--enable-sim-assert): New option. Conditionally compile in
5665 assertion statements.
5666 (--enable-sim-float): New option. Strongly specify the target's
5667 floating point support.
5668 (--enable-sim-hardware): New option. Specify the hardware devices
5669 included in the simulation.
5670 (--enable-sim-packages): New option. Specify the hardware
5671 packages included in the simulation.
5672 (--enable-sim-regparm): New option. Specify that parameters be
5673 passed in registers instead of on the stack.
5674 (--enable-sim-reserved-bits): New option. Specify that reserved
5675 bits within an instruction are are correctly set.
5676 (--enable-sim-smp): New option. Specify the level of SMP support
5677 to be included in the simulator.
5678 (--enable-sim-stdcall): New option. Specify an alternative
5679 function call convention.
5680 (--enable-sim-xor-endian): New option. Configure xor-endian
5681 support used by some targets to implement bi-endian support.
5685 * aclocal.m4 (--enable-sim-hostendian): New option. Allow the
5686 host endianness to be overridden.
5687 (--enable-sim-endian): Allow the target platform's byte order
5689 (--enable-sim-inline): Control the inlining of common components.
5690 (--enable-sim-bswap): For compatibility, also define WITH_BSWAP.
5691 (--enable-sim-warnings): Enable additional GCC compiler checks.
5692 * Make-common.in (SIM_ENDIAN, SIM_HOSTENDIAN, SIM_INLINE,
5695 * sim-n-core.h, sim-n-bits.h, sim-n-endian.h: Rename from
5696 sim-*-n.h so that the names are uniq on dos machines
5697 * sim-core.c, sim-bits.c, sim-endian.c: Update.
5701 * run.c: #include "libiberty.h".
5702 (main): New locals sd,no_args,sim_argv.
5703 Run buildargv on -a option. Pass argv to sim_open, argv[0]
5704 is program name. Update call to sim_set_callbacks.
5705 Record result of sim_open, pass to other sim_foo routines.
5709 * callback.c (os_printf_filtered): Do not call exit(1) or print a
5714 * callback.c: Add os_flush_stdout and vprintf_filtered callbacks.
5715 Route stdout through buffered IO.
5717 * callback.c: Add os_flush_stderr, os_write_stderr,
5718 os_evprintf_filtered functions to route error output through
5721 * sim-io.h, sim-io.c (sim_io_flush_stderr, sim_io_flush_stdout):
5722 Correct return type - should be void.
5726 * sim-basics.h: Clean up. Many macro's moved to sim-inline.h.
5728 * sim-config.h: Ditto. For some options - eg WITH_DEVICES - do
5729 not provide a default value as undefined indicates disable code.
5733 * sim-core.h, sim-core-n.h, sim-core.c: Borrow code from ppc
5735 * sim-events.h, sim-events.c: Ditto.
5736 * sim-io.h, sim-io.c: Ditto.
5740 * sim-alu.h (ALU_SUB_CA, ALU*_SUB_CA): New alu operation.
5742 * sim-bits.h, sim-bits-n.h, sim-bits.c (LSMASKED*): New macro's
5743 extract the tail or least signifiant bits from an integer of the
5746 * sim-bits.h, sim-bits.c: Clean up conditionally compiled #if
5747 WITH_TARGET_BITSIZE so that the compilation will fail when an
5748 unsupported bitsize value is defined.
5750 (INSERTED*): Convert to functions.
5751 (EXTRACTED*): Ditto.
5753 (SIGN_EXTEND, SEXT): Change to more terse name.
5757 * sim-inline.h: Allow explicit control over which .c files will be
5758 included by their header.
5760 * sim-inline.h: Allow explicit control over which .c files use the
5761 alternative - REGPARM - parameter passing mechanism.
5763 * sim-inline.h, sim-inline.c: Don't attempt to include any of
5764 icache.c, idecode.c, semantics.c or support.c. Those names are
5765 not generally applicable.
5769 * sim-bits.c, sim-bits-n.h (new): Split sim-bits.c into two parts
5770 in a fashion similar to sim-endian-n.
5772 * sim-endian.h: (H_word, L_word, AL_*, VL_*): Extend to include
5773 both value and address macro's.
5777 * sim-alu.h (ALU16_BEGIN, ALU16_SET, ...): Fill in.
5779 * sim-endian.h (L_word, H_word): Replace MS2W_4, LS2W_4 with more
5780 generic L_word, H_word macro's.
5784 * sim-basics.h: Borrow code from ppc directory.
5785 * sim-bits.c: Ditto.
5786 * sim-bits.h: Ditto.
5787 * sim-config.h: Ditto.
5788 * sim-endian-n.h: Ditto.
5789 * sim-endian.c: Ditto.
5790 * sim-endian.h: Ditto.
5791 * sim-inline.c: Ditto.
5792 * sim-inline.h: Ditto.
5793 * sim-types.h: Ditto.
5797 * sim-alu.h (ALU_SET16, ALU_SET32, ALU_SET64, etc): Make available
5798 all the ALU size alternatives and then auto-configure a default.
5800 * sim-alu.h: Copy ppc/idecode_expression.h.
5804 * bits.h, bits.c (SIGN_EXTEND32, SIGN_EXTEND64): New functions,
5805 sign extend a bit within a value.
5807 * sim-endian.h, sim-endian-n.h (offset_N): New functions - return
5808 a pointer into the middle of a host word.
5809 * sim-endian.h (MS2W_4, LS2W_4): Use this function.
5813 * callback.c: If HAVE_CONFIG_H is defined, include config.h from
5814 autoconf. If HAVE_UNISTD_H is defined, include unistd.h to get
5815 appropriate definitions of read, write, etc. Add prototype for
5820 * Makefile.in (libcommon.a): Delete.
5821 (callback.o,targ-map.o): Delete, moved to Make-common.in.
5822 (gentmap,targ-vals.h,targ-map.c): Likewise.
5823 (run-autoconf): Delete.
5824 * aclocal.m4 (SIM_AC_OUTPUT): Redo creation of Makefile.
5825 (common makefile fragment): Moved back into ...
5826 * Make-common.in: Resurrect.
5827 * configure.in (AC_LINK_FILES): Delete, unnecessary now.
5828 * configure: Regenerated.
5832 * aclocal.m4 (SIM_AC_COMMON): Move COMMON_MAKEFILE_FRAG from here.
5833 (SIM_AC_OUTPUT): To here.
5837 * aclocal.m4 (COMMON_MAKEFILE_FRAG): Quote a couple of $'s in
5838 comments and single quotes. Fixes a problem found on hpux.
5842 * aclocal.m4: Remove Make-common.in from dependencies.
5843 * (distclean): Remove targ-vals.def.
5845 * aclocal.m4 (SIM_AC_COMMON): Move contents of Make-common.in
5846 into here. Makes insertion into makefiles easier. Also, change
5847 the way that callback.o, gentmap, targ-vals.h, targ-map.c,
5848 targ-map.o, and run are built. They are now built in the
5849 individual simulator directories, taking sources from ../common as
5850 necessary. This replaces the merging of libcommon.a into
5851 linsim.a, which was problematic for the WinGDB build process.
5852 * run.c: Include config.h from . instead of ../common.
5853 * Make-common.in: Remove. It's no longer necessary.
5857 * Make-common.in (ALL_CLAGS): Put CFLAGS at the end.
5858 (.c.o): Put $(ALL_CFLAGS) before the file being compiled.
5862 * run.c (main): Set target_byte_order before call to sim_open.
5866 * callback.c: #include <stdlib.h>
5867 (os_error): New function.
5868 (default_callback): Add os_error.
5872 * Make-common.in (Makefile): Set CONFIG_HEADERS="".
5873 * aclocal.m4: Mark the fact that --enable-sim-bswap isn't host
5875 (SIM_AC_OUTPUT): Don't build Makefile if CONFIG_FILES="".
5879 * run.c: #include ../common/config.h, tconfig.h.
5880 (myname): New static global.
5881 (main): Recognize new options -a, -c. Also recognize -h if h8/300.
5882 Only process -c ifdef SIM_HAVE_SIMCACHE.
5883 Only process -p/-s ifdef SIM_HAVE_PROFILE.
5884 Parse program name from argv[0] and use in error messages.
5885 Pass sim_args to sim_open. Pass prog_args to sim_create_inferior.
5886 Add support for incomplete h8/300 termination indicators.
5887 (usage): Make more verbose.
5888 * aclocal.m4,config.in,tconfig.in,configure.in,configure: New files.
5889 * Makefile.in,Make-common.in,callback.c: New files.
5890 * nltvals.def,gentmap.c,gentvals.sh: New files.
5894 * run.c: Include stdarg.h if __STDC__.
5898 * run.c (main): Don't print out anything if the signal
5899 number is zero (ie no signal).
5903 * run.c (main): Print out if the program raised a signal.
5907 * run.c (exec_bfd): Rename from sim_bfd, to use the gdb name.
5912 * run.c (main): Explicitly cast malloc() parameter.
5916 * run.c (sim_bfd): New global to hold the bfd pointer for the
5918 (main): Initialize sim_bfd.
5922 * run.c (main): Use new bfd_big_endian macro.
5926 * run.c (main): Removed SH specific comments, so source is
5927 generic. Also updated to only load relevant sections. Moved
5928 sim_open() to after callback attach (to match GDB).
5930 * run.1: Removed SH specific comments.
5934 * run.c (main): Always return sigrc at end.
5938 * run.c (main): Print error diagnostic and exit if bfd_openr() or
5939 bfd_check_format() fails.
5943 * run.c, run.1: From sh directory.