sid/main/dynamic/ChangeLog: 2006-09-15 Dave Brolley * mainDynamic.cxx (usage): Document --reversible. (try_add_memory): Call sess->add_memory. (option_num): add opt_reversible. (long_options): Add "reversible". (main): Handle opt_reversible. * commonCfg.h (set_reversible): New method of SessionCfg. (add_memory): Likewise. (reversible_p): New member of SessionCfg. (memory): Likewise. * commonCfg.cxx (CpuCfg): Establish sim-sched relation. (SessionCfg): Initialize reversible_p. (SessionCfg::write_load): Set up all memory regions as reversible, if requested. (BoardCfg::write_config): Set up the cpu to be reversible, if requested. sid/include/ChangeLog: 2006-09-15 Dave Brolley * sidmiscutil.h (change_log): New utility class. * sidcpuutil.h (basic_cpu): Now inherits from reversible_component. (step_pin_handler): Parameter now named 'tick'. Save the current tick. Handle exec_direction == "backward". Initialize change logging, if reversible. Finish change logging, if reversible. (step_backward): New method of basic_cpu. (reset_pin_handler): Terminte the current change log, if any. Set exec_direction to "forward". (change_log,change_log_begin,change_log_end,change_log_boundaries) (change_string,exec_direction,sim_sched,current_tick,last_tick): New members of basic_cpu. (init_change_logging,finish_change_logging,log_change) (restore_state_to_time): New virtual methods of basic_cpu. (basic_cpu): Initialize change_log, change_log_begin, change_log_end, change_log_boundaries, last_tick, exec_direction, and sim_sched. Add the exec-direction and sim-sched attributes. * sidattrutil.h (reversible_component): New mix-in class. sid/component/sched/ChangeLog: 2006-09-15 Dave Brolley * compSched.cxx (deliver_regular): Drive rnext->when. (deliver_irregular): Drive irnext->when. (advancy_any): Check yield_step_loop_p. (cancel_all): New method of generic_scheduler. (time_set_pin): New member of scheduler_component. (scheduler_component::set_time): Call set_now with 'then - 1'. Call sched.cancel_all. Drive time_set_pin. (scheduler_component_ctor_1): Add time-set pin. sid/component/memory/ChangeLog: 2006-09-15 Dave Brolley * generic.h: Remove 'using sidutil::no_relation_component'. Add 'using sidutil::fixed_relation_map_component'. (generic_memory): New inherits from reversible_component and fixed_relation_map_component. Now inherits virtually from fixed_pin_map_component and fixed_attribute_map_component. (sched): New member of generic_memory. (change_log): Likewise. (record_update): New method of generic_memory. (restore_state_to_time): Likewise. (generic_read_write_bus::write_any): call record_update if this memory is reversible. * generic.cxx (generic_memory): Initialize sched and change_log. Add sim-sched relation. (record_update): New method of generic_memory. (restore_state_to_time): Likewise. sid/component/gdb/ChangeLog: 2006-09-15 Dave Brolley * gdbserv-target.h (set_exec_direction): New member of gdbserv_target. * gdbserv-state.c (gdbserv_data_packet): Initialize exec_direction. Check for a 'b' prefix for the S, s, C, and c packets. Call gdbserv->target->set_exec_direction. * gdb.h (set_exec_direction): New function prototype. * gdb.cxx (set_exec_direction_hook): New function. (gdbsid_target_attach): Set gdbtarget->set_exec_direction. (set_exec_direction): New function.