3 * sim-base.h (STATE_MODEL): Make conditional on SIM_HAVE_MODEL.
5 * sim-profile.c (profile_print_insn): Check 0 .. MAX_INSN for any
6 insn count. Make count conditional on there being a valid
8 (profile_pc_init): Make default PC profile frequency an arbitrary
13 * sim-profile.h (WITH_PROFILE_MODEL_P): Only enable modeling when
16 * sim-model.h (struct MACH): Depreciate, to be replaced by bfd
21 * configure: Regenerated to track ../common/aclocal.m4 changes.
25 * aclocal.m4 (sim_alignment): Simplify logic for selecting the
30 * configure: Regenerated to track ../common/aclocal.m4 changes.
34 * sim-config.c (sim_config): Check for default alignment.
36 * sim-options.c (standard_option_handler): Add alignment option.
38 * aclocal.m4 (sim_alignment): Allow configuration of hardwired and
39 default alignment requirements on memory accesses.
43 * sim-load.c (sim_load_file): Return failure if the executable
44 had no loadable sections.
48 * sim-events.c (ETRACE): Use trace_printf not sim_io_printf for
51 * sim-core.c (sim_core_signal): When bad access halt simulator
52 SIGSEGV / SIGBUS instead of aborting.
55 * sim-watch.c (sim_watchpoint_install): Handler for watchpoint
58 * sim-bits.h (MOVED): Define
62 * sim-alu.h (ALU32_HAD_OVERFLOW): Pacify GCC, Use MSBIT instead of
65 * sim-bits.h (LSBIT, MSBIT): Check for overflow of shift value.
67 * sim-bits.c: Add 8 bit versions of bit macros.
73 * sim-bits.c (LSSEXT, MSSEXT): Replace SEXT.
74 (LSINSERTED, MSINSERTED): Ditto for INSERTED.
76 * sim-n-bits.h (MSSEXTn, LSSEXTn): Replace SEXTn.
77 (LSINSERTDn, MSINSERTEDN): Ditto for INSERTEDn.
79 * sim-bits.h (SEXT*): Define as MSEXT/LSEXT.
80 (INSERTED*): Ditto for LSINSERTED/MSINSERTED.
84 * aclocal.m4 (SIM_AC_COMMON): Add optional config.h file argument.
85 configure.in: Output to cconfig.h instead of config.h.
87 * configure: Regenerated to track ../common/aclocal.m4 changes.
91 * sim-utils.c (sim_analyze_program): Set STATE_ARCHITECTURE from
96 * callback.c (os_write): divert stdout and stderr to their
101 * sim-profile.c (profile_print_speed): Call
102 sim_events_elapsed_time instead of PROFILE_EXEC_TIME for moment.
104 * sim-events.c (sim_events_elapsed_time): New function return nr
105 host MS consumed by the simulator.
106 (sim_watch_valid): Use.
108 * sim-module.c (modules): Install sim_events very very early.
110 * sim-profile.c (profile_print): Call profile_print_pc.
112 (profile_pc_init): New function, set up processor for PC
114 (profile_print_pc): New function, print a PC profile.
115 (profile_pc_event): New function, sample PC.
117 * sim-profile.h (PROFILE_PC_COUNT, PROFILE_PC_START,
118 PROFILE_PC_END, PROFILE_PC_SHIFT, PROFILE_PC_SAMPLE_SIZE): Add to
121 * sim-options.c (sim_print_help): Pacify GCC.
123 * sim-n-core.h (sim_core_read_aligned_N,
124 sim_core_write_aligned_N): Add un-conditional profile call.
125 (sim_core_read_unaligned_N, sim_core_write_unaligned_N): Add
126 profile call when aligned read/write isn't used.
128 * sim-base.h: Include sim-profile, sim-model after sim-core &
129 sim-events allow sim-core to define useful values.
131 * sim-profile.c (OPTION_PROFILE_CORE): Define.
132 (profile_option_handler, profile_options): Add support for
133 --profile-core option.
134 (print_bar): Include when core profiling.
135 (profile_print_core): New function, print core profile.
137 * sim-config.c (print_sim_config): Print profile status.
139 * sim-profile.h (PROFILE_NEXT_IDX, PROFILE_core,
140 WITH_PROFILE_PC_P): Define.
141 (PROFILE_CORE_COUNT): Count each core-map/size separatly.
142 (PROFILE_COUNT_CORE): Define.
146 * sim-watch.c (handle_watchpoint): Pass a char** index into the
147 interrupt_names array as the data.
148 (sim-watch.h): Document.
152 * sim-options.c (sim_print_help): When the doc string is to long
155 * sim-watch.c (sim_watchpoint_install): Use option.doc_name so
156 that only the first few the watch options are listed. Generate
157 meanginful usage messages.
159 * sim-options.h (struct OPTION): Clarify use of doc_name field
163 * sim-options.c (OPTION_ARCHITECTURE_INFO): New option.
164 (standard_option_handler): Handle --architecture-info.
168 * sim-core.h (sim_cpu_core): [WITH_XOR_ENDIAN + 1], to avoid
169 illegal zero-sized array.
170 * sim-core.c (sim_core_xor_read_buffer): same.
174 * nltvals.def: Regenerate.
178 * sim-fpu.c (DP_FRACHIGH2): Define LL using SIGNED64.
182 * sim-bits.c (MASKED): Delete.
184 (LSEXTRACTED, MSEXTRACTED): New functions.
186 * sim-n-bits.h (MASKEDn): Delete, define as MSMASKED or LSMASKED.
187 (MSMASKEDn, LSMASKEDn): Add last argument.
190 * sim-bits.h (EXTEND8, EXTEND16): Define.
191 (EXTRACTED64): Define as 64 bit extract, not 32 bit.
193 * sim-run.c (sim_engine_run): Use CPU_CIA macro.
195 * sim-engine.h (SIM_ENGINE_HALT_HOOK): Use CPU_CIA to get at
196 current instruction address.
198 * sim-inline.h (*_ENGINE): Define.
202 * sim-core.c (sim_core_attach): Fix checks of modulo/mask.
204 * sim-watch.c (delete_watchpoint): Delete by ident and type.
205 (watch_option_handler): Call delete_watchpoint with ident or type.
206 (sim_watchpoint_install): Create interrupt specific watchpoint
208 (do_watchpoint_create): New function, create a watch point using
209 type/int-nr info encoded in the option nr.
210 (do_watchpoint_info): New function. List active watchpoints.
212 * sim-watch.h: Change data structure to a list.
214 * sim-memopt.c (memory_option_handler): Require explicit "all"
215 before deleting all memory regions.
217 * sim-utils.c (sim_do_commandf): New function, printf version of
220 * sim-basics.h (asprintf, vasprintf): Hack, define for CYGWIN32.
222 * sim-alu.h (ALU64_ADD): Use explicit MSEXTRACTED64, do not assume
224 (SIGNED64, UNSIGNED64): Delete.
225 (ALU64_ADD): Don't rely on bit endianness.
226 (ALU64_BEGIN): Define.
228 * sim-n-bits.h (MSEXTRACTEDn, LSEXTRACTED): New functions.
229 (EXTRACTEDn): Delete, define as either LSEXTRACTED or MSEXTRACTED.
231 * sim-types.h (SIGNED64, UNSIGNED64): New macros, attach relevant
232 suffix - u64, LL - to 64 bit constants.
236 * sim-config.c (sim_config): Add assert for SIM_MAGIC_NUMBER.
238 * sim-utils.h (NZALLOC): Define - zalloc * N.
240 * sim-hrw.c (sim_read, sim_write): New file. Provide generic
241 implementation of read/write functions.
243 * Make-common.in (sim-hrw.o): New target.
245 * sim-base.h (STATE_MEMOPT_P): Delete, simulators _always_ add
248 * sim-memopt.c (memory_option_handler): Implement memory-size
249 command. Implement memory-alias command. Let memory-delete delete
251 (add_memopt): New function. Add a memory region.
252 (do_memopt_delete): New function. Delete a memory region.
254 * sim-utils.c (sim_elapsed_time_get): Never return zero.
256 * sim-core.c (sim_core_detach): New function.
257 (sim_core_map_detach): New function. Perform the actual detach.
258 (sim_core_init): Move initialization code from here.
259 (sim_core_install): To here.
260 (sim_core_uninstall): And here.
262 * sim-module.c: Add memopt module.
264 * sim-base.h (STATE_MEMOPT, STATE_MEMOPT_P): Add memopt to
267 * Make-common.in (sim_main_headers): Add sim-memopt.h
268 (sim-memopt.o): New target.
270 * sim-core.c (sim_core_install): Add core_options to the option
273 * sim-watch.c (watch_options): Make --delete-watch a synonym for
276 * sim-config.h (WITH_MODULO_MEMORY): Define as 0. Update
279 * sim-core.h (struct _sim_core_mapping): Change nr_bytes to type
280 address_word, add mask member.
282 * sim-core.h, sim-core.c (sim_core_attach): Make nr_bytes of type
283 address_word, allow for 64bit targets in 32bit host. Add modulo
285 (sim_core_map_attach): Ditto.
286 (new_sim_core_mapping): Ditto.
287 (sim_core_translate): Mask address when modulo memory.
291 * sim-hload.c (sim_load): Add assert for SIM_MAGIC_NUMBER.
293 * gdbinit.in: New file.
294 * aclocal.m4 (SIM_AC_OUTPUT): Build .gdbinit.
295 * Make-common.in (distclean): Delete .gdbinit.
296 (.gdbinit): Add rule for.
297 * configure: Regenerated to track ../common/aclocal.m4 changes.
299 * Make-common.in (cgen-run.o): Add rule for.
303 * sim-resume.c (sim_resume): Suspend/resume the simulator.
305 * sim-events.c (sim_watch_valid): Compute total elapsed time from
306 both resumed and previous elapsed time.
307 (sim_events_init): Set initial_wallclock and current_wallclock to
309 (sim_events_install): Install sim_events_suspend and
311 (sim_events_watch_clock): Allow for suspended simulator when
312 computing the time of the clock event.
314 * sim-events.h (struct _sim_event): Add resume_wallclock, rename
315 initial_wallclock to elapsed_wallclock, set both to zero.
316 (sim_events_init, sim_events_uninstall): Delete prototypes.
318 * sim-module.h (MODULE_SUSPEND_FN, MODULE_RESUME_FN): Define types.
320 * sim-module.c(sim_module_resume, sim_module_suspend): New
325 * sim-core.c (sim_core_map_attach): Clarify memory overlap error
330 * Makefile.in (TAGS): Add support for "/* TAGS: foo */" marker.
331 * Make-common.in (TAGS): Likewise.
332 * sim-n-bits.h: Add TAGS comments for all functions.
333 * sim-n-core.h: Likewise.
334 * sim-n-endian.h: Likewise.
338 * sim-utils.c (sim_state_alloc): Set CPU backlinks, callback and
341 * sim-base.h (sim_state_alloc): Add callback and kind arguments.
343 * sim-base.h (INVALID_INSTRUCTION_ADDRESS): Add default
348 * sim-fpu.c (DP_GARDMSB, ...): Make unsigned.
349 (DP_FRACHIGH, DP_FRACHIGH2, ..): Use MSMASK to avoid LL.
353 * sim-core.c (sim_core_map_attach): Cast attach enum to int.
354 (sim_core_xor_read_buffer, sim_core_xor_write_buffer): Make
355 nr_transfered and nr_this_transfer unsigned.
357 * sim-events.c (sim_events_tickn): N is signed, as limited to
360 * sim-n-endian.h (offset_N): Change size to unsigned.
362 * callback.c (os_poll_quit): Add prototypes for kbhit and getkey.
366 * sim-utils.c (sim_copy_argv): Delete, replaced by dupargv.
368 * sim-options.c (sim_parse_args): Use dupargv.
372 * sim-options.c (standard_option_handler): Use xstrdup, not strdup.
376 * sim-base.h (STATE_ARCHITECTURE, STATE_TARGET): Add to simulator
379 * sim-options.c (standard_options): Add --architecture=MACHINE and
380 --target=TARGET options.
381 (OPTION_ARCHITECTURE, OPTION_TARGET): Define.
382 (standard_option_handler): Handle architecture and target options.
385 * sim-utils.c (sim_analyze_program): Pass STATE_TARGET to
387 (sim_analyze_program): Set prog_bfd architecture from
388 STATE_ARCHITECTURE if known.
392 * configure: Regenerated to track ../common/aclocal.m4 changes.
397 * aclocal.m4 (enable-sim-warnings): Remove comment stating
398 that option does not apply to certain files.
402 * sim-bits.h (LSBIT8, LSBIT16, LSBIT32, LSBIT64, LSBIT, MSBIT8,
403 MSBIT16, MSBIT32, MSBIT64, MSBIT): New macros - single bit as
406 * sim-endian.h (A1_8, A2_8, A4_8, A1_4, A2_4, A1_2): New macro,
407 access address of sub word quantity of a hosts 16, 32, 64 bit word
409 (V1_2, V1_4, V2_4, V1_8, V2_8, V4_8): Ditto for values.
410 (U8_1, U8_2, U8_4, U4_1, U4_2, U2_1): Ditto for set of values.
411 (V2_H1, V2_L1, V4_H2, V4_L2, V8_L4, V8_H4): Given N byte argument,
412 return N*2 byte value with argument in Hi/Lo word. Renamed from
413 V1_H2, V1_L2, V2_H4, V2_L4, V4_H8, V4_L8.
415 * sim-alu.h (ALU32_HAD_OVERFLOW): Use 64 bit mask not 32bit.
416 (ALU16_HAD_CARRY, ALU32_HAD_CARRY, ALU16_HAD_OVERFLOW): Use MSBIT
417 so that bit offset is explicit.
421 * sim-utils.c (sim_analyze_program): Add prog_name argument.
422 Update STATE_PROG_BFD when needed with a dup'd copy of the
425 * sim-config.c (sim_config): Delete ABFD argument, use
426 STATE_PROG_BFD directly.
430 * run.c (main): Pass the open ABFD to sim_create_inferior.
432 * nrun.c (main): Determine prog_bfd. Pass to sim_create_inferior
436 * sim-hload.c (sim_load): New file. Implement generic sim_load for
437 hardware only simulator targets.
439 * Make-common.in (sim-hload.o): Add rule.
443 * sim-utils.c (sim_copy_argv): Rewrite to match malloc strategy
444 used by copyargv and freeargv.
446 * sim-options.c (sim_parse_args): Save a copy of PROG-ARGS in
447 STATE_PROG_ARGV, not just a pointer.
451 * configure: Regenerated to track ../common/aclocal.m4 changes.
456 * aclocal.m4 (sim-endian): Add second argument to
457 SIM_AC_OPTION_ENDIAN. First is hardwired endian, second is
458 default endian when not hardwired.
460 * sim-config.h (WITH_DEFAULT_TARGET_BYTE_ORDER): New macro, if all
461 else failes value for target byte order.
463 * sim-config.c (sim_config): Add abfd arguments. Set
464 STATE_PROG_BFD accordingly. Determine prefered_target_byte_order
466 (sim_config): Return SIM_RC, don't abort.
469 * run.c (main): Update call to sim_open - add ABFD argument.
470 * nrun.c (main): Add NULL ABFD argument.
474 * callback.c (os_poll_quit): Make static.
475 Call sim_cb_eprintf, not p->eprintf.
476 (sim_cb_printf, sim_cb_eprintf): New functions.
477 * sim-utils.h (sim_cb_printf, sim_cb_eprintf): Declare.
479 * sim-basics.h (zalloc,zfree,sim_add_commas,SIM_ELAPSED_TIME,
480 sim_elapsed_time_get,sim_elapsed_time_since): Move decls to
481 sim-utils.h. #include sim-utils.h.
482 * sim-utils.h: Above decls moved here.
483 (sim_analyze_program,sim_load_file): Use `struct _bfd', not `bfd'.
485 * sim-watch.c (action_watchpoint): Fix thinkos.
489 * sim-types.h: Fix defs of 64 bit data types for MSVC.
493 * sim-n-core.h (sim_core_write_unaligned_N): Add missing break
494 to FORCED_ALIGNMENT case.
498 * callback.c (target_to_host_open): Handle hosts with O_BINARY.
502 * Make-common.in (libsim.a): Fix typo.
506 * nrun.c (main): Verify the structure returned before using it.
510 * sim-config.h (WITH_ENGINE): Enable the sim-engine module by
513 * sim-engine.c (sim_engine_install): New function. Install the
514 engine init functions.
515 (sim_engine_init): [Re]initialize the simulator engine.
517 * sim-module.c: Add sim_engine to list of modules that always
522 * sim-watch.c (schedule_watchpoint): Use sim_unschedule_watchpoint
523 to remove the old watchpoint, not delete_watchpoint.
524 (watch_option_handler): Action the correct watchpoint, not just
529 * sim-n-core.h (sim_core_write_aligned_N): For 8byte reads, output
530 both low and high word.
531 (sim_core_write_aligned_N): Ditto.
533 * sim-trace.c (set_trace_options): Delete code explicitly setting
536 * sim-options.c (sim_print_help): Call the list commands if not a
537 standalone simulator.
538 (sim_print_help): Advise that some options may not be applicable.
540 * sim-trace.c (set_trace_options): Assume core present.
542 * sim-events.c (sim_events_schedule_after_signal): Overflow signal
543 buffer when full not almost full.
547 * sim-events.c (sim_events_process): Don't blat the event queue
548 when processing watchpoints.
550 * sim-watch.h: Make arg unsigned long - stop sign extension.
552 * sim-events.c (sim_watch_valid): rewrite so debugable.
554 * sim-config.h (WITH_XOR_ENDIAN): Default to zero.
556 * sim-watch.c (schedule_watchpoint): Add is_within option so that
557 inequality test is possible.
558 (handle_watchpoint): Re-pass is_within arg.
559 (watch_option_handler): When `!' prefix to pc-watchpoint arg pass
560 0 to schedule_watchpoint's is_within arg.
561 (sim_watchpoint_init): Re-pass is_within arg.
563 * sim-options.c (sim_print_help): Add is_command argument. Don't
564 include -- prefix when called from the command line interpreter.
566 * sim-watch.c (schedule_watchpoint): Pass true is_within argument.
568 * sim-events.c (sim_events_watch_sim): Add is_within argument,
569 zero indicates that the test should be reversed.
570 (sim_events_watch_core): Ditto.
571 (WATCH_CORE): Compare range against is_within.
576 * sim-events.c (WATCH_CORE): Pass NULL cpu argument to
577 sim_core_read_buffer. Check nr-bytes transfered.
579 * sim-core.h (sim_core_common): Define a new struct that contains
580 the common data. to sd and cpu structures.
581 * sim-core.c (sim_core_attach): Update.
582 (sim_core_init): Update. Remember to copy initialized data to each
584 (sim_core_find_mapping): Ditto.
586 * sim-core.c (sim_core_read_buffer): Add cpu argument.
587 (sim_core_write_buffer): Ditto.
589 * sim-n-core.h (sim_core_read_unaligned_N): When mis-aligned
590 transfer use xor version of read buffer.
591 (sim_core_write_unaligned_N): Ditto for write.
593 * sim-core.c (sim_core_xor_read_buffer): New function implement
594 xor-endian data read breaking transfer up into xor-endian sized
596 (sim_core_xor_write_buffer): Ditto for write.
597 (reverse_n): Reverse order of arbitrary number of bytes in buffer
598 - needed for xor-endian transfers.
602 * sim-inline.h: Review description.
604 * sim-core.h, sim-core.c: Reduce number of functions being inlined
605 to just those involved in data transfers and configuration.
607 * sim-xcat.h (XSTRING): New macro, map macro definition onto
609 * sim-n-core.h (sim_core_read_aligned_N): Use.
610 (sim_core_read_unaligned_N): Ditto.
611 (sim_core_read_unaligned_N): Ditto..
612 (sim_core_write_unaligned_N): Ditto.
614 * sim-core.h: Add xor endian bitmap to main structure. *
616 sim-n-core.h (sim_core_write_aligned_N): Add suport for xor
618 (sim_core_read_aligned_N): Ditto.
620 * sim-core.c (sim_core_set_xor_endian): New function.
621 (sim_core_attach): Don't overwrite the per-cpu xor map when
622 cloning the global core.
626 * sim-engine.h: Update below so that it is using an enumerated
631 * sim-engine.c (sim_engine_restart):
632 * sim-resume.c (sim_resume): Change longjmp param/setjmp
633 return value used for simulator restart from 0 to 2.
637 * cgen-scache.c (scache_option_handler): Add is_command arg.
639 * sim-model.c (model_option_handler): Add is_command argument.
641 * sim-profile.c (profile_option_handler): Add is_command arg.
643 * sim-events.c (sim_watch_valid): Use ub64, lb64 when 64bit value
646 * sim-module.c (sim_module_add_init_fn): Call init fn in the same
647 order that they are registered.
649 * sim-options.h (OPTION_HANDLER): Add argument to differentiate
650 between option and command line processing.
652 * sim-options.c: Include stdlib.h, ctype.h.
654 * Make-common.in (sim-watch.o): Add rule.
655 (sim_main_headers): Assume sim-assert.h included.
656 (sim-*.o): Simplify make rule.
658 * sim-module.c: Add sim_watch_install to module list.
662 * sim-base.h (STATE_LOADED_P): New predicate. Set once everything
665 * sim-trace.c (trace_install): Check magic. Include sim-assert.h.
666 * sim-events.c (sim_events_install): Ditto.
667 * sim-core.c (sim_core_install): Ditto.
668 * sim-model.c (model_install): Ditto.
669 * sim-options.c (standard_install): Ditto.
670 * sim-profile.c (profile_install): Ditto.
671 * sim-reason.c (sim_stop_reason): Ditto.
672 * sim-run.c (sim_engine_run): Ditto.
673 * sim-utils.c (sim_analyze_program): Ditto.
675 * sim-module.c (modules): Make profile_install and trace_install
678 * sim-base.h (STATE_MEM_BASE): Define for flat memory systems.
680 * sim-options.c (standard_option_handler): Set the byte order.
682 * sim-events.c (sim_events_process): Allow multi tick processing.
683 (sim_events_tickn): New function - multi cycle tick.
685 * sim-events.h (sim_events_tickn, sim_events_timewarp): Add
686 prototypes. Under development.
687 (sim_events): Replace processing with nr_ticks_to_process.
691 * nrun.c (main): Pass callbacks to sim_open instead of using
694 * run.c (main): Ditto.
698 * sim-events.c (sim_events_zalloc): Signal save memory allocator -
699 stop tk interrupting malloc calls.
700 (sim_events_zalloc): Converse.
702 * Make-common.in (sim_main_headers): Add sim-events.h.
704 * sim-events.c (sim_events_schedule_after_signal): Change return
705 type to void - signal events are strictly internal.
706 (sim_events_init): Allocate a finite buffer for signal events.
707 (sim_events_schedule_after_signal): Enter signal events into the
710 * sim-engine.c (sim_engine_halt): Check SIM_DESC magic.
711 (sim_engine_restart): Ditto.
712 (sim_engine_abort): Ditto.
713 * sim-stop.c (sim_stop): Ditto.
714 (control_c_simulation): Ditto.
715 * sim-resume.c (sim_resume): Ditto.
716 (has_stepped): Ditto.
717 * sim-abort.c (sim_engine_abort): Ditto.
719 * sim-basics.h (transfer_type): New type.
721 * sim-core.c (sim_core_signal): New function. Print core signal
723 (sim_core_find_mapping): Add transfer argument.
725 * sim-n-core.h (sim_core_{write,write}_unaligned_N): Call
726 SIM_CORE_SIGNAL if a recoverable abort.
727 * sim-core.c (sim_core_find_mapping): Ditto.
731 * sim-core.c (sim_core_find_mapping): Replace calls to
732 sim_io_error to more resiliant sim_engine_abort.
734 * sim-n-core.h (sim_core_read_unaligned_N): Ditto.
735 (sim_core_write_unaligned_N): Ditto.
739 * sim-module.c: Add sim_events_install to list.
741 * sim-events.c (sim_events_install, sim_events_uninstall): Clonse
743 (sim_events_init): Now returns SIG_RC.
745 * sim-run.c: New file. Generic sim_engine_run.
746 * sim-reason.c: New file. Generic sim_stop_reason.
747 * sim-stop.c: New file. Generic sim_stop.
748 * sim-resume.c: New file. Generic sim_resume.
750 * Make-common.in (sim-engine.o): Add rule.
751 (sim-run.o, sim-reason.o, sim-stop.o, sim-resume.o): Ditto.
753 * sim-engine.h, sim-engine.c: New file. Provide generic
754 implementation of sim_engine_halt, sim_engine_error. et.al.
756 * sim-base.h (sim_state_base): Add member halt.
757 (sim-engine.h): Include.
759 * sim-events.h (sim_event_handler): Always pass SIM_DESC to event
761 * sim-events.c (sim_events_poll): Update event handler.
765 * sim-events.h, sim-events.c (sim_events_watch_clock): New
767 (sim_events_watch_sim): New function.
768 (sim_events_watch_core): New function.
769 (sim_watch_valid): New function.
770 (sim_events_preprocess): New function.
771 (sim_events_process): Process the watchpoints as well as the timer
773 (sim_events_tick): Check WORK_PENDING instead of the hold queue.
774 (sim_events_deschedule): Check all the queues when removing an
776 (sim_events_init): Ditto for cleaning.
780 * sim-fpu.c (is_ufpu_number): Comment out - currently unused.
784 * callback.c (os_open): Type of arg flags is int.
788 * sim-fpu.c (sim_fpu_is_{eq,ne,lt,le,gt,ge}): Compare Infinities
789 just like normal numbers as per IEEE rules.
793 * callback.c (os_close): Mark the descriptor as being
794 available if the close succeeded.
795 (os_open): Pass 0644 as the mode of the file being created.
799 * sim-fpu.c (pack_fpu, unpack_fpu): New functions - decode a
802 * sim-inline.c (SIM_INLINE_C): Rename from _SIM_INLINE_C_.
803 * sim-lnline.h: Update.
805 * sim-fpu.h, sim-fpu.c (sim_fpu_[iu]{32,64}to): New int2fp
806 conversion functions.
807 (sim_fpu_to{32,64}[iu]): New fp2int functions.
809 * sim-fpu.h, sim-fpu.c (sim_fpu_is_{lt,le,eq,ne,ge,gt}): New fp
810 compare functions. Replacing.
811 (sim_fpu_cmp): This. Delete.
815 * sim-core.c (sim_core_find_mapping): Call engine_error not
816 sim_io_error when possible.
820 * sim-endian.h (V1_H2): Add macro's to insert a word into a
821 high/low double word.
823 * sim-trace.h: Remove definition of attribute - defined in
828 * sim-options.h (struct OPTION): Add doc_opt as the documenting
829 name of the option - or family of options.
831 * sim-options.c (sim_args_command): Match command `a-b c' with
832 option `--a-b-c' from option table.
836 * sim-options.c (sim_print_help): For optional arguments, wrap
839 * sim-trace.c (set_trace_options): New function, handle optional
840 argument and multiple assignment.
841 (trace_option_handler): Update.
843 * sim-trace.c (trace_option_handler): Trace branch and not fpu
844 when branch tracing selected.
848 * sim-trace.c (trace_one_insn): Make a va-args function.
850 * sim-trace.c (trace_vprintf): New function, va-arg version of
855 * sim-trace.c (trace_uninstall): Don't close a file twice.
856 * sim-profile.c (profile_uninstall): Likewise.
860 * sim-trace.c (toplevel): Include bfd.h.
861 (trace_options): Note that --trace-linenum also turns on
862 --trace-insn. Add --trace-{branch,semantics}.
863 (trace_option_handler): If --trace-linenum, also turn on
864 --trace-insn. Add --trace-branch support. If --trace-semantics,
865 turn on ALU, FPU, branch, and memory tracing.
866 (trace_one_insn): New function to trace an instruction. Support
868 (OPTION_TRACE_*): Use an enum, rather than lots of defines.
870 * sim-trace.h (TRACE_{SEMANTICS,BRANCH}_IDX): Add new macros.
871 (MAX_TRACE_VALUES): Use 32, not 12 by default.
872 (TRACE_branch): Add new mask.
873 (TRACE_*_P): Define all possible trace_p macros.
874 (trace_one_insn): Declare function.
878 * sim-trace.h (__attribute__): Define as nothing if not GNU C or
879 GNU C doesn't support __attributes__.
880 ({trace,debug}_printf): Add attribute's so -Wformat can check the
885 * sim-config.h (FORCED_ALIGNMENT): New alignment option -
886 addresses are masked forcing them to be correctly aligned.
887 (WITH_ALIGNMENT): Make NONSTRICT_ALIGNMENT the default.
888 * sim-config.c (config_alignment_to_a): Update.
890 * sim-core.h (sim_cpu_core): New data type contains cpu specific
892 * sim-base.h (CPU_CORE): Add cpu specific core data to cpu base
894 * sim-core.c (sim_core_attach): Add CPU argument. Ready for
895 processor specific core maps.
896 (sim_core_map_attach): Copy the core map data to each of the
897 processor specific core data structures.
898 * sim-core.c (sim_core_find_mapping): Update.
900 * sim-n-core.h (sim_core_read_N, sim_core_write_N): Rename.
901 (sim_core_write_aligned_N, sim_core_write_aligned_N): New names.
902 (sim_core_write_unaligned_N, sim_core_write_unaligned_N): New
903 alternatives that handle unaligned addresses.
904 (sim_core_{read,write}_{,un}aligned_N): Drop SIM_DESC arg, replace
906 * cgen-utils.c (sim_disassemble_insn): Update.
910 * sim-trace.h (TRACE_FPU_IDX): Add Floating-point specific
913 * sim-fpu.h, sim-fpu.c: New files - prototype for generic target
916 * sim-inline.h, sim-inline.c: Add support for SIM_FPU.
920 * sim-core.c (sim_core_map_to_str): New function ascii equivalent
923 * sim-n-core.h (sim_core_read_N, sim_core_write_N): Use in trace
928 * cgen-trace.c: Prepend additional trace_printf argument.
930 * cgen-utils.c (sim_disassemble_insn): Add additional core
935 * nrun.c (main): Catch/report errorenous simulator states.
937 * sim-module.c: #include "libiberty.h" so that xmalloc is defined.
938 * sim-trace.c: #include string.h/strings.h so that memset is
940 * sim-utils.c: Ditto.
941 * sim-profile.c: Ditto. And stdlib.h.
942 (print_bar): Only define when used by instruction or memory profiler.
944 * sim-options.c (standard_option_handler): Make ul more local.
946 * sim-load.c (sim_load_file): Make the name constant.
947 (sim_load_file): Passify gcc.
949 * sim-utils.h: New file, pre-declare utilites in corresponding .c
951 * sim-utils.c, sim-load.c: Include sim-utils.h.
953 * sim-base.h (sim_cpu): Pre define here so available to all.
955 * sim-core.h (DECLARE_SIM_CORE_WRITE_N, DECLARE_SIM_CORE_READ_N):
956 Restore the sim_cpu and instruction_address arguments so that full
957 information is available to the abort function.
958 * sim-core.c (sim_core_find_mapping, sim_core_write_buffer): Ditto.
959 * sim-n-core.h (sim_core_write_N, sim_core_read_N): Update.
961 * sim-trace.h, sim-trace.c (trace_option_handler): Add interim
962 tracing support for sim-events and sim-core.
963 (trace_option_handler): Convert #if to if where possible so always
964 compiled/checked by C compiler.
965 * sim-n-core.h (sim_core_write_N, sim_core_read_N): Update.
967 * sim-base.h: Adjust comment documenting how to define the cpu
969 (sim_state_base): Add sim_core and sim_events to simulator base
972 * sim-trace.h, sim-trace.c (trace_printf): Add SIM_DESC argument.
973 * sim-core.c (sim_core_init, sim_core_attach,
974 sim_core_find_mapping): Update.
975 * sim-events.c (ETRACE, sim_events_init, sim_events_time,
976 update_time_from_event, insert_sim_event,
977 sim_events_schedule_after_signal, sim_events_deschedule,
978 sim_events_tick): Ditto.
980 * sim-basics.h (sim-module.h, sim-trace.h, sim-profile.h,
981 sim-model.h): Move #includes from here.
982 * sim-base.h: To here.
983 (sim-core.h, sim-events.h, sim-io.h): Include also
987 * callback.c (default_callback): Missing initialisers.
991 * sim-utils.c (sim_add_commas): New function.
992 * sim-basics.h (sim_add_commas): Add prototype.
993 * cgen-scache.c (scache_print_profile): Print commas in numbers.
994 * sim-profile.c (COMMAS): New macro.
995 (print_*): Use it to print commas in numbers.
997 * configure: Regenerated.
999 * cgen-sim.h (sim_signal_type): Add SIM_SIGINT.
1000 (cgen_state): New member run_fast_p.
1001 (cgen_init): Add prototype.
1002 (sim_disassemble_insn): New arg `cpu'.
1003 * cgen-trace.c (trace_insn): Update call to sim_disassemble_insn.
1004 * cgen-utils.c (cgen_init): New function.
1005 (sim_disassemble_insn): New arg `cpu'. Rewrite fetching of insn.
1006 * genmloop.sh: Call engine_halt if loop exits.
1008 * Makefile.in (sim-options_h): Define.
1009 (sim-{module,options,trace,profile,utils}.o): Clean up dependencies.
1010 (sim-model.o): Add new rule.
1011 (cgen-{scache,trace,utils}.o): Add new rules.
1012 * aclocal.m4 (SIM_AC_OPTION_{SCACHE,DEFAULT_MODEL}): Add.
1013 * cgen-scache.c (scache_print_profile): Change `sd' arg to `cpu'.
1014 Indent output by 2 spaces.
1015 * cgen-scache.h (scache_print_profile): Update.
1016 * cgen-trace.c (trace_insn_fini): Indent output by 2 spaces.
1017 Use trace_printf, not fprintf.
1018 (trace_extract): Use trace_printf, not cgen_trace_printf.
1019 * genmloop.sh (!FAST case): Increment `insn_count'.
1020 * sim-base.h (sim_state_base): Only include scache_size if WITH_SCACHE.
1021 (sim_cpu_base): Rename member `sd' to `state' to be consistent with
1022 access macro's name.
1023 * sim-core.c (sim_core_init): Use EXTERN_SIM_CORE to define it.
1024 Change return type to SIM_RC.
1025 (sim_core_{install,uninstall}): New functions.
1026 * sim-core.h (sim_core_{install,uninstall}): Declare.
1027 (sim_core_init): Use EXTERN_SIM_CORE to define it.
1028 Change return type to SIM_RC.
1029 * sim-model.h (models,machs,model_install): Declare.
1030 * sim-module.c (modules): Add scache_install, model_install.
1031 (sim_post_argv_init): Set cpu->state backlinks.
1032 * sim-options.c (standard_options): Delete --simcache-size,--max-insns.
1033 (standard_option_handler): Likewise.
1034 * sim-profile.c (PROFILE_{HISTOGRAM,LABEL}_WIDTH): Move to
1037 (profile_options): Delete --profile-simcache.
1038 (profile_option_handler): Likewise.
1039 (profile_print_insn): Change `sd' arg to `cpu'. Indent output 2
1041 (profile_print_{memory,model}): Likewise.
1042 (profile_print_simcache): Delete.
1043 (profile_print_speed): New function.
1044 (profile_print): Rewrite.
1045 * sim-profile.h (PROFILE_scache): Renamed from PROFILE_simcache.
1046 (WITH_PROFILE_SCACHE_P): Renamed from WITH_PROFILE_SIMCACHE_P.
1047 (PROFILE_DATA): Delete members simcache_{hits,misses}.
1048 (PROFILE_COUNT_SIMCACHE_{HIT,MISS}): Delete.
1049 (PROFILE_{CALLBACK,CPU_CALLBACK}): New types.
1050 (profile_print): Update prototype.
1054 * cgen-scache.[ch], cgen-sim.h: New files.
1055 * cgen-trace.[ch], cgen-types.h, cgen-utils.c, genmloop.sh: New files.
1056 * sim-model.c: New file.
1058 * Make-common.in (clean targets): Undo patch of Apr. 22.
1062 * sim-n-bits.h (signed): If we have a standard compiler, undef
1063 signed, so that signedN is defined correctly.
1067 * sim-module.h, sim-model.h, sim-profile.h: New files.
1068 * sim-module.c, sim-profile.c: New files.
1069 * Make-common.in (SIM_PROFILE): Define
1070 (CONFIG_CFLAGS): Add $(SIM_PROFILE).
1071 (sim_main_headers): Add sim-module.h, sim-model.h, sim-profile.h.
1072 (sim_module.o,sim-profile.o): Add rules for.
1073 * aclocal.m4 (--enable-sim-trace): Allow symbolic arguments.
1074 (--enable-sim-profile): Add.
1075 * configure: Regenerated.
1076 * sim-base.h (sim_state_base): New members init_list, uninstall_list,
1077 model. Move trace and profile support to sim-{trace,profile}.h.
1078 New members trace_data, profile_data.
1079 * sim-basics.h: #include sim-module.h, sim-model.h, sim-profile.h.
1080 * sim-config.h: Provide default definition of WITH_PROFILE.
1081 (WITH_TRACE): Change default to -1.
1082 (MAX_NR_PROCESSORS): Always define.
1083 * sim-options.c: Move trace and profile support to
1084 sim-{trace,profile}.h.
1085 (sim_pre_argv_init): Moved to sim-model.c.
1086 (standard_install): New function.
1087 * sim-options.h (sim_pre_argv_init): Move decl to sim-model.c.
1088 (standard_install): Declare.
1089 * sim-trace.c: Tracing option handling moved here from sim-options.c.
1090 (trace_install, trace_uninstall): New functions.
1091 (trace_printf): Update reference to TRACE_FILE.
1092 * sim-trace.h (TRACE_FOO_IDX): Moved here from sim-base.h.
1093 (TRACE_foo): Bit masks for symbolic arguments to --enable-sim-trace.
1094 (WITH_TRACE_FOO_P): Define.
1095 (trace_install): Declare.
1096 (TRACE_DATA): New struct.
1100 * run.c: Undo last exec_bfd patch.
1101 (main): Only pass -E ifdef SIM_HAVE_BIENDIAN.
1105 * run.c (exec_bfd): Add back in.
1106 (main): Set exec_bfd.
1110 * sim-load.c (sim_load_file): #include <stdio.h> for NULL.
1114 * sim-events.c (insert_sim_event): Call sim_io_error instead of
1115 less well defined engine_error.
1116 * sim-core.c: Ditto.
1120 * Make-common.in: Change clean targets to use :: so that other
1121 Makefiles can have their own clean targets.
1122 * sim-load.c (xprintf eprintf): Use ANSI_PROTOTYPES instead of
1123 __STDC__ to control use of stdarg vs. varargs syntax. Some
1124 systems can't use __STDC__, but require stdarg.
1128 * sim-options.c (standard_options): Add --endian.
1129 (standard_option_handler): Likewise.
1131 * nrun.c: #include <signal.h>.
1132 (main, cntrl_c): Wrap calls to sim_resume in a SIGINT
1133 handler that calls sim_stop ().
1137 * run.c (main, cntrl_c): Wrap calls to sim_resume in a SIGINT
1138 handler that calls sim_stop (). Simulators may still be
1139 establishing their own handler.
1141 * sim-events.c (sim_events_poll): Rename from
1142 sim_events_at_large_int. Poll IO.
1144 * sim-io.c (sim_io_poll_quit): New function - pass on a polling
1147 * callback.c (os_poll_quit): New function poll for quit signal
1149 (default_callback): Include magic number.
1153 * aclocal.m4: Check for headers time.h, sys/time.h, sys/resource.h.
1154 Check for functions getrusage, time.
1155 * sim-basics.h (SIM_ELAPSED_TIME): New typedef.
1156 (sim_elapsed_time_get, sim_elapsed_time_since): Add prototypes.
1157 * sim-utils.c: #include time.h, sys/time.h, sys/resource.h if able.
1158 (sim_elapsed_time_get, sim_elapsed_time_since): New functions.
1160 * sim-utils.c (sim_copy_argv, sim_analyze_program): New functions.
1162 * sim-options.c, sim-options.h: New files.
1163 * sim-config.h (WITH_DEBUG): Provide default value of zero.
1164 * Make-common.in (nrun.o): Add rules for.
1167 * run.c (main): Check return value of sim_open.
1169 * Make-common.in (sim-options.o, sim-load.o, sim-trace.o): Add rules.
1170 (sim_main_headers): Add sim-trace.h.
1171 * run.c (exec_bfd, target_byte_order): Delete.
1172 (main): Pass -E <endian> to sim_open. Delete code to load sections,
1173 call sim_load instead. Check return code of sim_create_inferior.
1174 * sim-base.h (CURRENT_STATE): Define.
1175 (sim_state_base): Make typedef. New members options, prog_argv,
1176 prog_bfd, text_{section,start,end}, start_addr, simcache_size,
1177 mem_size, memory [+ corresponding access macros].
1178 (sim_cpu_base): New typedef.
1179 * sim-trace.h: New file.
1180 * sim-trace.c: New file.
1181 * sim-basics.h: #include it.
1182 * sim-load.c: New file.
1186 * Make-common.in (INSTALL): Set to @INSTALL@.
1187 (INSTALL_XFORM, INSTALL_XFORM1): Remove.
1188 (install-common): Depend upon installdirs. Use
1189 $(program_transform_name) directly, rather than using
1191 (installdirs): New target.
1192 * Makefile.in (INSTALL): Set to @INSTALL@.
1193 (INSTALL_XFORM, INSTALL_XFORM1): Remove.
1194 (install-man): Depend upon installdirs. Use
1195 $(program_transform_name) directly, rather than using
1197 (installdirs): New target.
1201 * sim-assert.h (SIM_ASSERT, ASSERT): Allow these macros to
1206 * sim-basics.h: Only bring in config.h and tconfig.h if
1211 * sim-config.h (WITH_TARGET_WORD_MSB): New Macro. Define the bit
1212 numbering convention of the target.
1213 * sim-config.c (print_sim_config): Print WITH_TARGET_WORD_BITSIZE
1214 and WITH_TARGET_WORD_MSB.
1215 (sim_config): When possible, check for consistency with bitsize
1218 * sim-bits.h: Allow MSB to be other than zero.
1219 * sim-bits.c: Ditto.
1220 * sim-n-bits.h: Ditto.
1222 * sim-bits.h (MSMASK*): New macros - converce to LSMASK*.
1223 * sim-n-bits.h (MSMASKEDn): Ditto.
1227 * Makefile.in (INSTALL): Change install.sh to install-sh.
1231 * sim-base.h (sim_state_base): Move `magic' to end of struct.
1235 * run.c (main): Check that a program to run was specified.
1239 * aclocal.m4 (AC_TYPE_SIGNAL): Add check.
1241 * configure: Regenerated to track ../common/aclocal.m4 changes.
1246 * sim-endian.h: Move host {LITTLE,BIG}_ENDIAN support from here,
1247 * sim-config.h: To here.
1249 * Make-common.in (SIM_EXTRA_DEPS): New config var.
1250 (sim_main_headers): Define.
1251 (sim-*.o): Depend on $(SIM_EXTRA_DEPS).
1252 (BUILT_SRC_FROM_COMMON): Move here from ../d30v/Makefile.in.
1254 (sim-utils.o): Add rule for.
1255 * sim-utils.o: New file.
1256 * sim-basics.h: #include sim-base.h.
1257 (zalloc): Make argument unsigned long.
1258 * sim-base.h: New file.
1259 * sim-inline.h (SIM_IO support): Delete.
1260 * sim-io.h: Delete inline support.
1261 * sim-io.c: Likewise. sim-state.h renamed to sim-main.h.
1262 * sim-config.c: sim-state.h renamed to sim-main.h.
1263 * sim-core.c: Likewise.
1264 * sim-events.c: Likewise.
1266 * run.c (main): Pass SIM_OPEN_STANDALONE to sim_open.
1268 * aclocal.m4: Check for stdlib.h, string.h, strings.h, unistd.h.
1269 (sim-debug): Allow arguments. Define WITH_DEBUG in addition to
1271 * configure: Regenerated to track ../common/aclocal.m4 changes.
1275 * configure: Regenerated to track ../common/aclocal.m4 changes.
1279 * sim-config.h (WITH_ALIGNMENT, WITH_FLOATING_POINT,
1280 WITH_XOR_ENDIAN, WITH_SMP, WITH_RESERVED_BITS): Assume that these
1281 are defined by the configure.
1283 * aclocal.m4 (sim-stdio): Add option stdio from ../ppc configure.
1285 * aclocal.m4 (floating-point, xor-endian, alignment, smp,
1286 reserved-bits): Always define.
1288 * sim-config.h, sim-config.c (sim_config): New function - and new
1289 file - co-ordinate the setting/checking of the common simulator
1290 configuration options.
1292 * Make-common.in (sim-config.o): Add rule.
1296 * callback.c (os_{,e}vprintf_filtered): Change stdarg type to
1297 va_list from void *, since va_list might not be a pointer type.
1301 * sim-n-endian.h (offset_N): Correct assertion - word and sub word
1303 (offset_N): Correct computation of LE offset.
1305 * sim-io.c (sim_io_error): Include a new line when reporting
1308 * sim-assert.h (SIM_FILTER_PATH): Out by one when locating last
1313 * run.c: Include alloca-conf.h.
1315 * callback.c (os_evprintf_filtered): Fix typo.
1319 * run.c (string.h, strings.h, stdlib.h): Include.
1321 * sim-events.c (sim_events_tick): Recent cleanup failed to return
1322 0 when nothing pending.
1324 * run.c (sim_size, sim_trace): Plicate GCC - these two functions
1325 will soon be going away.
1326 (getopt): Plicate GCC.
1328 * sim-endian.c (sim-io.h): Plicate GCC.
1329 * sim-bits.c (sim-io.h): Ditto.
1330 * sim-n-bits.h (ROTn): Ditto.
1332 * sim-io.c (sim_io_error): Correct check for NULL.
1334 * sim-assert.h (SIM_FILTER_PATH): Separate out the code filtering
1336 * sim-events.c: Use SIM_FILTER_PATH to filter out the filename
1341 * aclocal.m4 (SIM_AC_OPTION_*: Move so that they are outside of
1342 SIM_AC_COMMON - SIM_AC_COMMON was gobling arguments.
1346 * sim-alu.h: Include sim-xcat.h.
1350 * Make-common.in (sim-bits.c, sim-core.c, sim-endian.c,
1351 sim-events.c, sim-inline.c, sim-io.c): Define rules for building
1354 * sim-events.c (sim_events_at_large_int): New function. Just
1355 schedules an event every large-int ticks.
1356 (sim_events_init): Call.
1357 (sim_events_tick, sim_events_process): Move async handing to
1358 sim_events_process. Move timer decrement so that it occures after
1359 events have been processed.
1361 * sim-basics.h (struct _engine): Remove declaration.
1363 * sim-events.h, sim-events.c: Rename type to sim_events. Prefix
1364 everything with same. Rename global struct to SIM_DESC.
1365 * sim-core.h, sim-core.c, sim-n-core.c: Ditto for sim_core.
1366 * sim-io.h, sim-io.c: Ditto.
1368 * sim-assert.h: New file. Optional assertion checking macros.
1369 * sim-io.c (sim_io_error): Make just this function tolerant to
1372 * sim-xcat.h: New file. Define concatenate macros.
1373 * sim-basics.h (XCONCAT*): Move to sim-xcat.h.
1374 * sim-n-core.h, sim-n-bits.h, sim-n-endian.h: Explicitly include
1380 * sim-bits.h (LSMASK): New macro. Create mask of LS bits.
1384 * sim-inline.h: Add definitions for sim-types.
1385 (ALL_BY_MODULE): New macro, encapsulate full inlining by the
1390 * sim-events.h: Remove defunct reference to callback struct.
1394 * configure: Re-generate.
1398 * Make-common.in (CSEARCH): Do not include the gdb directory in
1403 * Make-common.in (SIM_ENDIAN, SIM_HOSTENDIAN, SIM_INLINE,
1404 SIM_WARNING): Drop, requiring the simulator specific Makefile.in
1405 to explicitly incorporate these.
1407 * aclocal.m4 (--enable-sim-alignment); New option. Strongly
1408 specify the alignment restrictions of the target architecture -
1409 without this option all alignment restrictions are accomodated.
1410 (--enable-sim-assert): New option. Conditionally compile in
1411 assertion statements.
1412 (--enable-sim-float): New option. Strongly specify the target's
1413 floating point support.
1414 (--enable-sim-hardware): New option. Specify the hardware devices
1415 included in the simulation.
1416 (--enable-sim-packages): New option. Specify the hardware
1417 packages included in the simulation.
1418 (--enable-sim-regparm): New option. Specify that parameters be
1419 passed in registers instead of on the stack.
1420 (--enable-sim-reserved-bits): New option. Specify that reserved
1421 bits within an instruction are are correctly set.
1422 (--enable-sim-smp): New option. Specify the level of SMP support
1423 to be included in the simulator.
1424 (--enable-sim-stdcall): New option. Specify an alternative
1425 function call convention.
1426 (--enable-sim-xor-endian): New option. Configure xor-endian
1427 support used by some targets to implement bi-endian support.
1431 * aclocal.m4 (--enable-sim-hostendian): New option. Allow the
1432 host endianness to be overridden.
1433 (--enable-sim-endian): Allow the target platform's byte order
1435 (--enable-sim-inline): Control the inlining of common components.
1436 (--enable-sim-bswap): For compatibility, also define WITH_BSWAP.
1437 (--enable-sim-warnings): Enable additional GCC compiler checks.
1438 * Make-common.in (SIM_ENDIAN, SIM_HOSTENDIAN, SIM_INLINE,
1441 * sim-n-core.h, sim-n-bits.h, sim-n-endian.h: Rename from
1442 sim-*-n.h so that the names are uniq on dos machines
1443 * sim-core.c, sim-bits.c, sim-endian.c: Update.
1447 * run.c: #include "libiberty.h".
1448 (main): New locals sd,no_args,sim_argv.
1449 Run buildargv on -a option. Pass argv to sim_open, argv[0]
1450 is program name. Update call to sim_set_callbacks.
1451 Record result of sim_open, pass to other sim_foo routines.
1455 * callback.c (os_printf_filtered): Do not call exit(1) or print a
1460 * callback.c: Add os_flush_stdout and vprintf_filtered callbacks.
1461 Route stdout through buffered IO.
1463 * callback.c: Add os_flush_stderr, os_write_stderr,
1464 os_evprintf_filtered functions to route error output through
1467 * sim-io.h, sim-io.c (sim_io_flush_stderr, sim_io_flush_stdout):
1468 Correct return type - should be void.
1472 * sim-basics.h: Clean up. Many macro's moved to sim-inline.h.
1474 * sim-config.h: Ditto. For some options - eg WITH_DEVICES - do
1475 not provide a default value as undefined indicates disable code.
1479 * sim-core.h, sim-core-n.h, sim-core.c: Borrow code from ppc
1481 * sim-events.h, sim-events.c: Ditto.
1482 * sim-io.h, sim-io.c: Ditto.
1486 * sim-alu.h (ALU_SUB_CA, ALU*_SUB_CA): New alu operation.
1488 * sim-bits.h, sim-bits-n.h, sim-bits.c (LSMASKED*): New macro's
1489 extract the tail or least signifiant bits from an integer of the
1492 * sim-bits.h, sim-bits.c: Clean up conditionally compiled #if
1493 WITH_TARGET_BITSIZE so that the compilation will fail when an
1494 unsupported bitsize value is defined.
1496 (INSERTED*): Convert to functions.
1497 (EXTRACTED*): Ditto.
1499 (SIGN_EXTEND, SEXT): Change to more terse name.
1503 * sim-inline.h: Allow explicit control over which .c files will be
1504 included by their header.
1506 * sim-inline.h: Allow explicit control over which .c files use the
1507 alternative - REGPARM - parameter passing mechanism.
1509 * sim-inline.h, sim-inline.c: Don't attempt to include any of
1510 icache.c, idecode.c, semantics.c or support.c. Those names are
1511 not generally applicable.
1515 * sim-bits.c, sim-bits-n.h (new): Split sim-bits.c into two parts
1516 in a fashion similar to sim-endian-n.
1518 * sim-endian.h: (H_word, L_word, AL_*, VL_*): Extend to include
1519 both value and address macro's.
1523 * sim-alu.h (ALU16_BEGIN, ALU16_SET, ...): Fill in.
1525 * sim-endian.h (L_word, H_word): Replace MS2W_4, LS2W_4 with more
1526 generic L_word, H_word macro's.
1530 * sim-basics.h: Borrow code from ppc directory.
1531 * sim-bits.c: Ditto.
1532 * sim-bits.h: Ditto.
1533 * sim-config.h: Ditto.
1534 * sim-endian-n.h: Ditto.
1535 * sim-endian.c: Ditto.
1536 * sim-endian.h: Ditto.
1537 * sim-inline.c: Ditto.
1538 * sim-inline.h: Ditto.
1539 * sim-types.h: Ditto.
1543 * sim-alu.h (ALU_SET16, ALU_SET32, ALU_SET64, etc): Make available
1544 all the ALU size alternatives and then auto-configure a default.
1546 * sim-alu.h: Copy ppc/idecode_expression.h.
1550 * bits.h, bits.c (SIGN_EXTEND32, SIGN_EXTEND64): New functions,
1551 sign extend a bit within a value.
1553 * sim-endian.h, sim-endian-n.h (offset_N): New functions - return
1554 a pointer into the middle of a host word.
1555 * sim-endian.h (MS2W_4, LS2W_4): Use this function.
1559 * callback.c: If HAVE_CONFIG_H is defined, include config.h from
1560 autoconf. If HAVE_UNISTD_H is defined, include unistd.h to get
1561 appropriate definitions of read, write, etc. Add prototype for
1566 * Makefile.in (libcommon.a): Delete.
1567 (callback.o,targ-map.o): Delete, moved to Make-common.in.
1568 (gentmap,targ-vals.h,targ-map.c): Likewise.
1569 (run-autoconf): Delete.
1570 * aclocal.m4 (SIM_AC_OUTPUT): Redo creation of Makefile.
1571 (common makefile fragment): Moved back into ...
1572 * Make-common.in: Resurrect.
1573 * configure.in (AC_LINK_FILES): Delete, unnecessary now.
1574 * configure: Regenerated.
1578 * aclocal.m4 (SIM_AC_COMMON): Move COMMON_MAKEFILE_FRAG from here.
1579 (SIM_AC_OUTPUT): To here.
1583 * aclocal.m4 (COMMON_MAKEFILE_FRAG): Quote a couple of $'s in
1584 comments and single quotes. Fixes a problem found on hpux.
1588 * aclocal.m4: Remove Make-common.in from dependencies.
1589 * (distclean): Remove targ-vals.def.
1591 * aclocal.m4 (SIM_AC_COMMON): Move contents of Make-common.in
1592 into here. Makes insertion into makefiles easier. Also, change
1593 the way that callback.o, gentmap, targ-vals.h, targ-map.c,
1594 targ-map.o, and run are built. They are now built in the
1595 individual simulator directories, taking sources from ../common as
1596 necessary. This replaces the merging of libcommon.a into
1597 linsim.a, which was problematic for the WinGDB build process.
1598 * run.c: Include config.h from . instead of ../common.
1599 * Make-common.in: Remove. It's no longer necessary.
1603 * Make-common.in (ALL_CLAGS): Put CFLAGS at the end.
1604 (.c.o): Put $(ALL_CFLAGS) before the file being compiled.
1608 * run.c (main): Set target_byte_order before call to sim_open.
1612 * callback.c: #include <stdlib.h>
1613 (os_error): New function.
1614 (default_callback): Add os_error.
1618 * Make-common.in (Makefile): Set CONFIG_HEADERS="".
1619 * aclocal.m4: Mark the fact that --enable-sim-bswap isn't host
1621 (SIM_AC_OUTPUT): Don't build Makefile if CONFIG_FILES="".
1625 * run.c: #include ../common/config.h, tconfig.h.
1626 (myname): New static global.
1627 (main): Recognize new options -a, -c. Also recognize -h if h8/300.
1628 Only process -c ifdef SIM_HAVE_SIMCACHE.
1629 Only process -p/-s ifdef SIM_HAVE_PROFILE.
1630 Parse program name from argv[0] and use in error messages.
1631 Pass sim_args to sim_open. Pass prog_args to sim_create_inferior.
1632 Add support for incomplete h8/300 termination indicators.
1633 (usage): Make more verbose.
1634 * aclocal.m4,config.in,tconfig.in,configure.in,configure: New files.
1635 * Makefile.in,Make-common.in,callback.c: New files.
1636 * nltvals.def,gentmap.c,gentvals.sh: New files.
1640 * run.c: Include stdarg.h if __STDC__.
1644 * run.c (main): Don't print out anything if the signal
1645 number is zero (ie no signal).
1649 * run.c (main): Print out if the program raised a signal.
1653 * run.c (exec_bfd): Rename from sim_bfd, to use the gdb name.
1658 * run.c (main): Explicitly cast malloc() parameter.
1662 * run.c (sim_bfd): New global to hold the bfd pointer for the
1664 (main): Initialize sim_bfd.
1668 * run.c (main): Use new bfd_big_endian macro.
1672 * run.c (main): Removed SH specific comments, so source is
1673 generic. Also updated to only load relevant sections. Moved
1674 sim_open() to after callback attach (to match GDB).
1676 * run.1: Removed SH specific comments.
1680 * run.c (main): Always return sigrc at end.
1684 * run.c (main): Print error diagnostic and exit if bfd_openr() or
1685 bfd_check_format() fails.
1689 * run.c, run.1: From sh directory.