* sim-core.h (sim_cpu_core): [WITH_XOR_ENDIAN + 1], to avoid
[binutils-gdb.git] / sim / common / ChangeLog
index 6dfbdcd3a28fe1445101cb7677b63707f34c1ff6..8c2db641410b84c7eb4557539770f5f67daf3d83 100644 (file)
@@ -1,3 +1,472 @@
+Tue Sep  9 21:46:46 1997  Felix Lee  <flee@cygnus.com>
+
+       * sim-core.h (sim_cpu_core): [WITH_XOR_ENDIAN + 1], to avoid
+       illegal zero-sized array.
+       * sim-core.c (sim_core_xor_read_buffer): same.
+
+Tue Sep  9 11:20:35 1997  Doug Evans  <dje@canuck.cygnus.com>
+
+       * nltvals.def: Regenerate.
+
+Tue Sep  9 02:10:36 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-fpu.c (DP_FRACHIGH2): Define LL using SIGNED64.
+
+Mon Sep  8 12:22:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-bits.c (MASKED): Delete.
+       (EXTRACTED): Delete.
+       (LSEXTRACTED, MSEXTRACTED): New functions.
+
+       * sim-n-bits.h (MASKEDn): Delete, define as MSMASKED or LSMASKED.
+       (MSMASKEDn, LSMASKEDn): Add last argument.
+       (MSMASK*): Ditto.
+       
+       * sim-bits.h (EXTEND8, EXTEND16): Define.
+       (EXTRACTED64): Define as 64 bit extract, not 32 bit.
+
+       * sim-run.c (sim_engine_run): Use CPU_CIA macro.
+
+       * sim-engine.h (SIM_ENGINE_HALT_HOOK): Use CPU_CIA to get at
+       current instruction address.
+
+       * sim-inline.h (*_ENGINE): Define.
+
+Fri Sep  5 08:39:02 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-core.c (sim_core_attach): Fix checks of modulo/mask.
+
+       * sim-watch.c (delete_watchpoint): Delete by ident and type.
+       (watch_option_handler): Call delete_watchpoint with ident or type.
+       (sim_watchpoint_install): Create interrupt specific watchpoint
+       commands on the fly.
+       (do_watchpoint_create): New function, create a watch point using
+       type/int-nr info encoded in the option nr.
+       (do_watchpoint_info): New function.  List active watchpoints.
+
+       * sim-watch.h: Change data structure to a list.
+
+       * sim-memopt.c (memory_option_handler): Require explicit "all"
+       before deleting all memory regions.
+
+       * sim-utils.c (sim_do_commandf): New function, printf version of
+       sim_do_command.
+
+       * sim-basics.h (asprintf, vasprintf): Hack, define for CYGWIN32. 
+       
+       * sim-alu.h (ALU64_ADD): Use explicit MSEXTRACTED64, do not assume
+       bit endianness.
+       (SIGNED64, UNSIGNED64): Delete.
+       (ALU64_ADD): Don't rely on bit endianness.
+       (ALU64_BEGIN): Define.
+
+       * sim-n-bits.h (MSEXTRACTEDn, LSEXTRACTED): New functions.
+       (EXTRACTEDn): Delete, define as either LSEXTRACTED or MSEXTRACTED.
+
+       * sim-types.h (SIGNED64, UNSIGNED64): New macros, attach relevant
+       suffix - u64, LL - to 64 bit constants.
+
+Thu Sep  4 09:27:54 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-config.c (sim_config): Add assert for SIM_MAGIC_NUMBER.
+
+       * sim-utils.h (NZALLOC): Define - zalloc * N.
+
+       * sim-hrw.c (sim_read, sim_write): New file.  Provide generic
+       implementation of read/write functions.
+
+       * Make-common.in (sim-hrw.o): New target.
+
+       * sim-base.h (STATE_MEMOPT_P): Delete, simulators _always_ add
+       memory.
+
+       * sim-memopt.c (memory_option_handler): Implement memory-size
+       command. Implement memory-alias command.  Let memory-delete delete
+       all memory regions.
+       (add_memopt): New function.  Add a memory region.
+       (do_memopt_delete): New function. Delete a memory region.
+
+       * sim-utils.c (sim_elapsed_time_get): Never return zero.
+
+       * sim-core.c (sim_core_detach): New function.
+       (sim_core_map_detach): New function. Perform the actual detach.
+       (sim_core_init): Move initialization code from here.
+       (sim_core_install): To here.
+       (sim_core_uninstall): And here.
+
+       * sim-module.c: Add memopt module.
+
+       * sim-base.h (STATE_MEMOPT, STATE_MEMOPT_P): Add memopt to
+       simulator base type.
+
+       * Make-common.in (sim_main_headers): Add sim-memopt.h
+       (sim-memopt.o): New target.
+
+       * sim-core.c (sim_core_install): Add core_options to the option
+       table.
+
+       * sim-watch.c (watch_options): Make --delete-watch a synonym for
+       --watch-delete.
+
+       * sim-config.h (WITH_MODULO_MEMORY): Define as 0.  Update
+       comments.
+
+       * sim-core.h (struct _sim_core_mapping): Change nr_bytes to type
+       address_word, add mask member.
+       
+       * sim-core.h, sim-core.c (sim_core_attach): Make nr_bytes of type
+       address_word, allow for 64bit targets in 32bit host. Add modulo
+       argument.
+       (sim_core_map_attach): Ditto.
+       (new_sim_core_mapping): Ditto.
+       (sim_core_translate): Mask address when modulo memory.
+
+Wed Sep  3 17:32:54 1997  Doug Evans  <dje@seba.cygnus.com>
+
+       * sim-hload.c (sim_load): Add assert for SIM_MAGIC_NUMBER.
+
+       * gdbinit.in: New file.
+       * aclocal.m4 (SIM_AC_OUTPUT): Build .gdbinit.
+       * Make-common.in (distclean): Delete .gdbinit.
+       (.gdbinit): Add rule for.
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+       * Make-common.in (cgen-run.o): Add rule for.
+
+Wed Sep  3 10:08:21 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-resume.c (sim_resume): Suspend/resume the simulator.
+
+       * sim-events.c (sim_watch_valid): Compute total elapsed time from
+       both resumed and previous elapsed time.
+       (sim_events_init): Set initial_wallclock and current_wallclock to
+       zero.
+       (sim_events_install): Install sim_events_suspend and
+       sim_events_resume.
+       (sim_events_watch_clock): Allow for suspended simulator when
+       computing the time of the clock event.
+
+       * sim-events.h (struct _sim_event): Add resume_wallclock, rename
+       initial_wallclock to elapsed_wallclock, set both to zero.
+       (sim_events_init, sim_events_uninstall): Delete prototypes.
+
+       * sim-module.h (MODULE_SUSPEND_FN, MODULE_RESUME_FN): Define types.
+       
+       * sim-module.c(sim_module_resume, sim_module_suspend): New
+       functions.
+
+Wed Sep  3 10:08:21 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-core.c (sim_core_map_attach): Clarify memory overlap error
+       message.
+
+Tue Sep  2 14:57:06 1997  Doug Evans  <dje@canuck.cygnus.com>
+
+       * Makefile.in (TAGS): Add support for "/* TAGS: foo */" marker.
+       * Make-common.in (TAGS): Likewise.
+       * sim-n-bits.h: Add TAGS comments for all functions.
+       * sim-n-core.h: Likewise.
+       * sim-n-endian.h: Likewise.
+
+Mon Sep  1 10:50:11 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-utils.c (sim_state_alloc): Set CPU backlinks, callback and
+       kind.
+       
+       * sim-base.h (sim_state_alloc): Add callback and kind arguments.
+       
+       * sim-base.h (INVALID_INSTRUCTION_ADDRESS): Add default
+       definition.
+
+Sat Aug 30 09:47:21 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-fpu.c (DP_GARDMSB, ...): Make unsigned.
+       (DP_FRACHIGH, DP_FRACHIGH2, ..): Use MSMASK to avoid LL.
+
+Fri Aug 29 13:37:44 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-core.c (sim_core_map_attach): Cast attach enum to int.
+       (sim_core_xor_read_buffer, sim_core_xor_write_buffer): Make
+       nr_transfered and nr_this_transfer unsigned.
+
+       * sim-events.c (sim_events_tickn): N is signed, as limited to
+       MAXINT.
+
+       * sim-n-endian.h (offset_N): Change size to unsigned.
+
+       * callback.c (os_poll_quit): Add prototypes for kbhit and getkey.
+
+Fri Aug 29 10:10:53 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-utils.c (sim_copy_argv): Delete, replaced by dupargv.
+
+       * sim-options.c (sim_parse_args): Use dupargv.
+
+Thu Aug 28 10:36:34 1997  Doug Evans  <dje@canuck.cygnus.com>
+
+       * sim-options.c (standard_option_handler): Use xstrdup, not strdup.
+
+Thu Aug 28 12:09:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-base.h (STATE_ARCHITECTURE, STATE_TARGET): Add to simulator
+       base type.
+
+       * sim-options.c (standard_options): Add --architecture=MACHINE and
+       --target=TARGET options.
+       (OPTION_ARCHITECTURE, OPTION_TARGET): Define.
+       (standard_option_handler): Handle architecture and target options.
+       (bfd.h): Include.
+       
+       * sim-utils.c (sim_analyze_program): Pass STATE_TARGET to
+       bfd_openr.
+       (sim_analyze_program): Set prog_bfd architecture from
+       STATE_ARCHITECTURE if known.
+
+Wed Aug 27 18:13:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+       * config.in: Ditto.
+
+Wed Aug 27 18:11:30 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * aclocal.m4 (enable-sim-warnings): Remove comment stating
+       that option does not apply to certain files.
+
+Wed Aug 27 15:13:04 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-bits.h (LSBIT8, LSBIT16, LSBIT32, LSBIT64, LSBIT, MSBIT8,
+       MSBIT16, MSBIT32, MSBIT64, MSBIT): New macros - single bit as
+       offset from MSB/LSB.
+
+       * sim-endian.h (A1_8, A2_8, A4_8, A1_4, A2_4, A1_2): New macro,
+       access address of sub word quantity of a hosts 16, 32, 64 bit word
+       type.
+       (V1_2, V1_4, V2_4, V1_8, V2_8, V4_8): Ditto for values.
+       (U8_1, U8_2, U8_4, U4_1, U4_2, U2_1): Ditto for set of values.
+       (V2_H1, V2_L1, V4_H2, V4_L2, V8_L4, V8_H4): Given N byte argument,
+       return N*2 byte value with argument in Hi/Lo word.  Renamed from
+       V1_H2, V1_L2, V2_H4, V2_L4, V4_H8, V4_L8.
+       
+       * sim-alu.h (ALU32_HAD_OVERFLOW): Use 64 bit mask not 32bit.
+       (ALU16_HAD_CARRY, ALU32_HAD_CARRY, ALU16_HAD_OVERFLOW): Use MSBIT
+       so that bit offset is explicit.
+
+Wed Aug 27 11:55:35 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-utils.c (sim_analyze_program): Add prog_name argument.
+       Update STATE_PROG_BFD when needed with a dup'd copy of the
+       program.
+
+       * sim-config.c (sim_config): Delete ABFD argument, use
+       STATE_PROG_BFD directly.
+
+Tue Aug 26 12:55:26 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * run.c (main): Pass the open ABFD to sim_create_inferior.
+       
+       * nrun.c (main): Determine prog_bfd.  Pass to sim_create_inferior
+       and sim_load.
+       (bfd.h): Include.
+       
+       * sim-hload.c (sim_load): New file. Implement generic sim_load for
+       hardware only simulator targets.
+
+       * Make-common.in (sim-hload.o): Add rule.
+
+Wed Aug 27 09:51:42 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-utils.c (sim_copy_argv): Rewrite to match malloc strategy
+       used by copyargv and freeargv.
+
+       * sim-options.c (sim_parse_args): Save a copy of PROG-ARGS in
+       STATE_PROG_ARGV, not just a pointer.
+
+Mon Aug 25 17:50:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+       * config.in: Ditto.
+
+Mon Aug 25 12:11:06 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * aclocal.m4 (sim-endian): Add second argument to
+       SIM_AC_OPTION_ENDIAN.  First is hardwired endian, second is
+       default endian when not hardwired.
+
+       * sim-config.h (WITH_DEFAULT_TARGET_BYTE_ORDER): New macro, if all
+       else failes value for target byte order.
+
+       * sim-config.c (sim_config): Add abfd arguments. Set
+       STATE_PROG_BFD accordingly.  Determine prefered_target_byte_order
+       from same.
+       (sim_config): Return SIM_RC, don't abort.
+       (bfd.h): Include.
+       
+       * run.c (main): Update call to sim_open - add ABFD argument.
+       * nrun.c (main): Add NULL ABFD argument.
+
+Thu Aug 14 12:48:57 1997  Doug Evans  <dje@canuck.cygnus.com>
+
+       * callback.c (os_poll_quit): Make static.
+       Call sim_cb_eprintf, not p->eprintf.
+       (sim_cb_printf, sim_cb_eprintf): New functions.
+       * sim-utils.h (sim_cb_printf, sim_cb_eprintf): Declare.
+
+       * sim-basics.h (zalloc,zfree,sim_add_commas,SIM_ELAPSED_TIME,
+       sim_elapsed_time_get,sim_elapsed_time_since): Move decls to
+       sim-utils.h. #include sim-utils.h.
+       * sim-utils.h: Above decls moved here.
+       (sim_analyze_program,sim_load_file): Use `struct _bfd', not `bfd'.
+
+       * sim-watch.c (action_watchpoint): Fix thinkos.
+
+Thu Jul 24 08:48:05 1997  Stu Grossman  (grossman@critters.cygnus.com)
+
+       * sim-types.h:  Fix defs of 64 bit data types for MSVC.
+
+Tue Jul 22 10:35:37 1997  Doug Evans  <dje@canuck.cygnus.com>
+
+       * sim-n-core.h (sim_core_write_unaligned_N): Add missing break
+       to FORCED_ALIGNMENT case.
+
+Thu Jun  5 13:48:37 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * callback.c (target_to_host_open): Handle hosts with O_BINARY.
+
+Thu Jun  5 08:47:10 1997  Jeffrey A Law  (law@cygnus.com)
+
+       * Make-common.in (libsim.a): Fix typo.
+
+Thu Jun  5 13:48:37 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * nrun.c (main): Verify the structure returned before using it.
+
+Wed Jun  4 11:44:06 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-config.h (WITH_ENGINE): Enable the sim-engine module by
+       default.
+
+       * sim-engine.c (sim_engine_install): New function.  Install the
+       engine init functions.
+       (sim_engine_init): [Re]initialize the simulator engine.
+       
+       * sim-module.c: Add sim_engine to list of modules that always
+       install.
+
+Tue Jun  3 04:52:04 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-watch.c (schedule_watchpoint): Use sim_unschedule_watchpoint
+       to remove the old watchpoint, not delete_watchpoint.
+       (watch_option_handler): Action the correct watchpoint, not just
+       cycles.
+
+Wed May 28 14:47:41 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-n-core.h (sim_core_write_aligned_N): For 8byte reads, output
+       both low and high word.
+       (sim_core_write_aligned_N): Ditto.
+       
+       * sim-trace.c (set_trace_options): Delete code explicitly setting
+       core->trace.
+
+       * sim-options.c (sim_print_help): Call the list commands if not a
+       standalone simulator.
+       (sim_print_help): Advise that some options may not be applicable.
+       
+       * sim-trace.c (set_trace_options): Assume core present.
+
+       * sim-events.c (sim_events_schedule_after_signal): Overflow signal
+       buffer when full not almost full.
+
+Tue May 27 14:32:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-events.c (sim_events_process): Don't blat the event queue
+       when processing watchpoints.
+
+       * sim-watch.h: Make arg unsigned long - stop sign extension.
+
+       * sim-events.c (sim_watch_valid): rewrite so debugable.
+
+       * sim-config.h (WITH_XOR_ENDIAN): Default to zero.
+
+       * sim-watch.c (schedule_watchpoint): Add is_within option so that
+       inequality test is possible.
+       (handle_watchpoint): Re-pass is_within arg.
+       (watch_option_handler): When `!' prefix to pc-watchpoint arg pass
+       0 to schedule_watchpoint's is_within arg.
+       (sim_watchpoint_init): Re-pass is_within arg.
+
+       * sim-options.c (sim_print_help): Add is_command argument.  Don't
+       include -- prefix when called from the command line interpreter.
+
+       * sim-watch.c (schedule_watchpoint): Pass true is_within argument.
+
+       * sim-events.c (sim_events_watch_sim): Add is_within argument,
+       zero indicates that the test should be reversed.
+       (sim_events_watch_core): Ditto.
+       (WATCH_CORE): Compare range against is_within.
+       (WATCH_SIM): Ditto.
+
+Tue May 27 12:48:03 1997  Andrew Cagney  <cagney@b2.cygnus.com>
+
+       * sim-events.c (WATCH_CORE): Pass NULL cpu argument to
+       sim_core_read_buffer.  Check nr-bytes transfered.
+
+       * sim-core.h (sim_core_common): Define a new struct that contains
+       the common data.  to sd and cpu structures.
+       * sim-core.c (sim_core_attach): Update.
+       (sim_core_init): Update. Remember to copy initialized data to each
+       cpu.
+       (sim_core_find_mapping): Ditto.
+
+       * sim-core.c (sim_core_read_buffer): Add cpu argument.
+       (sim_core_write_buffer): Ditto.
+
+       * sim-n-core.h (sim_core_read_unaligned_N): When mis-aligned
+       transfer use xor version of read buffer.
+       (sim_core_write_unaligned_N): Ditto for write.
+       
+       * sim-core.c (sim_core_xor_read_buffer): New function implement
+       xor-endian data read breaking transfer up into xor-endian sized
+       blocks.
+       (sim_core_xor_write_buffer): Ditto for write.
+       (reverse_n): Reverse order of arbitrary number of bytes in buffer
+       - needed for xor-endian transfers.
+
+Fri May 23 14:24:31 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-inline.h: Review description.
+       
+       * sim-core.h, sim-core.c: Reduce number of functions being inlined
+       to just those involved in data transfers and configuration.
+       
+       * sim-xcat.h (XSTRING): New macro, map macro definition onto
+       string.
+       * sim-n-core.h (sim_core_read_aligned_N): Use.
+       (sim_core_read_unaligned_N): Ditto.
+       (sim_core_read_unaligned_N): Ditto..
+       (sim_core_write_unaligned_N): Ditto.
+       
+       * sim-core.h: Add xor endian bitmap to main structure.  *
+       
+       sim-n-core.h (sim_core_write_aligned_N): Add suport for xor
+       endian.
+       (sim_core_read_aligned_N): Ditto.
+
+       * sim-core.c (sim_core_set_xor_endian): New function.
+       (sim_core_attach): Don't overwrite the per-cpu xor map when
+       cloning the global core.
+
+Fri May 23 10:53:13 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-engine.h: Update below so that it is using an enumerated
+       type.
+
+Thu May 22 09:12:16 1997  Gavin Koch  <gavin@cygnus.com>
+
+       * sim-engine.c (sim_engine_restart): 
+       * sim-resume.c (sim_resume): Change longjmp param/setjmp 
+       return value used for simulator restart from 0 to 2.
+
 Wed May 21 08:47:30 1997  Andrew Cagney  <cagney@b1.cygnus.com>
 
        * cgen-scache.c (scache_option_handler): Add is_command arg.