📄 changelog
字号:
* registers.c (fr400_spr): Enable write access to HSR0.CBM. * profile.h (FRV_PROFILE_STATE): New field 'all_cache_entries'. * profile.c (CACHE_QUEUE_ELEMENT): New 'all' field. (request_cache_flush): Save 'all' argument. (request_cache_invalidate): Save all_cache_entries from profile state to 'all' field of the request. (submit_cache_request): Pass the 'all' field of the request to frv_cache_request_invalidate. * frv.c (frv_insn_cache_invalidate): Add new 'all' parameter. Perform operation even if HSR0.ICE is not set. (frv_data_cache_invalidate): Add new 'all' parameter. Perform operation even if HSR0.DCE is not set. (frv_data_cache_flush): Ditto. * frv-sim.h (frv_insn_cache_invalidate): Add new 'all' parameter. (frv_data_cache_invalidate): Add new 'all' parameter. (frv_data_cache_flush): Add new 'all' parameter. * cache.h (FRV_CACHE_INVALIDATE_REQUEST): Add new 'all' field. (frv_cache_request_invalidate): Add new 'all' parameter. * cache.c (frv_cache_request_invalidate): Add new 'all' parameter. Save its value in the invalidate request. (address_interference): Accept the value '-1' for the address argument to mean 'any address'. (handle_req_invalidate): Handle request to invalidate all cache lines. * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.2001-05-14 Dave Brolley <brolley@redhat.com> * profile.h (past_first_p): New field of profiling state. (branch_penalty): Ditto. (branch_hint): Ditto. (update_branch_penalty): New function. * profile.c (frvbf_model_insn_after): Reset past_first_p and branch_address fields of the profiling state. (frvbf_model_branch): New function. (update_branch_penalty): New function. * profile-fr500.c (frvbf_model_fr500_u_branch): Remove ICCi_3 and FCCi_3 inputs. (frvbf_model_fr500_u_trap): New function. (frvbf_model_fr500_u_check): New function. (frvbf_model_fr500_u_media_dual_htob): post-processing latency is 3 cycles. * profile-fr400.c (frvbf_model_fr400_u_branch): Set branch penalties as documented in the fr400 LSI. Remove ICCi_3 and FCCi_3 inputs. (frvbf_model_fr400_u_media_dual_expand): Check resource usage as documented in teh fr400 LSI. (frvbf_model_fr400_u_media_dual_htob): Ditto. (frvbf_model_fr400_u_media_dual_unpack): Removed. (frvbf_model_fr500_u_trap): New function. (frvbf_model_fr500_u_check): New function. * mloop.in (simulate_dual_insn_prefetch): New function. (@cpu@_simulate_insn_prefetch): Call simulate_dual_insn_prefetch with arguments for each machine type. * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.2001-05-09 Dave Brolley <brolley@redhat.com> * Makefile.in (profile.o): Add profile-fr400.h as a dependency. (profile-fr400.o): New target. * profile.c: New file. * profile.h: New file. * profile-fr400.c: New file. * profile-fr400.h: New file. * profile-fr500.c: New file. * profile-fr500.h: New file. * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate.2001-05-02 Dave Brolley <brolley@redhat.com> * sim-main.h (profile.h): #include it. (CPU_PROFILE_STATE): New macro. (profile_state): New frv specific cpu field. * reset.c (frv_initialize): insn_fetch_address and branch_address now part of global profiling state. * Makefile.in (SIM_OBJS): Add profile.o and profile-fr500.o. (SIM_EXTRA_DEPS): Add profile.h. (registers.o): Correct name of source file. (profile.o): New target. (profile-fr500.o): New target. * frv-sim.h: Move profile related data structures to profile.h. * frv.c: Move fr500 specific functions to profile-fr500.c. * cpu.h: Regenerated.2001-04-27 Dave Brolley <brolley@redhat.com> * sim-main.h (CPU_PIPELINE): Renamed to CPU_VLIW. * interrupts.c: Rename FRV_PIPELINE to FRV_VLIW. Rename pipeline to vliw. Rename CPU_PIPELINE to CPU_VLIW. Rename PIPE_* to UNIT_*. (frv_queue_illegal_instruction_interrupt): Use frv_is_float_insn and frv_is_media_insn. (frv_queue_non_implemented_instruction_interrupt): Ditto. (frv_detect_insn_access_interrupts): Ditto. * frv.c: Rename FRV_PIPELINE to FRV_VLIW. Rename pipeline to vliw. Rename CPU_PIPELINE to CPU_VLIW. Rename PIPE_* to UNIT_*. * memory.c: Ditto. * pipeline.c: Ditto. * mloop.in: Ditto. * frv-sim.h (frv_pipeline_setup_insn): Renamed to frv_vliw_setup_insn. * cache.c: Rename PIPE_* to UNIT_*.2001-04-24 Dave Brolley <brolley@redhat.com> * frv.c (frvbf_load_quad_GR): Delete have_data and hsr0. (frvbf_load_quad_FRint): Ditto. (frvbf_load_quad_CPR): Ditto. * cache.c (frv_cache_init): Initialize cache for fr400 vs other machines. (bfd.h): #include it. (non_cache_access): Update for revised fr500 and for fr400. * registers.c (frv_spr): Don't reset PSR.PS. (fr500_spr): Ditto. (frv_reset_spr): Set PSR.PS to the former value of PSR.S.2001-04-23 Dave Brolley <brolley@redhat.com> * traps.c (frv_core_signal): On fr400, generate data_access_error. (frvbf_media_cr_not_aligned): On fr400, generate illegal_instruction. (frvbf_media_acc_not_aligned): Ditto. (frvbf_media_register_not_aligned): Ditto. (frvbf_division_exception): Use GET_ISR_EDE. * registers.c (frv_check_spr_read_access): New function. (frv_check_spr_write_access): New function. (frv_check_spr_access): Deleted. (frv_check_register_access): On fr400, generate illegal_instruction. * memory.c (fr400_check_data_read_address): New function. (fr500_check_data_read_address): Ditto. (check_data_read_address): Ditto. (fr400_check_insn_read_address): Ditto. (fr500_check_insn_read_address): Ditto. (check_insn_read_address): Ditto. (frvbf_read_mem_QI): Call check_data_read_access. (frvbf_read_mem_UQI): Ditto. (frvbf_read_mem_HI): Ditto. (frvbf_read_mem_UHI): Ditto. (frvbf_read_mem_SI): Ditto. (frvbf_read_mem_DI): Ditto. (frvbf_read_mem_DF): Ditto. (frvbf_read_imem_USI): Call check_insn_read_access. (frv_address_forbidden): Now takes cpu as first argument. Check based on machine type. (fr400_mem_address_unaligned): New function. (fr500_mem_address_unaligned): Ditto. (check_write_address): Ditto. (frvbf_mem_set_QI): Call check_write_address. (frvbf_mem_set_HI): Ditto. (frvbf_mem_set_SI): Ditto. (frvbf_mem_set_DI): Ditto. (frvbf_mem_set_DF): Ditto. (frvbf_mem_set_XI): Ditto. * interrupts.c (bfd.h): #include it. (frv_queue_data_access_error_interrupt): New function. (frv_queue_instruction_access_error_interrupt): New function. (frv_queue_instruction_access_exception_interrupt): New function. (frv_queue_illegal_instruction_interrupt): No fp_exception on fr400. (frv_queue_non_implemented_instruction_interrupt): Ditto. (frv_detect_insn_access_interrupts): Reorder tests to match priority from the LSI manual. (set_isr_exception_fields): Accumulate dtt bits. * frv.c (check_register_alignment): New function. (check_fr_register_alignment): New function. (check_memory_alignment): New function. (frvbf_h_gr_double_get_handler): Call check_register_alignment. (frvbf_h_gr_double_set_handler): Ditto. (frvbf_h_cpr_double_get_handler): Ditto. (frvbf_h_cpr_double_set_handler): Ditto. (frvbf_h_gr_quad_set_handler): Ditto. (frvbf_h_cpr_quad_set_handler): Ditto. (frvbf_h_fr_double_get_handler): Call check_fr_register_alignment. (frvbf_h_fr_double_set_handler): Ditto. (frvbf_h_fr_quad_set_handler): Ditto. (frvbf_h_spr_get_handler): Call frv_check_spr_read_access. (frvbf_h_spr_set_handler): Call frv_check_spr_write_access. (frvbf_load_quad_GR): Call check_memory_aligment. (frvbf_load_quad_FRint): Ditto. (frvbf_load_quad_CPR): Ditto. (frvbf_store_quad_GR): Call check_memory_aligment and check_register_alignment. (frvbf_store_quad_FRint): Ditto. (frvbf_store_quad_CPR): Ditto. (frvbf_signed_integer_divide: Use GET_ISR_EDEM. * frv-sim.h (H_SPR_ACC0): New macro. (H_SPR_ACC63): New macro. (H_SPR_ACCG0): New macro. (H_SPR_ACCG63): New macro. (frv_dtt): New enumerator. (GET_ISR_EDE): Renamed from GET_ISR_EDEM. (GET_ISR_DTT): New macro. (frv_queue_data_access_error_interrupt): New function. (frv_queue_instruction_access_error_interrupt): New function. (frv_queue_instruction_access_exception_interrupt): New function. (frv_address_forbidden): Now takes cpu as first argument. * cpu.h: Regenerate.2001-04-10 Dave Brolley <brolley@redhat.com> * registers.c (fr500_spr): Add new fields to fr500 PSR register. (fr500_spr): Add STBAR and MMCR unimplemented registers for fr500. (fr400_spr): Implement SPR registers for fr400. (frv_register_control_init): Handle bfd_mach_fr400 properly. * frv.c (spr_bpsr_get_handler): Mask field before shifting. (spr_psr_get_handler): Ditto. (spr_ccr_get_handler): Ditto. (spr_cccr_get_handler): Ditto. (frvbf_clear_accumulators): Only 4 accumulators on fr400. * frv-sim.h: Update comment about MCCR_* macros. * cpu.c,cpu.h: Regenerate.2001-04-05 Dave Brolley <brolley@redhat.com> * cpu.h,decode.c,model.c,sem.c: Regenerate.2001-04-05 Dave Brolley <brolley@redhat.com> * reset.c: Update copyright. * registers.c (frv_register_control_init): Handle bfd_mach_fr400. * frv.c (frvbf_model_fr400_u_exec): New function. * Makefile.in (stamp-cpu): Add fr400 to list of machines. * arch.c,arch.h,cpu.c,cpu.h,cpuall.h,model.h,decode.c,decode.h,sem.c: Regenerate.2000-11-22 Dave Brolley <brolley@redhat.com> * arch.c,arch.h,cpu.c,cpu.h,cpuall.h,model.h,decode.c,decode.h,sem.c: Regenerate.2000-11-10 Dave Brolley <brolley@redhat.com> * decode.c: Regenerate.2000-09-12 Dave Brolley <brolley@redhat.com> * traps.c (frv_sim_engine_halt_hook): New function. (frv_itrap): Caches now invalidated in sim_engine_halt via SIM_ENGINE_HALT_HOOK. (frv_break): Ditto. * sim-main.h (frv_sim_engine_halt_hook): New function. (SIM_ENGINE_HALT_HOOK): New macro. (SIM_ENGINE_RESTART_HOOK): New macro. * interrupts.c: Call to frv_term now done within sim_engine_halt via SIM_ENGINE_HALT_HOOK.2000-09-08 Dave Brolley <brolley@redhat.com> * traps.c (frv_itrap): Invalidate and flush the data and insn caches respectively when stopping for a breakpoint. (frv_break): Ditto. * cache.h (frv_cache_invalidate_all): New function. * cache.c (frv_cache_invalidate_all): New function.2000-09-05 Dave Brolley <brolley@redhat.com> * traps.c (frv_break): If SIM_HAVE_BREAKPOINTS, call sim_handle_breakpoint. Otherwise if environment != operating call sim_engine_halt. Otherwise handle normally. * interrupts.c (frv_queue_break_interrupt): Don't handle debugger breakpoints here. Moved to frv_break in traps.c. * sem.c: Regenerate.2000-09-01 Dave Brolley <brolley@redhat.com> * interrupts.c (frv_queue_break_interrupt): Call sim_handle_breakpoint before queuing an interrupt in order to allow 'break' to be used as the breakpoint insn.2000-08-29 Dave Brolley <brolley@redhat.com> * traps.c (frv_itrap): Invalidate the insn cache at a breakpoint.2000-07-27 Dave Brolley <brolley@redhat.com> * cpu.h,decode.c: Rebuild.2000-07-26 Dave Brolley <brolley@redhat.com> * frv.c (spr_cccr_get_handler): Change CRx to CCx. (spr_cccr_set_handler): Change CRx to CCx. * cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.2000-07-24 Dave Brolley <brolley@redhat.com> * sem.c: Regenerate. * frv.c (frvbf_unsigned_integer_divide): Queue a write for the result. Don't write it directly.Thu Jul 6 13:51:12 2000 Dave Brolley <brolley@topaz> * configure: Regenerated to track ../common/aclocal.m4 changes.2000-07-05 Ben Elliston <bje@redhat.com> * configure: Regenerated to track ../common/aclocal.m4 changes.2000-06-28 Dave Brolley <brolley@redhat.com> * cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild.2000-06-21 Dave Brolley <brolley@redhat.com> * pipeline.c: All code except frv_pipeline_setup_insn moved to frv.opc. * mloop.in (main loop): frv_pipeline_add_insn broken up into frv_pipeline_add_insn and frv_pipeline_setup_insn. * frv-sim.h: Move pipeline status code to frv.opc. * model.c: Regenerate.2000-06-12 Dave Brolley <brolley@redhat.com> * options.c (frv_option_handler): --profile-parallel implies --profile-model. * mloop.in (fetch_buffer): Removed. (@cpu@_simulate_insn_prefetch): Monitoring of fetch buffer moved to run_caches. Use cache directly if not counting cycles. Don't use cache at all if not counting cycles and cache not enabled. * frv.c (frv_insn_fetch_buffer): New global variable. (run_caches): Monitor the status of insn prefetch requests. * frv-sim.h (FRV_INSN_FETCH_BUFFER): New struct type.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -