+2002-06-09 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (INCLUDE): Update path to callback.h.
+ * sim-main.h: Include "gdb/callback.h" and "gdb/remote-sim.h".
+
+2002-03-07 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * m68hc11_sim.c (cpu_move8): Call sim_engine_abort in default case.
+ (cpu_move16): Likewise.
+ (sim_memory_error): Use sim_io_printf.
+ (cpu_option_handler): Fix compilation warning.
+ * interp.c (sim_hw_configure): Fix compilation warning;
+ remove m68hc12sio@2 device.
+ (sim_open): Likewise.
+ * dv-m68hc11tim.c (m68hc11tim_port_event): Fix clear of TFLG2
+ flags when reset.
+ (cycle_to_string): Improve convertion of cpu cycle number.
+ (m68hc11tim_info): Print info about PACNT.
+ (m68hc11tim_io_write_buffer): Fix clearing of TFLG2; handle
+ TCTL1 and TCTL2 registers.
+ * dv-m68hc11.c (m68hc11_info): Print 6811 current running mode.
+
+2002-03-07 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * interp.c (sim_hw_configure): Save the HW cpu pointer in the
+ cpu struct.
+ (sim_hw_configure): Connect the capture input/output events.
+ * sim-main.h (_sim_cpu): New member hw_cpu.
+ (m68hc11cpu_set_oscillator): Declare.
+ (m68hc11cpu_clear_oscillator): Declare.
+ (m68hc11cpu_set_port): Declare.
+ * dv-m68hc11.c (m68hc11_options): New for oscillator commands.
+ (m68hc11cpu_ports): New input ports and output ports to reflect
+ the HC11 IOs.
+ (m68hc11_delete): Cleanup any running oscillator.
+ (attach_m68hc11_regs): Create the input oscillators.
+ (make_oscillator): New function.
+ (find_oscillator): New function.
+ (oscillator_handler): New function.
+ (reset_oscillators): New function.
+ (m68hc11cpu_port_event): Handle the new input ports.
+ (m68hc11cpu_set_oscillator): New function.
+ (m68hc11cpu_clear_oscillator): New function.
+ (get_frequency): New function.
+ (m68hc11_option_handler): New function.
+ (m68hc11cpu_set_port): New function.
+ (m68hc11cpu_io_write): Post the port output events.
+ * dv-m68hc11spi.c (set_bit_port): Use m68hc11cpu_set_port to set
+ the output port value.
+ * dv-m68hc11tim.c (m68hc11tim_port_event): Handle CAPTURE event
+ by latching the TCNT value in the register.
+
+2002-03-07 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * sim-main.h (cpu_frame, cpu_frame_list): Remove.
+ (cpu_frame_reg, cpu_print_frame): Remove.
+ (cpu_m68hc11_push_uint8, cpu_m68hc11_pop_uint8): Cleanup.
+ (cpu_m68hc11_push_uint16, cpu_m68hc11_pop_uint16): Likewise.
+ (cpu_m68hc12_push_uint8, cpu_m68hc12_push_uint16): Likewise.
+ (cpu_m68hc12_pop_uint8, cpu_m68hc12_pop_uint16): Likewise.
+ * m68hc11_sim.c (cpu_find_frame): Remove.
+ (cpu_create_frame_list): Remove.
+ (cpu_remove_frame_list, cpu_create_frame, cpu_free_frame): Remove.
+ (cpu_frame_reg, cpu_print_frame, cpu_update_frame): Remove.
+ (cpu_call): Cleanup to remove #if HAVE_FRAME and calls to the above.
+ (cpu_update_frame): Likewise.
+ (cpu_return): Likewise.
+ (cpu_reset): Likewise.
+ (cpu_initialize): Likewise.
+ * interp.c (sim_do_command): Remove call to cpu_print_frame.
+
+2002-03-07 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * interrupts.c (interrupts_reset): New function, setup interrupt
+ vector address according to cpu mode.
+ (interrupts_initialize): Move reset portion to the above.
+ (interrupt_names): New table to give a name to interrupts.
+ (idefs): Handle pulse accumulator interrupts.
+ (interrupts_info): Print the interrupt history.
+ (interrupt_option_handler): New function.
+ (interrupt_options): New table of options.
+ (interrupts_update_pending): Keep track of when interrupts are
+ raised and implement breakpoint-on-raise-interrupt.
+ (interrupts_process): Keep track of when interrupts are taken
+ and implement breakpoint-on-interrupt.
+ * interrupts.h (struct interrupt_history): Define.
+ (struct interrupt): Keep track of the interrupt history.
+ (interrupts_reset): Declare.
+ (interrupts_initialize): Update prototype.
+ * m68hc11_sim.c (cpu_reset): Reset interrupts.
+ (cpu_initialize): Cleanup.
+
+2001-07-28 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * dv-m68hc11eepr.c (m68hc11eepr_info): Fix print of current write
+ address.
+ (m68hc11eepr_port_event): Fix detach/attach logic.
+
+2001-07-22 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * Makefile.in (SIM_OBJS): Remove sim-resume.o
+ * interp.c (sim_resume): New function from sim-resume.c, install
+ the stepping event after having processed the pending ticks.
+ (has_stepped): Likewise.
+ (sim_info): Produce an output only if verbose or STATE_VERBOSE_P.
+
+2001-07-10 Andrew Cagney <ac131313@redhat.com>
+
+ * Makefile.in (gencode): Provide explicit path to gencode.c.
+
+2001-05-20 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * Makefile.in (M68HC11_OBJS): Add m68hc12int.o.
+ (m68hc12int.c): Generate using gencode -m6812.
+ (m68hc11int.c): Likewise with -m6811.
+
+ * gencode.c (m6811_opcode_patterns): New patterns for 68HC12.
+ (m6811_page1_opcodes): Remove duplicate entries.
+ (m6811_page2_opcodes): Likewise.
+ (m6811_page3_opcodes): Likewise.
+ (m6811_page4_opcodes): Likewise.
+ (m6812_page1_opcodes): New table for 68HC12 instructions.
+ (m6812_page2_opcodes): Likewise.
+ (gen_fetch_operands): New modes [] and &[] for 68HC12 operands.
+ (gen_save_result): Likewise.
+ (gen_interpreter_for_table): Handle 68HC11 and 68HC12 opcodes.
+ (cmp_opcode): New function for opcode comparision.
+ (prepare_table): Sort the opcodes.
+ (gen_interpreter): Prepare all the tables and generate either
+ a 68HC11 or a 68HC12 simulator.
+ (main): New options -m6811 and -m6812.
+
+ * m68hc11_sim.c (cpu_single_step): Use pointer to cpu interpretor.
+ (cpu_special): Simulation of some 68HC12 instructions.
+ (cpu_exg): New function.
+ (cpu_dbcc): Likewise.
+ (cpu_fetch_relbranch16): Likewise.
+ (cpu_push_all): Push according to 68HC11 or 68HC12.
+ (cpu_move16): Likewise.
+ (cpu_move8): Likewise.
+ (cpu_get_indexed_operand16): Likewise.
+ (cpu_get_indexed_operand8): Likewise.
+ (cpu_get_indexed_operand_addr): Likewise.
+ (cpu_set_reg, cpu_set_dst_reg, cpu_get_src_reg, cpu_get_reg): Likewise.
+ (cpu_reset): Setup INIT register according to architecture.
+
+ * sim-main.h (M6811_Special): Add 68HC12 specific instructions.
+ (_sim_cpu): Keep track of the cpu being simulated.
+ (cpu_get_tmp3, cpu_get_tmp2, cpu_set_tmp3, cpu_set_tmp2): New.
+ (cpu_m68hc11_push_uintxx): Rename of cpu_push_uintxx.
+ (cpu_m68hc11_pop_uint8): Likewise.
+ (cpu_m68hc12_push_uintxx): New functions for 68HC12.
+ (cpu_m68hc12_pop_uintxx): Likewise.
+ (cpu_exg, cpu_dbcc, cpu_move8, cpu_move16): Likewise,
+ (cpu_fetch_relbranch16): Likewise.
+ (cpu_interp_m6811): Rename of cpu_interp.
+ (cpu_interp_m6812): New function.
+ * interp.c (free_state): New function.
+ (dev_list_68hc12): New table.
+ (sim_board_reset): Reset depending on the cpu (HC11 or HC12).
+ (sim_hw_configure): New function.
+ (sim_prepare_for_program): New function.
+ (sim_open): Use above new functions.
+ (sim_close): Call free_state().
+ (sim_info): Print info according to cpu.
+ (sim_create_inferior): Use sim_prepare_for_program.
+ (sim_do_command): Configure the hardware after a change of the
+ architecture.
+
+2001-05-20 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * dv-m68hc11sio.c (m68hc11sio_tx_poll): Always check for
+ pending interrupts.
+ * interrupts.c (interrupts_process): Keep track of the last number
+ of masked insn cycles.
+ (interrupts_initialize): Clear last number of masked insn cycles.
+ (interrupts_info): Report them.
+ (interrupts_update_pending): Compute clear and set masks of
+ interrupts and clear the interrupt bits before setting them
+ (due to SCI interrupt sharing).
+ * interrupts.h (struct interrupts): New members last_mask_cycles
+ and xirq_last_mask_cycles.
+
+2000-11-26 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * dv-m68hc11.c (m68hc11cpu_io_read_buffer): Use attach_size
+ instead of a hard-coded value.
+ (m68hc11cpu_io_write_buffer): Likewise.
+ (dv_m68hc11_descriptor): Define a 68hc12 device.
+ * dv-m68hc11eepr.c (dv_m68hc11eepr_descriptor): Likewise.
+ * dv-m68hc11tim.c (dv_m68hc11tim_descriptor): Likewise.
+ * dv-m68hc11spi.c (dv_m68hc11spi_descriptor): Likewise.
+ * dv-m68hc11sio.c (dv_m68hc11sio_descriptor): Likewise.
+
+2000-11-22 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * dv-m68hc11.c (attach_m68hc11_regs): Register a delete handler.
+ (m68hc11cpu_delete): Delete handler to detach the address space.
+
+2000-11-24 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * dv-m68hc11eepr.c (attach_m68hc11eepr_regs): Use hw_malloc.
+ * dv-nvram.c (attach_nvram_regs): Use hw_free and hw_malloc
+ instead of free and malloc.
+
+2000-09-11 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * Makefile.in: Was missing from initial patch.
+
+2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * interp.c (sim_store_register): Remove soft register hack.
+ (sim_fetch_register): Likewise.
+ (sim_create_inferior): Likewise.
+ * sim-main.h: Likewise.
+
+2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * interrupts.c (interrupts_update_pending): Clear the mask of
+ pending interrupts here.
+ (interrupts_get_current): Don't clear the mask of pending interrupts.
+
+2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * sim-main.h: Define cycle_to_string.
+ * dv-m68hc11tim.c (cycle_to_string): New function to translate
+ the cpu cycle into some formatted time string.
+ (m68hc11tim_print_timer): Use it.
+ * dv-m68hc11sio.c (m68hc11sio_info): Use cycle_to_string.
+ * dv-m68hc11spi.c (m68hc11spi_info): Likewise.
+ * interrupts.c (interrupts_info): Likewise.
+ * m68hc11_sim.c (cpu_info): Likewise.
+
+2000-09-06 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * dv-m68hc11tim.c (m68hc11tim_timer_event): Compute the overflow
+ interrupt and compare events accurately. Take into account the
+ pending ticks not processed by the simulator yet (introduced a shift).
+ (m68hc11_port_event): Reset the timer interrupt delays.
+ (m68hc11tim_io_read_buffer): Be able to read several bytes.
+ (m68hc11tim_io_write_buffer): Likewise for write.
+ (m68hc11tim_io_write_buffer): Recompute the timer overflow interrupt.
+
2000-09-06 Stephane Carrez <Stephane.Carrez@worldnet.fr>
* dv-m68hc11spi.c (m68hc11spi_io_read_buffer): Clear the interrupts.