From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11860 invoked by alias); 12 Jun 2002 19:31:09 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 11798 invoked from network); 12 Jun 2002 19:31:05 -0000 Received: from unknown (HELO touchme.toronto.redhat.com) (216.138.202.10) by sources.redhat.com with SMTP; 12 Jun 2002 19:31:05 -0000 Received: from redhat.com (unknown [172.16.14.115]) by touchme.toronto.redhat.com (Postfix) with ESMTP id 0B4F2B8840 for ; Wed, 12 Jun 2002 15:31:05 -0400 (EDT) Message-ID: <3D07A17D.8030104@redhat.com> Date: Wed, 12 Jun 2002 12:31:00 -0000 From: Dave Brolley User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3 X-Accept-Language: en-us MIME-Version: 1.0 To: gdb-patches@sources.redhat.com Subject: [patch] New Target - Fujitsu FRV Content-Type: multipart/mixed; boundary="------------060102010504060002080204" X-SW-Source: 2002-06/txt/msg00192.txt.bz2 This is a multi-part message in MIME format. --------------060102010504060002080204 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 368 Hi, Attached is a patch which adds sim support for Fujitsu's FRV architecture targeting frv-elf, including models for the FR400 and FR500. This patch is part of a larger submission of bfd, gas, ld, binutils, sim, gdb and newlib for the FRV by Red Hat. The generated files will be included in a separate patch due to their size. Seeking approval to commit. Dave --------------060102010504060002080204 Content-Type: text/plain; name="frv.sim.ChangeLog" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="frv.sim.ChangeLog" Content-length: 96307 sim/ChangeLog: 2002-06-11 Dave Brolley * configure.in: Support frv-*-*. * frv: New sim. sim/common/ChangeLog: 2002-06-11 Dave Brolley * nltvals.def: Add frv syscalls. * gennltvals.sh: Handle frv. * cgen-par.h (CGEN_WRITE_QUEUE_ELEMENT): New members: flags, word1. (CGEN_WRITE_QUEUE_ELEMENT_FLAGS): New macro. (CGEN_WRITE_QUEUE_ELEMENT_WORD1): New macro. sim/frv/ChangeLog: 2001-10-11 Dave Brolley * cpu.h,decode.c,decode.h,sem.c: Regenerate. 2001-10-09 Dave Brolley * traps.c (frv_rett): Hallt if PSR.S and PSR.ET are both set or both not set. * reset.c (frv_hardware_reset): Invalidate both caches. * registers.c: Update init, reset and read-only masks for all registers on all machines. * profile.h (cur_gr_complex): New field of FRV_PROFILE_STATE (prev_gr_complex): New field of FRV_PROFILE_STATE (set_use_is_gr_complex): New function. (set_use_not_gr_complex): New function. (use_is_gr_complex): New function. (decrease_GR_busy): New function. * profile.c (reset_gr_flags): New function. (reset_cc_flags): New function. (set_use_is_gr_complex): New function. (set_use_not_gr_complex): New function. (use_is_gr_complex): New function. (update_latencies): Reset gr and cc flags when latency reaches 0. (decrease_GR_busy): New function. * profile-fr400.h (fr500_reset_acc_flags): Removed. (fr500_reset_cc_flags): New function. * profile-fr500.c (frvbf_model_fr400_u_*): Reflect latencies from fr500 LSI version 1.41. * profile-fr400.h (fr400_reset_gr_flags): New function. (fr400_reset_fr_flags): New function. (fr400_reset_acc_flags): New function. * profile-fr400.c (set_use_not_media_p4): New function. (set_use_not_media_p6): New function. (set_acc_use_not_media_p2): New function. (set_acc_use_not_media_p4): New function. (fr400_reset_gr_flags): New function. (fr400_reset_fr_flags): New function. (fr400_reset_acc_flags): New function. (frvbf_model_fr400_u_*): Reflect latencies from fr400 LSI version 1.1. (frvbf_model_fr400_u_media_hilo): New function. * pipeline.c (frv_vliw_setup_insn): Don't clear MSR0.MTT. * memory.c (fr400_check_data_read_address): Check address range only for double word loads. Don't check alignment here. (fr400_check_readwrite_address): New function. (fr500_check_readwrite_address): New function. (check_readwrite_address): New function. (fr500_check_insn_read_address): Correct address ranges. (frvbf_read_mem_*): Check address range here. (frv_address_forbidden): Removed. (fr400_check_write_address): New function. (check_write_address): New function. (frvbf_write_mem_*): Don't check address range here. (frvbf_mem_set_*): Check address range here. * interrupts.c (frv_queue_data_access_error_interrupt): Now takes an address as second argument. (frv_queue_data_access_exception_interrupt): New function. (frv_queue_illegal_instruction_interrupt): Generate fp_exception for media insns on fr400. (frv_queue_non_implemented_instruction_interrupt): Generate mp_exception for media insns on fr400. (frv_detect_insn_access_interrupts): Don't check for illegal addresses of insns here. Check for MTRAP insn if PSR.EM is not set. (frv_set_mp_exception_registers): Only set MSR0.MTT if it is not already set. (set_exception_status_registers): Do not always set EPCR. Set EAR for data_acess_error only if not fr400. * frv.c (do_media_average): New function. (frvbf_media_average): New function. (frvbf_insn_cache_invalidate): Check for illegal invocation. (frvbf_data_cache_invalidate): Ditto. (frvbf_data_cache_flush): Ditto. * frv-sim.h (GET_FSR_QNE): New macro. (frv_msr_mtt): Remove MTT_SEQUENCE_ERROR. (GET_MSR_SRDAV): New macro. (GET_MSR_RDAV): New macro. (GET_MSR_RD): New macro. (frv_queue_data_access_error_interrupt): Now takes an address as second argument. (frv_address_forbidden): Removed. * cache.c (non_cache_access): Correct address ranges. Now takes cache as first argument. * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 2001-08-20 Dave Brolley * sim-main.h (_sim_cpu): New field 'elf_flags'. * sim-if.c (sim_open): Extract the elf_flags from the input file and save them with each cpu. * mloop.in (main loop): Pass elf flags to frv_vliw_reset. Set last_insn_p before executing the insn. * cache.c (frv_cache_invalidate): Flush scache if this is the cpu's insn cache. (frv_cache_invalidate_all): Ditto. 2001-08-20 Richard Sandiford * traps.c (syscall_read_mem): Flush the data cache before reading. (syscall_write_mem): Flush the data cache before writing. Invalidate both caches. 2001-07-05 Ben Elliston * Makefile.in (stamp-arch): Use $(CGEN_CPU_DIR). (stamp-cpu): Likewise. 2001-05-23 Dave Brolley * profile-fr400.c (acc_use_is_media_p2): New function. (frvbf_model_fr400_u_media_2): Account for latency of output accumulators. (frvbf_model_fr400_u_media_2_quad): Ditto. (frvbf_model_fr400_u_media_2_acc): New function. (frvbf_model_fr400_u_media_2_acc_dual): New function. (frvbf_model_fr400_u_media_2_add_sub): New function. (frvbf_model_fr400_u_media_2_add_sub_dual): New function. (frvbf_model_fr400_u_media_3_dual): New function. (frvbf_model_fr400_u_media_4_acc_dual): New function. * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 2001-05-15 Dave Brolley * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * cpu.h,decode.c,model.c,sem.c: Regenerate. 2001-04-05 Dave Brolley * 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 * arch.c,arch.h,cpu.c,cpu.h,cpuall.h,model.h,decode.c,decode.h,sem.c: Regenerate. 2000-11-10 Dave Brolley * decode.c: Regenerate. 2000-09-12 Dave Brolley * 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 * 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 * 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 * 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 * traps.c (frv_itrap): Invalidate the insn cache at a breakpoint. 2000-07-27 Dave Brolley * cpu.h,decode.c: Rebuild. 2000-07-26 Dave Brolley * 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 * 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 * configure: Regenerated to track ../common/aclocal.m4 changes. 2000-07-05 Ben Elliston * configure: Regenerated to track ../common/aclocal.m4 changes. 2000-06-28 Dave Brolley * cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild. 2000-06-21 Dave Brolley * 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 * 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. (frv_insn_fetch_buffer): New global variable. 2000-06-12 Dave Brolley * mloop.in (fetch_buffer): New static struct. (@cpu@_simulate_insn_prefetch): Rewritten. * cache.c (frv_cache_request_invalidate): Don't invalidate return buffer. (address_interference): Defer to any WAR request in either pipeline. 2000-06-09 Dave Brolley * pipeline.c (insns_in_slot): New Array. (frv_pipeline_add_insn): Call COUNT_INSNS_IN_SLOT. * options.c (frv_options): Remove 'NONBLOCK' argument from data-cache option. (parse_cache_option): New function. (frv_option_handler): Call parse_cache_option. * frv.c (vliw_branch_taken): New variable. (vliw_load_stall): New variable. (handle_resource_wait): Update vliw_load_stall. (frvbf_model_insn_before): Initialize vliw_branch_taken and vliw_load_stall. (frvbf_model_insn_after): Increment PROFILE_MODEL_LOAD_STALL_CYCLES. (load_wait_for_FR): Update vliw_load_stall. (load_wait_for_GR): Update vliw_load_stall. (load_wait_for_FRdouble): Update vliw_load_stall. (load_wait_for_GRdouble): Update vliw_load_stall. (frvbf_model_fr500_u_branch): Count branches taken and not taken. (slot_names): New static array. (print_parallel): Now takes second argument 'verbose'. Print cycles per VLIW insn and instructions per cycle. Also tabulate the number of insns in each type of VLIW slot. (frv_profile_info): Call print_parallel with new second argument. * frv-sim.h (insn_in_slot): New array. (COUNT_INSNS_IN_SLOT): New macro. (INSNS_IN_SLOT): New macro. * cache.c: Remove references to non_blocking_count. Remove references to last_was_hit. Remove references to req_none. (handle_req_store): Adjust statistics before requeuing the store request. (handle_req_WAR): Don't let the WAR request affect the cache statistics. * cache.h: Remove references to non_blocking_count. Remove references to last_was_hit. Remove references to req_none. * model.c: Regenerate. 2000-06-08 Dave Brolley * frv.c (request_complete): Copy load data from the correct return buffer. 2000-06-07 Dave Brolley * traps.c (frv_core_signal): Call frv_term before exiting. (frv_itrap): Call frv_term before exiting. (next_available_nesr): Make sure NECR is implemented before reading it. (next_valid_nesr): Ditto. (frvbf_check_non_excepting_load): Ditto. (frvbf_clear_ne_flags): Ditto. (frvbf_commit): Ditto. (frvbf_check_recovering_store): Delay cache operation if 'model_insn'. * sim-main.h (_sim_cpu): Add load_address, load_length, load_flag and store_flag members. (CPU_LOAD_ADDRESS): New macro. (CPU_LOAD_LENGTH): New macro. (CPU_LOAD_SIGNED): New macro. (CPU_LOAD_LOCK): New macro. * reset.c (frv_term): New function. (frv_power_on_reset): Use SETMEMSI if the cache is not enabled. (frv_hardware_reset): Use SETMEMSI if the cache is not enabled. (frv_software_reset): Use SETMEMSI if the cache is not enabled. * mloop.in (execute): Call FRV_COUNT_CYCLES to decide whether to model the insn. Model the insn in two passes. One before and one after execution. (cache_reqno): new static variable. (@cpu@_simulate_insn_prefetch): Model fetch latency by waiting for the cache rather than assuming a fixed latency. (xinit): Turn on PROFILE_MODEL_P before each vliw insn if the timer is enabled so that modeling data is collected by cgen during execution. (full-exec): Restore PROFILE_MODEL_P after each vliw insn. * memory.c (data_non_cache_access): Removed. (insn_non_cache_access): Removed. (frvbf_read_mem_QI): Delay read operation if 'model_insn'. (frvbf_read_mem_UQI): Delay read operation if 'model_insn'. (frvbf_read_mem_HI): Delay read operation if 'model_insn'. (frvbf_read_mem_UHI): Delay read operation if 'model_insn'. (frvbf_read_mem_SI): Delay read operation if 'model_insn'. (frvbf_read_mem_DI): Delay read operation if 'model_insn'. (frvbf_read_mem_DF): Delay read operation if 'model_insn'. (frvbf_read_imem_USI): Read the cache or ememory passively. (frvbf_write_mem_QI): Don't check for non-cache access here. (frvbf_write_mem_UQI): Call frvbf_write_mem_QI. (frvbf_write_mem_HI): Don't check for non-cache access here. (frvbf_write_mem_UHI): Call frvbf_write_mem_QI. (frvbf_write_mem_SI): Don't check for non-cache access here. (frvbf_write_mem_DI): Don't check for non-cache access here. (frvbf_write_mem_DF): Don't check for non-cache access here. (frvbf_mem_set_QI): Use cycle-accurate cache write if 'model_insn'. (frvbf_mem_set_HI): Use cycle-accurate cache write if 'model_insn'. (frvbf_mem_set_SI): Use cycle-accurate cache write if 'model_insn'. (frvbf_mem_set_DI): Use cycle-accurate cache write if 'model_insn'. (frvbf_mem_set_DF): Use cycle-accurate cache write if 'model_insn'. (frvbf_mem_set_XI): Use cycle-accurate cache write if 'model_insn'. * interrupts.c (check_reset): Read the cache and memory passively. (frv_program_or_software_interrupt): Call frv_term before calling sim_engine_halt. * frv.c (all modeling functions): Break into two passes. One before execuetion and one after. call load_wait_for_* for all GR and FR registers. (frvbf_load_quad_GR): Delay performing the load if 'model_insn'. (frvbf_load_quad_FRint): Delay performing the load if 'model_insn'. (frvbf_load_quad_CPR): Delay performing the load if 'model_insn'. (frvbf_insn_cache_preload): Delay cache operation if 'model_insn'. (frvbf_data_cache_preload): Delay cache operation if 'model_insn'. (frvbf_insn_cache_unlock): Delay cache operation if 'model_insn'. (frvbf_data_cache_unlock): Delay cache operation if 'model_insn'. (frvbf_insn_cache_invalidate): Delay cache operation if 'model_insn'. (frvbf_data_cache_invalidate): Delay cache operation if 'model_insn'. (frvbf_data_cache_flush): Delay cache operation if 'model_insn'. (model_insn): New global variable. (fr_ptime): New array. (cache_request): New enumeration. (CACHE_QUEUE_ELEMENT): New struct type. (CACHE_QUEUE_SIZE): New macro. (cache_queue): New static struct. (request_cache_load): New function. (request_cache_flush): New function. (request_cache_invalidate): New function. (request_cache_preload): New function. (request_cache_unlock): New function. (submit_cache_request): New function. (activate_cache_requests): New function. (load_pending_for_register): New function. (flush_pending_for_address): New function. (remove_cache_queue_element): New function. (copy_load_data): New function. (request_complete): New function. (run_caches): New function. (frv_model_trace_wait_cycles): New function. (wait_for_flush): New function. (frvbf_model_insn_before): Insn prefect wait now modeled in frvbf_simulate_insn_prefetch. Incremement vliw_insns here. Call wait_for_flush. (frvbf_model_insn_after): Call activate_cache_requests. Don't increment vliw_insns here anymore. (update_FR_latency_for_load): New function. (update_FRdouble_latency_for_load): New function. (update_FR_ptime): New function. (update_FRdouble_ptime): New function. (update_GR_latency_for_swap): New function. (load_wait_for_GR): New function. (load_wait_for_FR): New function. (load_wait_for_GRdouble): New function. (load_wait_for_FRdouble): New function. (frvbf_model_fr500_u_ici): New function. (frvbf_model_fr500_u_dci): New function. (frvbf_model_fr500_u_dcf): New function. (frvbf_model_fr500_u_icpl): New function. (frvbf_model_fr500_u_dcpl): New function. (frvbf_model_fr500_u_icul): New function. (frvbf_model_fr500_u_dcul): New function. * frv-sim.h (frv_term): New function. (insn_non_cache_access): Removed. (FRV_COUNT_CYCLES): New macro. (frv_save_peofile_model_p): New global variable. (model_insn): New enumerated global variable. (frv_model_advance_cycles): New function. (frv_model_trace_wait_cycles): New function. * cache.h (FRV_CACHE_REQUEST_KIND): New enumeration. (FRV_CACHE_WAR_REQUEST): New struct type. (FRV_CACHE_STORE_REQUEST): New struct type. (FRV_CACHE_INVALIDATE_REQUEST): New struct type. (FRV_CACHE_PRELOAD_REQUEST): New struct type. (FRV_CACHE_REQUEST): New struct type. (FRV_CACHE_RETURN_BUFFER): New struct type. (FRV_CACHE_FLUSH_STATUS): New struct type. (FRV_CACHE_STATUS): New struct type. (FRV_CACHE_STAGE): New struct type. (FRV_CACHE_STAGES): New enumeration. (FRV_CACHE_WAR): New struct type. (FRV_CACHE_PIPELINE): New struct type. (FRV_CACHE_ARS): New struct type. (FRV_CACHE_STATISTICS): New struct type. (FRV_CACHE): Add pipeline, statistics, BARS and NARS. (CACHE_RETURN_DATA): 'return_buffer' is now within 'status'. (CACHE_RETURN_DATA_ADDRESS): New macro. (frv_cache_read): Now takes pipe index as second argument. (frv_cache_enabled): New function. (frv_cache_request_load): New function. (frv_cache_request_store): New function. (frv_cache_request_invalidate): New function. (frv_cache_request_preload): New function. (frv_cache_request_unlock): New function. (frv_cache_run): New function. (frv_cache_read_passive_SI): New function. (frv_cache_data_in_buffer): New function. (frv_cache_data_flushed): New function. * cache.c (frv_cache_init): Initialize pipelines and xARS registers. (frv_cache_enabled): New function. (non_cache_access): New function. (write_data_to_memory): Count write accesses for each mode. Write to memory using sim_core_write_unaligned_1; (read_data_from_memory): New function. (fill_line_from_memory): Use read_data_from_memory. (copy_line_to_return_buffer): New function. (copy_memory_to_return_buffer): New function. (set_return_buffer_reqno): New function. (frv_cache_read): Now takes pipe index as second argument. Check for non-cache access. (frv_cache_preload): Check for non-cache access. (frv_cache_unlock): Check for non-cache access. (invalidate_return_buffer): New function. (frv_cache_invalidate): Check for non-cache access. (convert_slot_to_index): New function. (FREE_CHAIN_SIZE): New macro. (frv_cache_request_free_chain): New static variable. (frv_store_request_free_chain): New static variable. (allocate_new_cache_requests): New function. (new_cache_request): New function. (free_cache_request): New function. (new_store_request): New function. (pipeline_remove_request): New function. (pipeline_add_request): New function. (pipeline_requeue_request): New function. (next_priority): New function. (add_WAR_request): New function. (pipeline_next_request): New function. (pipeline_stage_request): New function. (advance_pipelines): New function. (frv_cache_request_load): New function. (frv_cache_request_store): New function. (frv_cache_request_invalidate): New function. (frv_cache_request_preload): New function. (frv_cache_request_unlock): New function. (address_interference): New function. (wait_for_WAR): New function. (wait_in_WAR): New function. (handle_req_load): New function. (handle_req_preload): New function. (handle_req_store): New function. (handle_req_invalidate): New function. (handle_req_unlock): New function. (handle_req_WAR): New function. (arbitrate_requests): New function. (move_ARS_to_WAR): New function. (decrease_latencies): New function. (frv_cache_run): New function. (frv_cache_read_passive_SI): New function. (frv_cache_data_in_buffer): New function. (frv_cache_data_flushed): New function. * arch.h,decode.c,decode.h,model.c,sem.c: Rebuild. Wed May 24 14:40:34 2000 Andrew Cagney * configure: Regenerated to track ../common/aclocal.m4 changes. 2000-05-19 Dave Brolley * traps.c (frv_rett): Check for exceptions in the order specified in the architecture spec. Allow privileged_instruction interrrupt to be handled normally. * registers.c (frv_register_control_init): Handle bfd_mach_frvtomcat. * frv.c (frvbf_signed_integer_divide): Use updated dtt to decide whether to clear the NE flag. (frvbf_model_tomcat_u_exec): New function. * frv-sim.h (frvbf_division_exception): Now returns updated dtt. * Makefile.in (stamp-cpu): Add 'tomcat' to 'mach' value. * arch.c,arch.h,cpu.h,cpuall.h,model.h,decode.c,sem.c: Regenerate. 2000-05-18 Dave Brolley * sim-if.c (elf-bfd.h): #include it. (sim_open): Set machine amd architecture based on elf flags. 2000-04-04 Dave Brolley * frv-sim.h (frv_h_psr_esr_set_handler): Removed. Delete '#if 0' blocks. * frv.c: Delete '#if 0' blocks. (spr_psr_set_handler): Remove special handling for circular referencing of handlers for PSR.S and PSR.ESR. (frv_h_psr_esr_set_handler): Removed. * interrupts.c: Delete '#if 0' blocks. * memory.c: Delete '#if 0' blocks. * cpu.c,cpu.h: Regenerate. 2000-04-03 Dave Brolley * traps.c (frvbf_check_recovering_store): Invalidate data cache line containing the target address. (clear_nesr_neear): No longer takes hi_available and lo_available. Remove bogus check for available GR registers. (frvbf_clear_ne_flags): Update call to clear_nesr_neear. (frvbf_commit): Update call to clear_nesr_neear. * interrupts.c (next_available_esr): Removed. (next_available_edr): Removed. (next_available_fq): Removed. * frv.c (frvbf_fetch_register): Remove "FIXME" comment. (frvbf_store_register): Remove "FIXME" comment. * frv-sim.h (UART_INCHAR_ADDR): Removed. (UART_OUTCHAR_ADDR): Removed. (UART_STATUS_ADDR): Removed. (UART_INPUT_READY): Removed. (UART_OUTPUT_READY): Removed. (FRV_DEVICE_ADDR): Removed. (FRV_DEVICE_LEN): Removed. (SET_NESR): Call frvbf_force_update. (SET_NEEAR): Call frvbf_force_update. (SET_NE_FLAGS): Call frvbf_force_update. 2000-03-30 Dave Brolley * configure: Regenerated. 2000-03-30 Dave Brolley * registers.c (fr500_spr): Define ESR14-15 and EPCSR14-15 for fr500. * memory.c (frvbf_write_mem_*): Save slot containing the insn performing the write. (frvbf_mem_set_*): Overwrite the slot information of the interrupt queue element with the information in the interrupt state. * interrupts.c (frv_queue_interrupt): Call frv_set_interrupt_queue_slot. (frv_queue_fp_exception_interrupt): Initialize 'new_element'. (frv_set_interrupt_queue_slot): New function. (esr_for_data_access_exception): New function. (set_edr_register): edr_index is now passed in. (fq_for_exception): New function. (set_fp_exception_registers): Call fq_for_exception. Interrupt queue element now passed in. (set_exception_status_registers): Obtain slot from interrupt queue element. Call esr_for_data_access_exception. Use ESR14 for data_store_error. Use ESR15 for data_access_error. Use EDR0. (frv_save_data_written_for_interrupts): Save slot containing the insn performing the write. * frv-sim.h (struct frv_fp_exception_info): Use frv_fsr_traps and frv_fsr_ftt. (struct frv_interrupt_state): Add 'slot' field. (frv_set_interrupt_queue_slot): New function. (frv_set_write_queue_slot): New function. 2000-03-24 Dave Brolley * mloop.in (_parallel_write_init): Initialize frv_interrupt_state.imprecise_interrupt. (_parallel_write_queued): After an imprecise interrupt, only perform forced writes and floating point writes (for certain exceptions). * interrupts.c (handle_interrupt): Set frv_interrupt_state.imprecise_interrupt for writeback after an imprecise interrupt. (frv_process_interrupts): No need to clear f_ne_flags. * frv.c (frvbf_signed_integer_divide): Queue writes to GR registers and force them to happen even if there is an overflow exception. (frvbf_force_update): New function. * frv-sim.h (frvbf_force_update): New function. (struct frv_interrupt_state): Add imprecise_interrupt. (FRV_WRITE_QUEUE_FORCE_WRITE): New macro. * sem.c: Regenerate. 2000-03-23 Dave Brolley * traps.c (frv_rett): Queue FRV_ILLEGAL_INSTRUCTION directly. * registers.c (frv_spr): MCIRL -> MCILR. * interrupts.c (frv_queue_non_implemented_instruction_interrupt): New function. (frv_detect_insn_access_interrupts): Call frv_queue_non_implemented_instruction_interrupt. (frv_process_interrupts): Clear accumulated NE flags. * frv.c (frvbf_media_cop): New function. (frvbf_set_ne_index): Now takes (SIM_CPU *) as first argument. Clear the NE flag of the given target register. (frvbf_model_fr500_u_float_arith): Account for FRdouble registers. (frvbf_model_fr500_u_float_dual_arith): Account for FRdouble registers. (frvbf_model_fr500_u_float_dual_sqrt): New function. (frvbf_model_fr500_u_float_convert): Account for FRdouble registers. (frvbf_model_fr500_u_float_dual_convert): New function. * frv-sim.h (frvbf_media_cop): New function. (GET_FQ): Use H_SPR_FQST0. (SET_FQ): Use H_SPR_FQST0. (SET_FQ_OPC): Use J_SPR_FQOP0. (GET_MSR_EMCI): New macro. (frv_queue_non_implemented_instruction_interrupt): New function. * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 2000-03-08 Dave Brolley * traps.c (frv_rett): Align new_pc. * memory.c (frvbf_read_mem_HI): Align address. (frvbf_read_mem_UHI): Align address. (frvbf_read_mem_SI): Align address. (frvbf_read_mem_DI): Align address. (frvbf_read_mem_DF): Align address. (frvbf_read_imem_USI): Align address. (frvbf_mem_set_HI): Align address. (frvbf_mem_set_SI): Align address. (frvbf_mem_set_DI): Align address. (frvbf_mem_set_DF): Align address. (frvbf_mem_set_XI): Align address. * registers.c (frv_spr): Initialize FSR0.NS to 1. (fr500_spr): Initialize FSR0.NS to 1. * interrupts.c (frv_queue_mem_address_not_aligned_interrupt): Check whether the exception is masked. * frv.c (frvbf_load_quad_GR): Align address. (frvbf_store_quad_GR): Align address. (frvbf_load_quad_FRint): Align address. (frvbf_store_quad_FRint): Align address. (frvbf_load_quad_CPR): Align address. (frvbf_store_quad_CPR): Align address. * frv-sim.h (GET_ISR_EMAM): New macro. 2000-03-08 Dave Brolley * traps.c (frvbf_division_exception): Check for masked overflow and set NE flags, if necessary. (frvbf_check_recovering_store): Queue writes to the hardware. (check_registers_available): Removed. (which_registers_available): Call frv_{fr,gr}_registers_available. (frvbf_clear_ne_flags): Call check_register_access. (frvbf_commit): Call check_register_access. * registers.h (frv_fr_registers_available): New function. (frv_gr_registers_available): New function. (frv_check_register_access): New function. (frv_check_gr_access): New function. (frv_check_fr_access): New function. * registers.c (frv_spr): Correct initial value of ISR. (fr500_spr): Correct initial value of ISR. (frv_fr_registers_available): New function. (frv_gr_registers_available): New function. (frv_check_register_access): New function. (frv_check_gr_access): New function. (frv_check_fr_access): New function. * interrupts.c (frv_queue_division_exception_interrupt): New function. (set_isr_exception_fields): New function. (set_exception_status_registers): Set ISR fields for division exception. (frv_save_data_written_for_interrupts): Handle CGEN_FN_SF_WRITE. * frv.c (frvbf_h_gr_get_handler): New function. (frvbf_h_gr_set_handler): New function. (frvbf_h_fr_get_handler): New function. (frvbf_h_fr_set_handler): New function. (frvbf_h_spr_get_handler): Remove special handling for ISR. (frvbf_h_spr_set_handler): Remove special handling for ISR. (spr_isr_get_handler): Removed. (spr_isr_set_handler): Removed. (frvbf_signed_integer_divide): New funciton. (frvbf_unsigned_integer_divide): New funciton. * frv-sim.h (frvbf_h_gr_get_handler): New function. (frvbf_h_gr_set_handler): New function. (frvbf_h_fr_get_handler): New function. (frvbf_h_fr_set_handler): New function. (frvbf_signed_integer_divide): New funciton. (frvbf_unsigned_integer_divide): New funciton. (frv_dtt): New enumeration. (struct frv_interrupt_queue_element): Add dtt member. (GET_ISR): New macro. (SET_ISR): New macro. (GET_ISR_EDEM): New macro. (SET_ISR_DTT): New macro. (SET_ISR_AEXC): New macro. (frvbf_division_exception): Add 2 'int' arguments. (frvbf_check_non_excepting_divide): Removed. * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 2000-02-29 Dave Brolley * traps.c (frv_itrap): Use GET_H_GR, SET_H_GR, GET_H_FR. (frv_rett): Use hardware access macros. Write PSR as a whole. (next_available_nesr): Check that NECR is valid. (next_valid_nesr): Check that NECR is valid. (frvbf_check_non_excepting_load): User new NECR access macros. Don't call hardware access functions. Use cover macros. (check_registers_available): New function. (clear_nesr_near): Check register availability. (clear_ne_flags): Check register availability. (frvbf_clear_ne_flags): Check register availability. (frvbf_commit): Check register availability. (which_registers_available): New function. * sim-main.h (registers.h): #include it. (register_control): New cpu field. (CPU_REGISTER_CONTROL): New macro. * reset.c (frv_initialize): Set HSR0 fields for cache here. (frv_power_on_reset): Initialize SPR registers and RSTR. (frv_hardware_reset): Initialize SPR registers and RSTR. (frv_software_reset): Reset SPR registers and RSTR. * options.c (frv_option_handler): Don't set HSR0 fields for cache here. Call frv_cache_init. * mloop.in (main loop): Check for insn access interrupts before executing the insn. * interrupts.c (frv_queue_external_interrupt): Use GET_H_PSR_ET. (frv_detect_insn_access_interrupts): Don't call hardware access functions directly. Use cover macros. (check_reset): Don't reset RSTR here. (next_available_esr): ESFR -> ESFR_FLAG. (next_available_edr): ESFR -> ESFR_FLAG. (clear_exception_status_registers): Use GET_ESFR and SET_ESFR. ESFR -> ESFR_FLAG. (frv_break_interrupt): Don't call hardware access functions directly. Use cover macros. (frv_program_or_software_interrupt): Ditto. (frv_external_interrupt): Ditto. * frv.c (frvbf_fetch_register): Don't call 'get' functions directly. (frvbf_store_register): Don't call 'set' functions directly. (frvbf_h_gr_double_get_handler): Use GET_H_GR. (frvbf_h_gr_double_set_handler): Use SET_H_GR. (frvbf_h_fr_double_get_handler): Use GET_H_FR. (frvbf_h_fr_double_set_handler): Use SET_H_FR. (frvbf_h_fr_int_get_handler): Use GET_H_FR. (frvbf_h_fr_int_set_handler): Use SET_H_FR. (frvbf_h_cpr_double_get_handler): Use GET_H_CPR. (frvbf_h_cpr_double_set_handler): Use SET_H_CPR. (frvbf_h_gr_quad_set_handler): Use SET_H_GR. (frvbf_h_fr_quad_set_handler): Use SET_H_FR. (frvbf_h_spr_get_handler): Check SPR access. Call renamed functions. Support shadow registers. (frvbf_h_spr_set_handler): Check SPR access. Call renamed functions. Support shadow registers. (spr_psr_get_handler): Renamed from frvbf_h_psr_get_handler. (spr_psr_set_handler): Renamed from frvbf_h_psr_set_handler. (spr_tbr_get_handler): Renamed from frvbf_h_tbr_get_handler. (spr_tbr_set_handler): Renamed from frvbf_h_tbr_set_handler. (spr_bpsr_get_handler): Renamed from frvbf_h_bpsr_get_handler. (spr_bpsr_set_handler): Renamed from frvbf_h_bpsr_set_handler. (spr_ccr_get_handler): Renamed from frvbf_h_ccr_get_handler. (spr_ccr_set_handler): Renamed from frvbf_h_ccr_set_handler. (spr_lr_get_handler): Renamed from frvbf_h_lr_get_handler. (spr_lr_set_handler): Renamed from frvbf_h_lr_set_handler. (spr_cccr_get_handler): Renamed from frvbf_h_cccr_get_handler. (spr_cccr_set_handler): Renamed from frvbf_h_cccr_set_handler. (spr_isr_get_handler): Renamed from frvbf_h_isr_get_handler. (spr_isr_set_handler): Renamed from frvbf_h_isr_set_handler. (spr_sr_get_handler): Renamed from frvbf_h_sr_get_handler. (spr_sr_set_handler): Renamed from frvbf_h_sr_set_handler. (frvbf_h_psr_esr_set_handler): Update to conform to FRV architecture version 1.3a. (spr_ccr_get_handler): Don't reference the hardware directly. (spr_ccr_set_handler): Don't reference the hardware directly. (spr_cccr_get_handler): Don't reference the hardware directly. (spr_cccr_set_handler): Don't reference the hardware directly. (spr_sr_get_handler): New function. (spr_sr_set_handler): New function. (frvbf_switch_supervisor_user_context): Temporarily switch to supervisor mode. (frvbf_store_quad_GR): Don't call handler directly. (frvbf_store_quad_FRint): Don't call handler directly. (frvbf_store_quad_CPR): Don't call handler directly. (frvbf_clear_all_accumulators): Removed. (frvbf_clear_accumulators): New function. (frvbf_model_fr500_u_media): Expand busy_adjustment to 8 members. Account for in_ACCGi and out_ACCGk. * frv-sim.h (RSTR_HARDWARE_RESET): New macro. (RSTR_SOFTWARE_RESET): New macro. (spr_psr_get_handler): Renamed from frvbf_h_psr_get_handler. (spr_psr_set_handler): Renamed from frvbf_h_psr_set_handler. (spr_tbr_get_handler): Renamed from frvbf_h_tbr_get_handler. (spr_tbr_set_handler): Renamed from frvbf_h_tbr_set_handler. (spr_bpsr_get_handler): Renamed from frvbf_h_bpsr_get_handler. (spr_bpsr_set_handler): Renamed from frvbf_h_bpsr_set_handler. (spr_ccr_get_handler): Renamed from frvbf_h_ccr_get_handler. (spr_ccr_set_handler): Renamed from frvbf_h_ccr_set_handler. (spr_lr_get_handler): Renamed from frvbf_h_lr_get_handler. (spr_lr_set_handler): Renamed from frvbf_h_lr_set_handler. (spr_cccr_get_handler): Renamed from frvbf_h_cccr_get_handler. (spr_cccr_set_handler): Renamed from frvbf_h_cccr_set_handler. (spr_isr_get_handler): Renamed from frvbf_h_isr_get_handler. (spr_isr_set_handler): Renamed from frvbf_h_isr_set_handler. (spr_sr_get_handler): Renamed from frvbf_h_sr_get_handler. (spr_sr_set_handler): Renamed from frvbf_h_sr_set_handler. (frvbf_clear_all_accumulators): Removed. (frvbf_clear_accumulators): New function. (GET_HSR0): Use GET_H_SPR. (SET_HSR0): Use SET_H_SPR. (CLEAR_HSR0_ICE): New macro. (CLEAR_HSR0_DCE): New macro. (GET_IHSR8): Use GET_H_SPR. (GET_PSR): New macro. (SET_PSR_ET): New macro. (GET_PSR_PS): New macro. (SET_PSR_S): New macro. (GET_ESFR): Changed to reference entire register. (SET_ESFR): Changed to reference entire register. (GET_ESFR_FLAG): New macro. (SET_ESFR_FLAG): New macro. (NECR_ELOS): Removed. (NECR_NEN): Removed. (NECR_VALID): Removed. (GET_NECR): New macro. (GET_NECR_ELOS): New macro. (GET_NECR_NEN): New macro. (GET_NECR_VALID): New macro. (NESR_RANGE): Removed. (GET_NESR): Use GET_H_SPR. (GET_NE_FLAGS): Use GET_H_SPR. * cache.h (CACHE_INITIALIZED): New macro. * Makefile.in (SIM_OBJS): Add registers.o. (SIM_EXTRA_DEPS): Add registers.h. (registers.o): New target. * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 2000-02-17 Dave Brolley * interrupts.c (frv_interrupt_table): Update priority order and handler offsets to conform to the architecture version 1.3a. * frv-sim.h (frv_interrupt_kind): Update priority order to conform to the architecture version 1.3a. 2000-02-17 Dave Brolley * interrupts.c (frv_interrupt_table): Update priority order and handler offsets to conform to the latest specifications. (frv_queue_interrupt): Correct comment. Identical interrupts can be queued. New variable 'iclass' used to test for external interrupts. * frv-sim.h (frv_interrupt_kind): Update priority order to conform to the latest specifications. 2000-01-20 Dave Brolley * sim-if.c (sim_open): Move frv-specific initialization to frv_initialize in reset.c. * interrupts.c (check_reset): Use RSTR_ADDRESS. Check and reset RSTR status bits for hardware vs software reset. * reset.c: New file. * frv-sim.h (frv_initialize): New function. (frv_power_on_reset): New function. (frv_hardware_reset): New function. (frv_software_reset): New function. (RSTR_ADDRESS): New macro. (RSTR_INITIAL_VALUE): New macro. (GET_RSTR_HR): New macro. (GET_RSTR_SR): New macro. (SET_RSTR_H): New macro. (SET_RSTR_S): New macro. (CLEAR_RSTR_P): New macro. (CLEAR_RSTR_H): New macro. (CLEAR_RSTR_S): New macro. (CLEAR_RSTR_HR): New macro. (CLEAR_RSTR_SR): New macro. 2000-01-03 Dave Brolley * mloop.in (execute): Only call modeling function if the pointer is not NULL. * frv.c (frvbf_model_insn_after): Only access FR500_MODEL_DATA for fr500. 2000-01-03 Dave Brolley * options.c (OPTION_FRV_MEMORY_LATENCY): New enumerator. (frv_options): Add --memory-latency. (frv_option_handler): Handle FRV_OPTION_MEMORY_LATENCY. * mloop.in (@cpu@_simulate_insn_prefetch): Use cache memory_latency. * frv.c (SET_ACC_USE_IS_MEDIA_P1): operate on d->curr_acc_p1 (SET_ACC_USE_NOT_MEDIA_P1): operate on d->curr_acc_p1 (SET_ACC_USE_IS_MEDIA_P2): operate on d->curr_acc_p1 (SET_ACC_USE_NOT_MEDIA_P2): operate on d->curr_acc_p1 (update_latencies): Only clear usage flags if the register has no target latency. (frvbf_model_insn_before): Update cur_acc_p1 and cur_acc_p2. Use | (or) not |= (or assgnment). (frvbf_model_insn_after): Print post processing wait for all insns. Update prev_acc_p1 and prev_acc_p2. (frvbf_model_fr500_u_gr_load_store): Use cache memory_latency. (frvbf_model_fr500_u_fr_load_store): Use cache memory_latency. (frvbf_model_fr500_u_swap): Use cache memory_latency. (frvbf_model_fr500_u_media): Use busy_adjustment[4] for out_ACC40Sk. (frvbf_model_fr500_u_media): Use busy_adjustment[5] for out_ACC40Uk. (frvbf_model_fr500_u_media_quad_arith): New function. (frvbf_model_fr500_u_media_dual_mul): New function. (frvbf_model_fr500_u_media_quad_mul): New function. (frvbf_model_fr500_u_media_quad_complex): New function. (frvbf_model_fr500_u_media_dual_expand): New function. (frvbf_model_fr500_u_media_dual_unpack): New function. (frvbf_model_fr500_u_media_dual_btoh): New function. (frvbf_model_fr500_u_media_dual_htob): New function. (frvbf_model_fr500_u_media_dual_btohe): New function. (frv_ref_SI): New function. * cache.h (FRV_CACHE): Add memory_latency field. * cache.c (frv_cache_init): Initialize memory_latency. * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-12-17 Dave Brolley * sim-if.c (sim_open): Initialize insn prefetch and reset register. * options.c (OPTIONS_FRV_PROFILE_CACHE): New enumeration. (OPTIONS_FRV_PROFILE_PARALLEL): New enumeration. (OPTIONS_FRV_TIMER): New enumeration. (frv_options): Add --profile-cache, --profile-parallel, --timer. (frv_option_handler): Override common implementation of -p. Handle --profile-cache, --profile-parallel, --timer. * mloop.in (execute): Call profiling functions if the timer interrupt is enabled. (@cpu@_simulate_insn_prefetch): New function. (main loop): Call @cpu@_simulate_insn_prefetch. * interrupts.c (frv_queue_interrupt): Don't queue two external interrupts of the same priority. (frv_queue_external_interrupt): New function. (frv_external_interrupt): New function. (handle_interrupt): Handle external interrupts. (check_reset): New function. (frv_process_interrupts): Call check_reset. * frv.c: Include "bfd.h" (frvbf_h_psr_get_handler): Set the PIL field. (frvbf_h_psr_set_handler): Get the PIL field. (DUAL_REG): New macro. (DUAL_DOUBLE): New macro. (SET_USE_IS_FPOP): New macro. (SET_USE_NOT_FPOP): New macro. (USE_IS_FPOP): New macro. (SET_USE_IS_MEDIA): New macro. (SET_USE_NOT_MEDIA): New macro. (USE_IS_MEDIA_P1): New macro. (SET_USE_IS_MEDIA_P1): New macro. (SET_USE_NOT_MEDIA_P1): New macro. (SET_USE_IS_MEDIA_P2): New macro. (SET_USE_NOT_MEDIA_P2): New macro. (USE_IS_MEDIA_P2): New macro. (SET_ACC_USE_IS_MEDIA_P1): New macro. (SET_ACC_USE_NOT_MEDIA_P1): New macro. (ACC_USE_IS_MEDIA_P1): New macro. (SET_ACC_USE_IS_MEDIA_P2): New macro. (SET_ACC_USE_NOT_MEDIA_P2): New macro. (ACC_USE_IS_MEDIA_P2): New macro. (RESOURCE_IDIV): New macro. (RESOURCE_FDIV): New macro. (RESOURCE_SQRT): New macro. (fr_busy_adjust): New array. (acc_busy_adjust): New array. (apply_latency_adjustments): New function. (update_latencies): New function. (handle_wait_cycles): New function. (handle_resource_wait): New function. (update_target_latencies): New function. (frvbf_model_insn_before): Add resource latency to cycle counts. (frvbf_model_insn_after): Add resource latency to cycle counts. (update_GR_latency): New function. (update_GRdouble_latency): New function. (update_FR_latency): New function. (update_FRdouble_latency): New function. (decrease_ACC_busy): New function. (decrease_FR_busy): New function. (increase_FR_busy): New function. (update_ACC_latency): New function. (update_CCR_latency): New function. (update_idiv_resource_latency): New function. (update_fdiv_resource_latency): New function. (update_fsqrt_resource_latency): New function. (vliw_wait_for_GR): New function. (vliw_wait_for_GRdouble): New function. (vliw_wait_for_FR): New function. (vliw_wait_for_FRdouble): New function. (vliw_wait_for_CCR): New function. (vliw_wait_for_ACC): New function. (vliw_wait_for_idiv_resource): New function. (vliw_wait_for_fdiv_resource): New function. (vliw_wait_for_fsqrt_resource): New function. (enforce_full_fr_latency): New function. (frvbf_model_fr500_u_exec): New function. (frvbf_model_fr500_u_integer): New function. (frvbf_model_fr500_u_imul): New function. (frvbf_model_fr500_u_idiv): New function. (frvbf_model_fr500_u_branch): New function. (frvbf_model_fr500_u_set_hilo): New function. (frvbf_model_fr500_u_gr_load_store): New function. (frvbf_model_fr500_u_fr_load_store): New function. (frvbf_model_fr500_u_swap): New function. (frvbf_model_fr500_u_fr2fr): New function. (frvbf_model_fr500_u_fr2gr): New function. (frvbf_model_fr500_u_spr2gr): New function. (frvbf_model_fr500_u_gr2fr): New function. (frvbf_model_fr500_u_gr2spr): New function. (post_wait_for_FR): New function. (post_wait_for_FRdouble): New function. (post_wait_for_ACC): New function. (post_wait_for_CCR): New function. (post_wait_for_fdiv): New function. (post_wait_for_fsqrt): New function. (adjust_float_register_busy): New function. (adjust_double_register_busy): New function. (restore_float_register_busy): New function. (restore_double_register_busy): New function. (frvbf_model_fr500_u_float_arith): New function. (frvbf_model_fr500_u_float_dual_arith): New function. (frvbf_model_fr500_u_float_div): New function. (frvbf_model_fr500_u_float_sqrt): New function. (frvbf_model_fr500_u_float_compare): New function. (frvbf_model_fr500_u_float_dual_compare): New function. (frvbf_model_fr500_u_float_convert): New function. (frvbf_model_fr500_u_media): New function. (frvbf_model_fr500_u_barrier): New function. (frvbf_model_fr500_u_membar): New function. * frv-sim.h (LEUINT): New macro. (GET_HSR0_SA): New macro. (struct frv_interrupt_timer): New struct. (struct frv_interrupt_state): Add timer fiield. (frv_queue_external_interrupt): New function. (frv_external_interrupt): New function. (frv_profile_info): New function. (PROFILE_CACHE_IDX): New enumerator. (PROFILE_PARALLEL_IDX): New enumerator. (PROFILE_cache): New macro. (PROFILE_parallel): New macro. (WITH_PROFILE_CACHE_P): New macro. (WITH_PROFILE_PARALLEL_P): New macro. * cache.h (FRV_CACHE): Add last_was_hit field. * cache.c (get_tag): Use new last_was_hit field. (frv_cache_read): Ditto. (frv_cache_write): Ditto. * arch.h,cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-12-13 Dave Brolley * frv.c (frvbf_h_spr_set_handler): Handle accumulator guards. (frvbf_clear_all_accumulators): Pass frvbf_h_acc40S_set to sim_queue_fn_di_write. (frvbf_media_cut_ss): New function. * frv-sim.h (frvbf_media_cut_ss): New function. * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-12-13 Dave Brolley * pipeline.c (check_insn_major_constraints): F-4, F-8 and M-8 have no constraints. * interrupts.c (frv_queue_illegal_instruction_interrupt): Use FRV_IS_FLOAT_INSN and FRV_IS_MEDIA_INSN. (frv_detect_insn_access_interrupts): Use FRV_IS_FLOAT_INSN and FRV_IS_MEDIA_INSN. * frv.c (frvbf_model_simple_u_exec): New function. * frv-sim.h (FRV_IS_FLOAT_INSN): Range includes F-8. (FRV_IS_MEDIA_INSN): Range includes M-8. * Makefile.in (stamp-cpu): add 'simple' to the list of machines. * arch.c,arch.h,cpu.h,cpuall.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-12-10 Dave Brolley * traps.c (check_registers_available): New function. (clear_ne_flags): Generate register_exception if register(s) not available. (frvbf_commit): Generate register_exception if register(s) not available. * interrupts.c (frv_program_or_software_interrupt): No need to copy GR4-GR7 to SR0-SR4. * frv.c (frvbf_h_psr_set_handler): Special handling for PSR.S and PSR.ESR. (frvbf_h_psr_s_set_handler): New function. (frvbf_h_psr_esr_set_handler): New function. (frvbf_switch_supervisor_user_context): New function. (frvbf_scan_result): Reflect latest ISA. * frv-sim.h (frvbf_h_psr_s_set_handler): New function. (frvbf_h_psr_esr_set_handler): New function. (frvbf_switch_supervisor_user_context): New function. (GET_HSR0_FRN): New Macro. (GET_HSR0_GRN): New Macro. (GET_HSR0_FRHE): New Macro. (GET_HSR0_FRLE): New Macro. (GET_HSR0_GRHE): New Macro. (GET_HSR0_GRLE): New Macro. (frv_ec): New value for FRV_EC_COMMIT_EXCEPTION. (GET_ESFR): New bit ordering. (SET_ESFR): New bit ordering. * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-12-10 Michael Meissner * Makefile.in (sim-if.o): Add eng.h dependency. 1999-12-09 Dave Brolley * mloop.in (execute): Pass sc->first_insn_p to @cpu@_model_insn_before. Pass sc->last_insn_p to @cpu@_model_insn_before. (main loop): Compute sc->first_insn_p. * frv.c (frvbf_model_insn_before): Set state variables. (frvbf_model_insn_after): Count basic cycles. Set state variables. (frvbf_model_fr500_u_integer): Remove. * arch.h,cpu.h,decode.h,model.c: Regenerate. 1999-12-07 Dave Brolley * sim-main.h (cache.h): Include it. (insn_cache): New member. (data_cache): New member. (CPU_INSN_CACHE): New macro. (CPU_DATA_CACHE): New macro. * sim-if.c (WANT_CPU): New macro. (WANT_CPU_FRVBF): New macro. (sim_open): Call sim_add_option_table. Call frv_cache_init for the data and insn caches for each cpu. (sim_close): Call frv_cache_term for the insn and data caches of each cpu. * mloop.in (extract): Read insn from the cache. (main loop): Access the insn cache in order to maintain stats. * memory.c (data_non_cache_access): New function. (insn_non_cache_access): New function. (frvbf_read_mem_QI): Attempt to read from the cache first. (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): New function. (frvbf_write_mem_QI): Write through the cache is it is enabled. (frvbf_write_mem_UQI): Ditto. (frvbf_write_mem_HI): Ditto. (frvbf_write_mem_UHI): Ditto. (frvbf_write_mem_SI): Ditto. (frvbf_write_mem_DI): Ditto. (frvbf_write_mem_DF): Ditto. (frvbf_mem_set_QI): New function. (frvbf_mem_set_HI): New function. (frvbf_mem_set_SI): New function. (frvbf_mem_set_DI): New function. (frvbf_mem_set_DF): New function. (frvbf_mem_set_XI): New function. * interrupts.c (frv_save_data_written_for_interrupts): Handle CGEN_FN_MEM_QI_WRITE, CGEN_FN_MEM_HI_WRITE, CGEN_FN_MEM_SI_WRITE, CGEN_FN_MEM_DI_WRITE, CGEN_FN_MEM_DF_WRITE, CGEN_FN_MEM_XI_WRITE. * frv.c (frvbf_load_quad_GR): Call frvbf_read_mem_SI. Call sim_queue_fn_mem_xi_write. (frvbf_load_quad_FRint): Call frvbf_read_mem_SI. Call sim_queue_fn_mem_xi_write. (frvbf_load_quad_CPR): Call frvbf_read_mem_SI. Call sim_queue_fn_mem_xi_write. (frvbf_insn_cache_preload): New function. (frvbf_data_cache_preload): New function. (frvbf_insn_cache_unlock): New function. (frvbf_data_cache_unlock): New function. (frvbf_insn_cache_invalidate): New function. (frvbf_data_cache_invalidate): New function. (frvbf_data_cache_flush): New function. * frv-sim.h (sim-options.h): Include it. (GET_HSR0): New macro. (SET_HSR0): New macro. (GET_HSR0_ICE): New macro. (SET_HSR0_ICE): New macro. (GET_HSR0_DCE): New macro. (SET_HSR0_DCE): New macro. (GET_HSR0_CBM): New macro. (GET_HSR0_RME): New macro. (GET_IHSR8): New macro. (GET_IHSR8_NBC): New macro. (frvbf_insn_cache_preload): New function. (frvbf_data_cache_preload): New function. (frvbf_insn_cache_unlock): New function. (frvbf_data_cache_unlock): New function. (frvbf_insn_cache_invalidate): New function. (frvbf_data_cache_invalidate): New function. (frvbf_data_cache_flush): New function. (insn_non_cache_access): New function. (frvbf_read_imem_USI): New function. (frvbf_mem_set_QI): New function. (frvbf_mem_set_HI): New function. (frvbf_mem_set_SI): New function. (frvbf_mem_set_DI): New function. (frvbf_mem_set_DF): New function. (frvbf_mem_set_XI): New function. (frv_options): FRV specific command line options. * Makefile.in (SIM_OBJS): Add options.o and cache.o. (SIM_EXTRA_DEPS): Add $(sim-options_h). (cache.o): New target. (options.o): New target. * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. * cache.h: New file. * cache.c: New file. * options.c: New file. 1999-11-29 Dave Brolley * traps.c (frvbf_check_non_excepting_load): Use new NE_FLAG macros. (frvbf_check_non_excepting_divide): Ditto. (clear_ne_flags): Ditto (frvbf_commit): Ditto. * pipeline.c (frv_pipeline_add_insn): Clear the NE index for all insns. * mloop.in (_parallel_write_init): Clear NE flags here. * interrupts.c (frv_queue_fp_exception_interrupt): Set NE flags here for non excepting insns. Also check for masked interrupts here. (frv_process_interrupts): Write NE flags here. (set_fp_exception_registers): No longer check for masked interrupts here. (check_for_compound_interrupt): No need to worry about masked interrupts. * frv-sim.h (frv_interrupt_state): Add f_ne_flags member. (GET_NE_FLAGS): New macro. (SET_NE_FLAGS): New macro. (GET_NE_FLAG): Operate on accumulated argument. (SET_NE_FLAG): Operate on accumulated argument. (CLEAR_NE_FLAG): Operate on accumulated argument. * Makefile.in (FRVBF_INCLUDE_DEPS): Add $(SIM_EXTRA_DEPS) (frv.o): Correct dependencies. (traps.o): Ditto. (pipeline.o): Ditto. (interrupts.o): Ditto. (memory.o): Ditto. * sem.c: Regenerate. 1999-11-26 Dave Brolley * traps.c (frvbf_fpu_error): Only call frv_queue_fp_exception if there is an exception indicated in the mask. * pipeline.c (frv_pipeline_add_insn): Clear ne_index in the interrupt state when adding a floating point insn to the pipeline. * interrupts.c (set_fp_exception_registers): Set NE flag for non-excepting insns. * frv-sim.h (frvbf_h_fr_double_get_handler): Mode of data is DF. (frvbf_h_fr_double_set_handler): Mode of data is DF. (frvbf_h_fr_int_get_handler): New function. (frvbf_h_fr_int_set_handler): New function. (frvbf_set_ne_index): New function. (NE_NOFLAG): New macro. (frv_interrupt_state): Add ne_index member. * frv.c (frvbf_h_fr_double_get_handler): Mode of data is DF. (frvbf_h_fr_double_set_handler): Mode of data is DF. (frvbf_h_fr_int_get_handler): New function. (frvbf_h_fr_int_set_handler): New function. (frvbf_set_ne_index): New function. * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-11-24 Dave Brolley * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-11-23 Dave Brolley * frv-sim.h (frvbf_media_cut): New function. * frv.c (frvbf_media_cut): New function. * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-11-22 Dave Brolley * frv-sim.h (frvbf_clear_all_accumulators): New function. * frv.c.h (frvbf_clear_all_accumulators): New function. * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-11-18 Dave Brolley * pipeline.c (frv_pipeline_add_insn): Only clear MSR0 and FSR0 fields if this is the first insn of its class in the pipeline. * frv-sim.h (frvbf_media_register_not_aligned): New function. * traps.c (frvbf_media_register_not_aligned): New function. * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-11-17 Dave Brolley * pipeline.c (frv_pipeline_add_insn): Clear MSRx.SIE fields. * frv-sim.h (OR_MSR_SIE): New macro. (CLEAR_MSR_SIE): New macro. (frvbf_media_overflow): Now takes sie argument. (frv_set_mp_exception_registers): Now takes sie argument. * interrupts.c (frv_set_mp_exception_registers): Now takes sie argument. Set MSRx.SIE field. * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-11-15 Dave Brolley * traps.c (frv_mtrap): New function. (frvbf_media_cr_not_aligned): New function. (frvbf_media_acc_not_aligned): New function. (frvbf_media_overflow): New function. * pipeline.c (frv_pipeline_add_insn): Clear MSR fields. * interrupts.c: Call frv_set_mp_exception_registers. (frv_set_mp_exception_registers): New function. * frv-sim.h (frv_msr_mtt): New enumeration. (GET_MSR): New macro. (SET_MSR): New macro. (GET_MSR_AOVF): New macro. (SET_MSR_AOVF): New macro. (GET_MSR_OVF): New macro. (SET_MSR_OVF): New macro. (CLEAR_MSR_OVF): New macro. (GET_MSR_MTT): New macro. (SET_MSR_MTT): New macro. (frv_set_mp_exception_registers): New function. (frv_mtrap): New function. (FRV_IS_MEDIA_INSN): New macro. * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-11-10 Dave Brolley * sim-main.h (_sim_cpu): Add debug_state member. * mloop.in (_parallel_write_queued): Clear data_written.length. * interrupts.c (frv_interrupt_table): Offset of BREAK_EXCEPTION handler is 0xff. (frv_queue_break_interrupt): New function. (frv_break_interrupt): New function. (handle_interrupt): Handle break_interrupt. (frv_non_operating_interrupt): Now takes interrupt_kind. * frv-sim.h (frv_queue_break_interrupt): New function. (frv_break_interrupt): New function. (frv_break): New function. (frv_non_operating_interrupt): Now takes interrupt_kind. * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-11-09 Dave Brolley * pipeline.c (frv_pipeline_add_insn): Clear FSR0.FTT when adding a floating point insn. * traps.c (frvbf_fpu_error): Map fpu status to frv interrupts. * interrupts.c (frv_queue_illegal_instruction_interrupt): Call frv_queue_fp_exception_interrupt. (frv_queue_fp_exception_interrupt): New function. (next_available_fq): New function. (set_fp_exception_registers): New function. (set_exception_status_registers): Now returns 1 if interrupt not masked. (check_for_compound_interrupt): Now returns NULL if interrupt masked. (frv_program_interrupt): Don't process interrupt if it is masked. * frv.c (frvbf_h_fr_double_get_handler): Call frv_queue_fp_exception_interrupt. (frvbf_h_fr_double_set_handler): Call frv_queue_fp_exception_interrupt. (frvbf_h_fr_quad_set_handler): Call frv_queue_fp_exception_interrupt. (frvbf_store_quad_FRint): Call frv_queue_fp_exception_interrupt. * frv-sim.h: Get/set hardware directly in GET/SET macros. (frv_fp_exception_info): New struct type. (frv_interrupt_queue_element): Add fp_info member. (frv_fsr_traps): New enumeration. (frv_fsr_ftt): New enumeration. (frv_sie): New enumeration. (frv_miv): New enumeration. (GET_FSR): New macro. (SET_FSR): New macro. (GET_FSR_TEM): New macro. (SET_FSR_QNE): New macro. (SET_FSR_FTT): New macro. (GET_FSR_AEXC): New macro. (SET_FSR_AEXC): New macro. (GET_FQ): New macro. (SET_FQ): New macro. (SET_FQ_OPC): New macro. (SET_FQ_MIV): New macro. (SET_FQ_SIE): New macro. (SET_FQ_FTT): New macro. (SET_FQ_CEXC): New macro. (GET_FQ_VALID): New macro. (SET_FQ_VALID): New macro. (frv_queue_fp_exception_interrupt): New function. (FRV_IS_FLOAT_INSN): New macro. 1999-11-04 Dave Brolley * traps.c (frvbf_fpu_error): No floating point errors need to be detected. * interrupts.c (clear_exception_status_registers): Clear 'valid' fields of the ESR registers too. (set_exception_status_registers): Don't set EAR for any precise interrupts. Register index should be 1 for insns in PIPE_I1. Clear ESR.EAV and ESR.EDV if not setting them. Set ESR.VALID. (non_operating_interrupt): No need for return code. (frv_program_or_software_interrupt): Process interrupt regardless of operating mode. If PSR.ET was not set at the start of processing, then stop the simulation with a message. (frv_save_data_written_for_interrupts): Handle CGEN_FN_XI_WRITE and CGEN_MEM_XI_WRITE. * frv.c (frvbf_h_gr_quad_set_handler): New function. (frvbf_h_fr_quad_set_handler): New function. (frvbf_h_cpr_quad_set_handler): New function. (frvbf_load_quad_GR): Renamed from frvbf_load_multiple_GR. Use new sim_queue_fn_xi_write. (frvbf_load_quad_FRint): Renamed from frvbf_load_multiple_GR. Use new sim_queue_fn_xi_write. (frvbf_load_quad_CPR): Renamed from frvbf_load_multiple_GR. Use new sim_queue_fn_xi_write. (frvbf_store_quad_GR): Renamed from frvbf_store_multiple_GR. Use new sim_queue_mem_xi_write. (frvbf_store_quad_FRint): Renamed from frvbf_store_multiple_GR. Use new sim_queue_mem_xi_write. (frvbf_store_quad_CPR): Renamed from frvbf_store_multiple_GR. Use new sim_queue_mem_xi_write. * frv-sim.h (frvbf_h_gr_quad_set_handler): New function. (frvbf_h_fr_quad_set_handler): New function. (frvbf_h_cpr_quad_set_handler): New function. (SET_ESR_VALID): New macro. (CLEAR_ESR_VALID): New macro. (CLEAR_ESR_EAV): New macro. (CLEAR_ESR_EDV): New macro. * sem.c: Regenerate. 1999-11-02 Dave Brolley * traps.c (frv_core_signal): Call frv_queue_mem_address_not_aligned_interrupt. * mloop.in (_parallel_write_queued): Call frv_save_data_written_for_interrupts. * frv.c (frvbf_h_gr_double_get_handler): Call frv_queue_register_exception_interrupt. (frvbf_h_cpr_double_get_handler): Call frv_queue_register_exception_interrupt. (frvbf_h_cpr_double_set_handler): Call frv_queue_register_exception_interrupt. (frvbf_load_multiple_GR): Call frv_queue_register_exception_interrupt. (frvbf_store_multiple_GR): Call frv_queue_register_exception_interrupt. (frvbf_load_multiple_CPR): Call frv_queue_register_exception_interrupt. (frvbf_store_multiple_CPR): Call frv_queue_register_exception_interrupt. (frvbf_h_tbr_get_handler): Fix TBR.TBA mask. * interrupts.c (frv_queue_software_interrupt): Now returns interrupt queue element. (frv_queue_program_interrupt): Now returns interrupt queue element. (frv_queue_illegal_instruction_interrupt): Now returns interrupt queue element. (frv_queue_interrupt): Now returns interrupt queue element. (frv_queue_register_exception_interrupt): New function. (frv_queue_mem_address_not_aligned_interrupt): New function. (frv_save_data_written_for_interrupts): New function. (next_available_edr): EDR registers available in blocks of 4. (clear_exception_status_registers): New function. (set_exception_status_registers): Pass esr to SET_ESR* macros. * frv-sim.h (struct frv_data_written): New struct type. (frv_interrupt_queue_element): Add data_written member. (frv_queue_software_interrupt): Now returns interrupt queue element. (frv_queue_program_interrupt): Now returns interrupt queue element. (frv_queue_illegal_instruction_interrupt): Now returns interrupt queue element. (frv_queue_interrupt): Now returns interrupt queue element. (frv_queue_register_exception_interrupt): New function. (frv_queue_mem_address_not_aligned_interrupt): New function. (frv_save_data_written_for_interrupts): New function. 1999-10-27 Dave Brolley * interrupts.c (ITABLE_ENTRY): New macro. (frv_interrupt_table): Add exception codes. (next_available_esr): New function. (next_available_edr): New function. (set_edr_register): New function. (set_exception_status_registers): New function. (check_for_compound_interrupt): Record information on all interrupts found. (frv_program_interrupt): Always call check_for_compound_interrupt. * frv.c (frvbf_h_pc_set_handler): Removed. (frvbf_h_spr_get_handler): Handle LR register. (frvbf_h_spr_set_handler): Handle LR register. (frvbf_h_lr_get_handler): New function. (frvbf_h_lr_set_handler): New function. * frv-sim.h (frvbf_h_lr_get_handler): New function. (frvbf_h_lr_set_handler): New function. (frv_ec): New enumeration. (frv_interrupt): Add frv_ec field. (frv_rec): New enumeration. (frv_daec): New enumeration. (frv_interrupt_queue_element): Add eaddress, rec, iaec, daec fields. (SET_ESR_EC): New macro. (SET_ESR_REC): New macro. (SET_ESR_IAEC): New macro. (SET_ESR_DAEC): New macro. (SET_ESR_EAV): New macro. (GET_ESR_EDV): New macro. (SET_ESR_EDV): New macro. (GET_ESR_EDN): New macro. (SET_ESR_EDN): New macro. (GET_ESR): New macro. (SET_ESR): New macro. (SET_EPCR): New macro. (SET_EAR): New macro. (SET_EDR): New macro. (GET_ESFR): New macro. (SET_ESFR): New macro. * cpu.c,cpu.h,sem.c: Rebuild. 1999-10-26 Dave Brolley * traps.c (frvbf_check_non_excepting_load): Only set NESR, NECR, NEEAR if mach is frv. (clear_nesr_neear): Only execute if mach is frv. 1999-10-22 Dave Brolley * sim-main.h (sim_cpu): Add pipeline. (CPU_PIPELINE): New macro. * mloop.in (_parallel_write_queued): Maintain pc in cpu during writes. (main loop): Maintain pc in cpu. * frv-sim.h (frv_queue_software_interrupt): New interface. (frv_queue_program_interrupt): New interface. (frv_queue_illegal_instruction_interrupt: New interface. (frv_queue_interrupt): New interface. (frv_detect_insn_access_interrupts): New interface. (frv_process_interrupts): New interface. (frv_program_interrupt): New interface. (frv_software_interrupt): New interface. (frv_program_or_software_interrupt): New interface. (FRV_PIPELINE): Moved from pipline.c. (frv_pipeline_reset): New interface. (frv_pipeline_add_insn): New interface. * interrupts.c (frv_queue_software_interrupt): New interface. (frv_queue_program_interrupt): New interface. (frv_queue_illegal_instruction_interrupt: New interface. (frv_queue_interrupt): New interface. (frv_detect_insn_access_interrupts): New interface. (frv_process_interrupts): New interface. (frv_program_interrupt): New interface. (frv_software_interrupt): New interface. (frv_program_or_software_interrupt): New interface. * frv.c: Use new interfaces. * pipeline.c: Use new interfaces. * traps.c: Use new interfaces. * memory.c: Use new interfaces. (frv_address_forbidden): No longer static. 1999-10-19 Dave Brolley * traps.c (frvbf_check_non_excepting_load): Set NESR.DAEC, NESR.REC and NESR.EC. * mloop.in (_parallel_write_queued): Handle CGEN_FN_PC_WRITE. * frv.c (frvbf_h_pc_set_handler): New function. * interrupts.c (frv_detect_data_interrupt): Removed. (address_forbidden): Removed. * frv-sim.h (frv_detect_data_interrupt): Removed. (NESR_MEM_ADDRESS_NOT_ALIGNED): New macro. (NESR_REGISTER_NOT_ALIGNED): New macro. (NESR_UQI_SIZE): New macro. (NESR_QI_SIZE): New macro. (NESR_UHI_SIZE): New macro. (NESR_HI_SIZE): New macro. (NESR_SI_SIZE): New macro. (NESR_DI_SIZE): New macro. (NESR_XI_SIZE): New macro. (GET_NESR_DAEC): New macro. (SET_NESR_DAEC): New macro. (GET_NESR_REC): New macro. (SET_NESR_REC): New macro. (GET_NESR_EC): New macro. (SET_NESR_EC): New macro. (frvbf_read_mem_QI): New function. (frvbf_read_mem_UQI): New function. (frvbf_read_mem_HI): New function. (frvbf_read_mem_UHI): New function. (frvbf_read_mem_SI): New function. (frvbf_read_mem_WI): New function. (frvbf_read_mem_DI): New function. (frvbf_read_mem_DF): New function. (frvbf_write_mem_QI): New function. (frvbf_write_mem_UQI): New function. (frvbf_write_mem_HI): New function. (frvbf_write_mem_UHI): New function. (frvbf_write_mem_SI): New function. (frvbf_write_mem_WI): New function. (frvbf_write_mem_DI): New function. (frvbf_write_mem_DF): New function. * Makefile.in (SIM_OBJS): Add memory.o. * cpu.c,cpu.h,sem.c: Rebuild. 1999-10-18 Dave Brolley * sim-if.c (sim_open): Use a real fpu error function. * pipeline.c (frv_pipeline_add_insn): Don't add invalid insns. * mloop.in (_parallel_write_queued): Clear queue after writing. * interrupts.c (check_for_compound_interrupt): New function. (non_operating_interrupt): New function. * frv-sim.h (frvbf_h_gr_double_get_handler): New function. (frvbf_h_gr_double_set_handler): New function. (frvbf_h_fr_double_get_handler): New function. (frvbf_h_fr_double_set_handler): New function. (frvbf_h_cpr_double_get_handler): New function. (frvbf_h_cpr_double_set_handler): New function. (frv_interrupt_queue_element): New struct type. (frv_queue_program_interrupt): Now takes pc. (frv_queue_illegal_instruction_interrupt): Now takes pc. (frv_queue_interrupt): Now takes pc. (frv_program_interrupt): Now takes frv_interrupt_queue_element. (frv_software_interrupt): Now takes frv_interrupt_queue_element. (frvbf_division_exception): New function. (frvbf_fpu_error): New function. (frvbf_load_multiple_GR): New function. (frvbf_load_multiple_FR): New function. (frvbf_load_multiple_CPR): New function. * frv.c (frvbf_h_gr_double_get_handler): New function. (frvbf_h_gr_double_set_handler): New function. (frvbf_h_fr_double_get_handler): New function. (frvbf_h_fr_double_set_handler): New function. (frvbf_h_cpr_double_get_handler): New function. (frvbf_h_cpr_double_set_handler): New function. (frv_interrupt_queue_element): New struct type. (frv_queue_program_interrupt): Now takes pc. (frv_queue_illegal_instruction_interrupt): Now takes pc. (frv_queue_interrupt): Now takes pc. (frv_program_interrupt): Now takes frv_interrupt_queue_element. (frv_software_interrupt): Now takes frv_interrupt_queue_element. (frvbf_fpu_error): New function. (frvbf_load_multiple_GR): New function. (frvbf_load_multiple_FR): New function. (frvbf_load_multiple_CPR): New function. * traps.c (frvbf_division_exception): New function. * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild. 1999-10-12 Dave Brolley * mloop.in (new_vpc): New variable. (main loop): Call frv_detect_insn_access_interrupts. Call frv_detect_data_interrupts. * interrupts.c (access_queued_to): New function. (frv_detect_data_interrupts): New function. (frv_detect_insn_access_interrupts): New function. (frv_program_or_software_interrupt): Set PSR.S. * frv-sim.h (frv_detect_data_interrupts): New function. (frv_detect_insn_interrupts): New function. 1999-10-07 Dave Brolley * frv-sim.h (frvbf_h_gr_hi_get_handler): New function. (frvbf_h_gr_hi_set_handler): New function. (frvbf_h_gr_lo_get_handler): New function. (frvbf_h_gr_lo.set_handler): New function. * frv.c (frvbf_h_gr_hi_get_handler): New function. (frvbf_h_gr_hi_set_handler): New function. (frvbf_h_gr_lo_get_handler): New function. (frvbf_h_gr_lo.set_handler): New function. (frvbf_model_fr500_u_integer): New function. * arch.h,cpu.h,cpu.c,decode.h,decode.c,model.c,sem.c: Rebuild. 1999-10-04 Dave Brolley * traps.c: Use sim_engine_abort. * pipeline.c (frv_pipeline): Add field for insn major. (add_next_to_pipe): Return address of matching pipeline. (find_major_in_pipeline): New function. (check_insn_major_constraints: New function. (frv_pipeline_add_insn): Add checks for insn major constraints. * interrupts.c (frv_process_interrupts): Use sim_engine_abort. * frv.c (frvbf_h_spr_get_handler): No need to abort. Thu Sep 30 18:10:25 1999 Dave Brolley * pipeline.c: New file. * mloop.in (main loop): Call frv_pipeline_reset. Call frv_pipeline_add_insn. * frv-sim.h (frv_pipeline_reset): New function. (frv_pipeline_add_insn): New function. * Makefile.in (SIM_OBJS): Add pipeline.o 1999-09-29 Doug Evans * sem.c: Rebuild. * traps.c (sim_engine_invalid_insn): New arg `vpc'. Change type of result to SEM_PC. Return vpc. Wed Sep 29 16:01:52 1999 Dave Brolley * interrupts.c (frv_interrupt_table): DATA_STORE_ERROR is imprecise. (frv_queue_interrupt): Don't detect identical interrupts here. Wed Sep 29 14:49:52 1999 Dave Brolley * interrupts.c: New file. * traps.c (sim_engine_invalid_insn): Return PC of next insn. (frv_software_interrupt): Moved to interrupts.c. (frv_itrap): New interface. Call frv_queue_software_interrupt. * mloop.in (@cpu@_parallel_write_init): set previous_vliw_pc. (@cpu@_perform_writeback): New function. (main loop): Call frv_process_interrupts. * frv-sim.h (frvbf_write_next_vliw_addr_to_PCSR): Removed. (frv_itrap): New interface. (frv_interrupt_class): New enumeration. (frv_interrupt_kind): New enumeration. (struct frv_interrupt): New struct type. (frv_interrupt_table): New table of interrupt information. (FRV_INTERRUPT_QUEUE_SIZE): New macro. (struct frv_interrupt_state): New struct type. (frv_interrupt_state): New global variable. (previous_vliw_pc): New global variable. (frv_queue_software_interrupt): New function. (frv_queue_program_interrupt): New function. (frv_queue_interrupt): New function. (frv_process_interrupts): New function. (frv_program_interrupt): New function. (frv_software_interrupt): New function. (frv_program_or_software_interrupt): New function. (frv_clear_interrupt_classes): New function. * frv.c (frvbf_write_next_vliw_addr_to_PCSR): Removed. * Makefile.in (SIM_OBJS): Add interrupts.o * sem.c: Rebuild. 1999-09-25 Doug Evans * cpu.h,cpuall.h,decode.c,sem.c: Rebuild. Tue Sep 21 17:16:47 1999 Dave Brolley * mloop.in (main loop): Determine last insn from scache entry. * cpu.h: Rebuild. * cpuall.h: Rebuild. Tue Sep 14 14:21:31 1999 Dave Brolley * frv-sim.h (frvbf_write_next_vliw_addr_to_PCSR): New flag. (NECR_ELOS): Define as unshifted value. (NECR_NEN): Define as unshifted value. (NECR_VALID): Define as unshifted value. (SET_NESR): Rewite to use post-write queue. (SET_NESR_VALID): Rewite to operate on argument. (SET_NESR_EAV): Rewite to operate on argument. (SET_NESR_FR): Rewite to operate on argument. (CLEAR_NESR_FR): Rewite to operate on argument. (SET_NESR_DRN): Rewite to operate on argument. (SET_NESR_SIZE): Rewite to operate on argument. (SET_NESR_NEAN): Rewite to operate on argument. (SET_NEEAR): Rewite to use post-write queue. (SET_NE_FLAG): Rewite to use post-write queue. (CLEAR_NE_FLAG): Rewite to use post-write queue. * traps.c (frv_software_interrupt): Rewite to use post-write queue. (frv_rett): Rewite to use post-write queue. (next_available_nesr): Rewrite to use new macro interfaces. (next_valid_nesr): Ditto. (frvbf_check_non_excepting_load): Ditto. (frvbf_check_recovering_store): Ditto. (clear_nesr_neear): Ditto. (clear_ne_flags): Ditto. * mloop.in (main loop): Update PCSR with address of next VLIW insn when flag is set. * frv.c (frvbf_h_spr_get_handler): Shift register fields here now. (frvbf_store_multiple_GR): Rewite to use post-write queue. (frvbf_store_multiple_FRint): Rewite to use post-write queue. (frvbf_store_multiple_CPR): Rewite to use post-write queue. * Makefile.in (frv.o): Depend on cgen-par.h. Fri Sep 10 17:03:15 1999 Dave Brolley * frv-sim.h (frvbf_set_write_next_vliw_addr_to_LR): New function. (frvbf_write_next_vliw_addr_to_LR): New flag. * frv.c (frvbf_set_write_next_vliw_addr_to_LR): New function. * mloop.in: Only take the first branch in a VLIW insn. Set LR to the address of the next VLIW insn if flag is set. * cpu.h,decode.c,sem.c: Rebuild. Tue Sep 7 13:44:23 1999 Dave Brolley * mloop.in: Limit parallel insns to MAX_PARALLEL_INSNS. * sem.c: Rebuild. 1999-09-02 Doug Evans * configure: Regenerated to track ../common/aclocal.m4 changes. 1999-09-01 Doug Evans * decode.c: Rebuild. Mon Aug 30 17:54:57 1999 Dave Brolley * traps.c (frv_rett): New function. * frv.c (frvbf_h_spr_get_handler): Handle bpsr. (frvbf_h_spr_set_handler): Handle bpsr. (frvbf_h_bpsr_get_handler): New function. (frvbf_h_bpsr_set_handler): New function. * frv-sim.h (frv_rett): New function. (frvbf_h_bpsr_get_handler): New function. (frvbf_h_bpsr_set_handler): New function. * mloop.in: Read actual packing bit. * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild. Tue Aug 31 16:04:37 1999 Dave Brolley * traps.c (WANT_CPU): New macro. (WANT_CPU_FRVBF): New macro. (frvbf_check_recovering_store): Use registers for source and queue writes. * mloop.in: New main loop for parallel support. (@cpu@_parallel_write_init): New function. (@cpu@_parallel_write_queued): New function. * frv-sim.h (set_icc_for_shift_left): New interface. (set_icc_for_shift_right): New interface. (frvbf_check_recovering_store): New interface. * frv.c (set_icc_for_shift_left): Pass and return icc value. (set_icc_for_shift_right): Pass and return icc value. (frvbf_check_recovering_store): New interface. * Makefile.in (FRV_OBJS): Add cgen-par.o. (stamp-mloop): Add cgen parallel options. (stamp-arch): Remove with-profile option. (stamp-cpu): Add cgen parallel options. * arch.h,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild. 1999-08-28 Doug Evans * cpu.h,decode.c,sem.c: Rebuild. Wed Aug 25 12:25:04 1999 Dave Brolley * arch.h,cpu.h,decode.h,model.c,sem.c: Rebuild. Thu Aug 19 17:59:00 1999 Dave Brolley * configure.in: fr500 now the default model. * configure: Regenerate. * frv.c: Change frv-1 to frv-gen. (frvbf_model_fr500_u_exec): New function. * Makefile.in (stamp-cpu): Use 'mach=frv,fr500' to build decoder. * mloop.in: Fix typos in comments. * arch.c,arch.h,cpu.h,cpuall.h,decode.h,model.c,sem.c: Rebuild. 1999-08-17 Dave Brolley * cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild. 1999-08-09 Doug Evans * cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild. 1999-08-04 Doug Evans * cpu.h,cpuall.h,decode.c,model.c,sem.c: Rebuild. Fri Jul 16 14:50:15 1999 Dave Brolley * frv.c (frvbf_fetch_register): Use GDB register number macros. (frvbf_store_register): Use GDB register number macros. (frvbf_cut): New function. * frv-sim.h (GR_REGNUM_MAX): New macro. (FR_REGNUM_MAX): New macro. (PC_REGNUM): New macro. (LR_REGNUM): New macro. (frvbf_cut): New function. * cpu.h,decode.c,decode.h,model.c,sem.c: Regenerate. 1999-07-15 Stan Shebs * frv.c (frvbf_fetch_register): Add ability to get LR register, add default for unhandled registers. (frvbf_store_register): Add ability to set LR register. 1999-07-14 Stan Shebs * frv.c (frvbf_fetch_register, frvbf_store_register): Fill in. (decode_gdb_dr_regnum): Remove, not used. 1999-07-13 Michael Meissner * Makefile.in (SIM_EXTRA_FLAGS): Incorporate @sim_trapdump@. * configure.in (--enable-sim-trapdump): New switch to make unknown traps dump the register contents, instead of doing the trap thing. * configure: Regenerate. * frv-sim.h (TRAP_BREAKPOINT): Define as 81, so it can be used. (TRAP_REGDUMP{1,2}): Define to provide register dumping support temporarily. * traps.h (toplevel): Include bfd.h, libiberity.h. (frv_itrap): Add support for --enable-sim-trapdump and traps 2,3 dumping the registers. Thu Jul 8 10:57:39 1999 Dave Brolley * Makefile.in (SIM_EXTRA_LIBS): Removed. libm no longer needed. Wed Jul 7 17:01:12 1999 Dave Brolley * cpu.c,cpu.h,decode.c,model.c,sem.c: Rebuild. Tue Jul 6 16:12:18 1999 Dave Brolley * frv.c (frvbf_square_root_SF): Removed. (frvbf_square_root_DF): Removed. (frvbf_h_fr_double_get_handler): Removed. (frvbf_h_fr_double_set_handler): Removed. (frvbf_h_fr_int_get_handler): Removed. (frvbf_h_fr_int_set_handler): Removed. * frv-sim.h (frvbf_square_root_SF): Removed. (frvbf_square_root_DF): Removed. (frvbf_h_fr_double_get_handler): Removed. (frvbf_h_fr_double_set_handler): Removed. (frvbf_h_fr_int_get_handler): Removed. (frvbf_h_fr_int_set_handler): Removed. * decode.c,decode.h,model.c,sem.c: Rebuild. 1999-07-05 Doug Evans * Makefile.in (SIM_OBJS): Add cgen-fpu.o, cgen-accfp.o. * cpu.c,cpu.h,decode.c,decode.h,model.c,sem.c: Rebuild. * sim-if.c (sim_open): Initialize fpu. * frv-sim.h (SETMEMSF,SETMEMDF): Delete. * frv.c (frvbf_store_multiple_FRint): Replace frvbf_h_fr_int_get with frvbf_h_fr_get. Wed Jun 30 15:56:56 1999 Dave Brolley * frv-sim.h (NESR_RANGE): New macro. (NO_NESR): New macro. (GET_NESR_VALID): New macro. (next_ne_index): Removed. * traps.c (next_available_nesr): New function. (next_valid_nesr): New function. (frvbf_check_non_excepting_load): Use next_available_nesr. (frvbf_check_recovering_store): Use next_available_nesr and next_valid_nesr. (clear_nesr_neear): Use next_available_nesr and next_valid_nesr. (frvbf_check_recovering_store): Only consider one matching register. * sem.c: Rebuild. Tue Jun 29 16:54:32 1999 Dave Brolley * frv.c (frvbf_square_root_SF): New function. (frvbf_square_root_DF): New function. (frvbf_h_fr_double_get_handler): New function. (frvbf_h_fr_double_set_handler): New function. * frv-sim.h (frvbf_square_root_SF): New function. (frvbf_square_root_DF): New function. (frvbf_h_fr_double_get_handler): New function. (frvbf_h_fr_double_set_handler): New function. * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c: Rebuild. 1999-06-28 Dave Brolley * decode.c,decode.h,model.c,sem.c: Regenerate. Thu Jun 24 17:26:32 1999 Dave Brolley * Makefile.in (SIM_EXTRA_LIBS): Add -lm. * frv-sim.h (frvbf_h_fr_int_get_handler): New function. (frvbf_h_fr_int_set_handler): New function. (frvbf_store_multiple_FRint): New function. (frvbf_square_root_SF): New function. * frv.c (frvbf_h_fr_int_get_handler): New function. (frvbf_h_fr_int_set_handler): New function. (frvbf_store_multiple_FRint): New function. (frvbf_square_root_SF): New function. * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. 1999-06-23 Doug Evans * Makefile.in (stamp-mloop): Delete -fast -pbb -switch args to genmloop.sh. Pass -scache instead. (mloop.o): Delete sem-switch.c dependency. (sem-switch.c): Delete rule. (stamp-cpu): Don't build sem-switch.c. * sem-switch.c: Delete. * mloop.in (xfull-exec-*): Fix call to execute. * tconfig.in (WITH_SCACHE_PBB): Define as 0. * cpu.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild. Tue Jun 22 16:23:57 1999 Dave Brolley * cpu.h,decode.c,sem.c,sem-switch.c: Regenerate. Mon Jun 21 17:34:10 1999 Dave Brolley * mloop.in (execute): Force gr0 to zero before each insn. * cpu.h,cpu.c,decode.c,sem.c,sem-switch.c: Regenerate. 1999-06-18 Doug Evans * cpu.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild. Fri Jun 18 17:49:23 1999 Dave Brolley * frv.c (frvbf_h_gr_get_handler): New function. (frvbf_h_gr_set_handler): New function: (frvbf_store-multiple_GR): New function: (frvbf_store-multiple_FR): New function: (frvbf_store-multiple_CPR): New function: * frv-sim.h (frvbf_h_gr_get_handler): New function. (frvbf_h_gr_set_handler): New function: (frvbf_store-multiple_GR): New function: (frvbf_store-multiple_FR): New function: (frvbf_store-multiple_CPR): New function: * traps.c (frv_itrap): Implement proper syscalls interface. * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. Fri Jun 18 14:36:23 1999 Dave Brolley * traps.c (frvbf_check_non_excepting_divide): New function. (frvbf_check_recovering_store): New function. (clear_nesr_neear): New function. (clear_ne_flags): New function. (frvbf_commit): New function. * frv-sim.h (frvbf_check_non_excepting_divide): New function. (frvbf_check_recovering_store): New function. (clear_nesr_neear): New function. (clear_ne_flags): New function. (frvbf_commit): New function. * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. 1999-06-16 Dave Brolley * frv.c (frvbf_h_spr_get_handler): Handle SPR_NECR. (frvbf_h_spr_set_handler): Handle SPR_NECR. * traps.c (next_ne_index): New variable. (frvbf_check_non_excepting_load): New function. * frv-sim.h (NECR_ELOS): New macro. (NECR_NEN): New macro. (NECR_VALID): New macro. (SET_NESR_VALID): New macro. (SET_NESR_EAV): New macro. (SET_NESR_FR): New macro. (CLEAR_NESR_FR): New macro. (SET_NESR_DRN): New macro. (SET_NESR_SIZE): New macro. (SET_NESR_NEAN): New macro. (SET_NEEAR): New macro. (GET_NE_FLAG): New macro. (SET_NE_FLAG): New macro. (CLEAR_NE_FLAG): New macro. (frvbf_check_non_excepting_load): New function: * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. Wed Jun 9 18:12:49 1999 Dave Brolley * cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate. Tue Jun 8 18:13:51 1999 Dave Brolley * frv.c (cr_logic): Correct andcr, nandcr, andncr and nandncr. * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. Mon Jun 7 17:09:15 1999 Dave Brolley * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. 1999-06-07 Dave Brolley * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. Thu Jun 3 17:33:31 1999 Dave Brolley * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. Wed Jun 2 17:50:21 1999 Dave Brolley * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. Tue Jun 1 17:58:53 1999 Dave Brolley * cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate. Mon May 31 17:57:25 1999 Dave Brolley * traps.c (frv_software_interrupt): Pass current_cpu to frvbf_h_psr_esr_get. (frv_software_interrupt): Calculate the new PC based on TBR. * cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate. 1999-05-31 Dave Brolley * cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate. Thu May 27 17:42:00 1999 Dave Brolley * frv-sim.h (frvbf_h_cccr_get_handler): New function. (frvbf_h_cccr_set_handler): New function. (frvbf_scan_result): New function. (frvbf_cr_logic): New function. * frv.c (frvbf_h_cccr_get_handler): New function. (frvbf_h_cccr_set_handler): New function. (frvbf_scan_result): New function. (frvbf_cr_logic): New function. (cr_ops,cr_result,cr_logic): New table. * cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerate. 1999-05-25 Dave Brolley * frv.c (frvbf_h_spr_get_handler): Add support for TBR and PSR. (frvbf_h_spr_set_handler): Add support for TBR and PSR. (frv_psr_get_handler): New function. (frv_psr_set_handler): New function. (frv_tbr_get_handler): New function. (frv_tbr_set_handler): New function. (frvbf_h_ccr_get_handler): Add support for fCC. (frvbf_h_ccr_set_handler): Add support for fCC. * frv-sim.h (frv_psr_get_handler): New function. (frv_psr_set_handler): New function. (frv_tbr_get_handler): New function. (frv_tbr_set_handler): New function. * traps.c (frv_software_interrupt): Implement. * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. Thu May 20 16:39:27 1999 Dave Brolley * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. 1999-05-18 Dave Brolley * frv.c: (frvbf_set_icc_for_shift_left): New function. (frvbf_set_icc_for_shift_right): New function. * frv-sim.h (frvbf_set_icc_for_shift_left): New function. (frvbf_set_icc_for_shift_right): New function. (SETMEMSF): New Macro. (SETMEMDF): New Macro. * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. Thu May 13 17:14:49 1999 Dave Brolley * frv.c (frvbf_h_ccr_get_handler): New function. (frvbf_h_ccr_set_handler): New function. * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. Tue May 11 16:13:15 1999 Dave Brolley * frv-sim.h (frvbf_h_spr_get_handler,frvbf_h_spr_set_handler, frvbf_h_isr_get_handler, frvbf_h_isr_set_handler): New functions. * frv.c: Likewise. * cpu.h,cpu.c,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. 1999-05-10 Dave Brolley * cpu.h,cpu.c,decode.c,model.c,sem.c,sem-switch.c: Regenerate. Thu May 6 16:48:21 1999 Dave Brolley * cpu.h,decode.c,sem.c,sem-switch.c: Regenerate. * frv-sim.h (TRAP_SYSCALL): Define as 0x80. Wed May 5 11:52:24 1999 Dave Brolley * traps.c (frv_software_interrupt): New function. (frv_itrap): New function. * frv-sim.h (TRAP_SYSCALL): define as 0. * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. Mon May 3 13:49:21 1999 Dave Brolley * cpu.h,decode.c,decode.h,model.c,sem.c,sem-switch.c: Regenerate. Thu Apr 29 17:37:06 1999 Dave Brolley * Directory created. libgloss/ChangeLog: 2002-06-11 Dave Brolley From Catherine Moore, Michael Meissner, Richard Sandiford: * configure.in: Support frv*-*-*. * frv/Makefile.in: New file. * frv/configure: New file. * frv/configure.in: New file. * frv/crt0.S: New file. * frv/fstat.c: New file. * frv/getpid.c: New file. * frv/isatty.c: New file. * frv/kill.c: New file. * frv/print.c: New file. * frv/putnum.c: New file. * frv/sbrk.c: New file. * frv/sim-close.S: New file. * frv/sim-exit.S: New file. * frv/sim-inbyte.c: New file. * frv/sim-lseek.S: New file. * frv/sim-open.S: New file. * frv/sim-read.S: New file. * frv/sim-time.c: New file. * frv/sim-unlink.S: New file. * frv/sim-write.S: New file. * frv/stat.c: New file. --------------060102010504060002080204 Content-Type: application/x-compressed; name="frv.sim.patch.tgz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="frv.sim.patch.tgz" Content-length: 131472 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 RNtd35KuV/O8K3ESobCZP90tji83SvLIdHPojnYU7TjHHTErdrIhXJJQ9Rix WD1ePBVlMKTLOyox03z8tkQOmszn65UoJike6FxuqCSvZ3t6JbFNuktpipRV 99EDg6HwG+y6PH5id3yUTwbreflikljxkO57Hd0Ad3BKE96zw9gOz/Uc0jyB F4bzXCBKpfNsl30kUdsUnXT7546m89F0bHP+BdcF0XfCEatdhI0Fwk7wVdaC af5rQOnkn+VGz53ifF0CZyx/SfqeQ96yTVxnvTCvIGEydiDXcKwMoiK/sGx2 wJc0HHun54RMNNlUTWKIxMzh5k1yMyKJSnpJPEEjNFy2xsi/qVee8N4mjr9p nbkZs+IeWHmZgZsYCccTGAo/sGNc4urZtGfMuJilIKbSRlGAYa0EZG0WsE41 cGfdHvR6EaWk8vkCmkcYlgVBwR03QAkDgWU6pI+u852VZMh6taO/+0/5LQTZ xfX1VBsn0rJkXhOzmzFSeuzsmDjkTBkPHgTGGYTRo+lU4A+AYCG7pdEtsU2x PYiPYojW5CVMKcH/J1pPw76uNdPihjiJTcoC8T0funPikcTMjOPLa6YXU6m2 ipxgyzy3fKeDzCecWLoTFL3FA4Xf3uHKsuSeW4rELAHHzNc4WjZPMEyEY8af JTspjY+CRZMGFVtnJrGEMGbmF/vWB16no/MwiW9x8eMTZmWkFbv/yXw9pogG SzIgR4zKDbOvWAm/UwdBGrdzZDsTU7gUlzCeGYnlQdtWNb1cgsg0OMH0nxVw m3S8JAjZyRowJ03jKafp9hw76pVodWnILOgjJTe7UYyQfHTkOwJOysoVOw2e AWn1JiCtpkNqHPaY9zF+aUXSFE2ewkzh59EYz3hhUkxfAG+EeajfhPokG7QW 81BenvJF7vO5bNtCBpj4+qotB32JUVEsXlfMeUCfUbnvDTuDeW7rFtOrirme eIsmKVYqHDN+5A0fxZNSgNBNHWmYfk7UYzcuj4CL27GXYjMn3kjXQd0kmQHT 2izlb1NUnq9Vz2bU6eezD8NmvDx+y2yg12GHVKqzSKU6g1Sq2Uilmp1UqjdJ KtU0UqnORyrVtEnN1KaPVDK3mp9UqllJRQRaRrmnBOWYXJ/OpuNP5DIPMzg9 w5jFpFuMHI+XZI9Tc2drRQr2yWZ0oriSwlsmYRgE3XDS1vbuRIkd9a8rsDmn 2QLEtB4kox/hgoEEFwPUu3wYFCmnRoFIOTVydFf295E6zneObx28fWuxt5lt RmitmARQthgLM2WteIZRwrB2+UjHnHsDkhQB4CmdIFU8JWdKC08dnSZaTJiT Plp6wPmEjIEjV9QwPrwwmkInsZghKtz5MjqTQihDb6Xr96bF04L684usOASf E+YuPSzsBZlSm3JSssZYTtfUrNgnVqIgh5QFm8fi+rhGtX7sTpLYhAlRqd3F rI24Y0qzDcrElcygsXiDyaI4QWSlc7d9V1MlGWaHKFTavwtyh67MHf0cPzqC Cx16Ghe6lNudDkHZ6xmBkaTQVKESeaeZLWTg0jUCt4pOvKGLXRkrJJ+opmYi vgttGHFacX9vxtwIpCGQrPSe4Dy/oDcjRSASiFGrLbYhVtxpn1HJyy6RZ53c LcyFS/aLC0Zkeshehq0+5klS6LfWZt/SksrZKSd5eVZ1X+ZR/6YsFvzIODqS R4LaquyPBqh/zRQj9LY9HTk2YxHcM5HxYD+dLxKSllizAg2qMzPvWZrSKDLE IqT0Ee/DYDwdcfwym4I6g1CSsBB1CecQ2sr6JYIbBuZ0BLmyswrdsMihDSlv BxIEqG/iJpAlBudcPVBAJC0gUtSlLiLG8JyFREjGuZYQn9SyUTkzjqJIOjsc DYieQyhsHIiqQc4beXKGUvKFZz2+jtGkEpAcYmjkOPVw/aSF05pVHWEsYfGT 4TCl8TUeA9POJq4qzliBrDXGt7pIU+0ci4y9vHCu2B/on5lLzBwEmboqJbof Zl2TfKHFZy1Eeg1zA5zPWmK056Omf+0R56x0bhEl9/9DNF6SQq7m5MSK7kSg NE446Z+VeXGhK7fenl871ntsiCqMm+Zlb/S2/8ig8Gnh/r+diPFKoKdLbEdU G2Y4KcvTBTffjGLOx2dWhJb1HDJ8fsUExrgftkcUpojpEXAw4buhxIEh5yTD bOJAPO0WEskViix1QWUaqvNeNcaxVFUwJdZ5K+oXCPkY7bQ1HIYgc/niId/2 ELwO/ciGiLY1BtZEqhIzv7kEbzuxhJsB3VrtDDLKqjXjZ84A/3n84bjGXUoA U07cqpQAqfpPuh95fqtbThN7hi21UiaaTrmYw/NP6Hn13PGy++J6Tgze+TQe 25EwZf1PDoPdH1zJK9VdEXxSBXhtowsEBXoTzXtsTHrAXnyLsSSHoRUIiVfm GwY0Eh2KxR8u26M8JjfmB1XeZ/AiniXwdMyl0s5FE2r4vZdTKrjHeLM4NNkF +Ctz519vF5GZp7zpHGK8pHkomXviyRkSPMqTpt8+CM0997xh5NU7bVs6a6Jv 4vSA1ODBeytFm7t3aZCeKXUkHYuV9xKoLdFm4qL1IVSy7Swk4mpjMCwOEzem 16S+joWKy82ORep4bAjft7p4es25/OzgvDH3OcsFrlGpNyp7deqoyQ3rANkK fFNbCuZMfxJrFBrSvabpB9pe9J0Uo0Ykhrjz3nVOS6TaNseJCfvsiQT3MaDy aKaGK6ExXmks82SLMXpPObdBBwtNE/HEutwk0d276ZiVRXcfLabJipGtbBGO BcI7VxYjXSep4zyzZC5bFExiPOgRg33C+yDdXtSe0PboB2Ds8GPYnk48MQ+l jLSDN4zOosmIZ1f4YKZGb1AOTmgIiS6HmGvC6FA1IuaIYzKotc8XmEp4TqG3 Mn1dQFQGCkasViUnFEbC6lswgiPoyfKdw5A1ZGzfQ+L1w+fta8b1pKzr/akM XiE6EPeaDPTZm7EcLlyxc/0Ea0Cqz1bcWJu5FS0sYk15dMzZ7VleX76jzcwt sTIQa8jREWa3A0Ih1kia3UW1oAOkL1nR0Q1xJ9n7CMPntJQvNLrcKj8vuisW c//ycTYFqYG6KKBy6DSeEEmgcJLfLxA969LWrRmhW1LMn8gJ9En3EnA4gpgp hBiU4OZkKoh42vW4w2ZKWK+4R9bIvAPm8cTdtorKLUjMs9cuZnhQ+Tx23cLS 2cfj1moXFWdrroerUyijK5aqEPdd9HqmazXF6D+wQo1tx7wqzYwPsbMun6+t dp7yOlACfVWvQV9xuskWhy0b3VSz0k01M91Uc9BNNSPdVG+MbpJm3hFaZCVG KUk2dmpexBDEBx9aMNzpmLYAofe8xJJdHdFYUzc0UyuR1xutaIamkLwZvSP3 Dh8/17tqZbv7+W9YxXcXa2smRWht3cjvJYjiojUGpW6ICdcE8wkHZutClFKs l5bc607GPsCiwh/Z42WJhrdE1zvtOH76Li6uQNtcyqLLongYW92s9VfV/uy9 laT06KnpAWbnhXBT1iTdG4cmElZWrudJ9OHEB+Vy3it5ntBqTPuKknz6u1PE x0xWEYkRJ8kV7u2bw9Z4DPho1iuzLiXD94cwS1PFmHjNVx/Dec0gUm7nTE0n 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 ZmQgdmMvkvPiJXFPZ9rq5V0bGfgMCyR90ldJu8jMpVIVz71eYjkaLADiPnjn PnjvPhCA+R/HqgtI7tbp7Ou0nBqAbf9097AJOq247CrWFDlV8QLvrALvrQIW C9tzKcvtH5++PCxbYbwiT/l3KeXfecq/d8vHhMAi1ZPkBiRi1bd36tsXU3Jm N29PjfPbCkToYLnw11aknEnKUii9Nzm1t1FvSy1vU0DeClkgsgln0arkNTnw pjTSTC1n4b4lL9/dNoXXqaPRvHAteVZ9F11fX822SmnMzKmNp9dwR39LFHil I8ysasvRW678W4PLD6FPMEoQnUbTYXQKL2iHEn3IF/Q404lo2tZk5j181urp gPMhnhptyxLj3mBys1r/7dXgr63K/jU0OJxvAScRgAYPJx/eYIG1F5jntElP 1oKS+Xr5IRdoT0dAkRM6dVz5DV++haKn1UqjeXBU9IDTJUYggLD0YvSXG1i/ c61ppWLyojbP8u9dCEvF5KHiMAizyDrZBy1YQg09+4ifJQwYgdBH3vbYcb6d gYNwfbaoNXXm4jmv6B7/PprcQEBeJaM9FqK5z1LupHk+aW4GFsx/ZuIE+Y7t YG56TbiBs485N8Vfbz1h7sy9oKRNfIa9ZraZv237yi9zkFJ6lHOLV3qUe/PG VZIXQ6IKazHMtAYGw950HJS2klY3bDbf8lbauh17xlu875t7S4X7tFyLc64j n8VupWaf0/wHLs8LOA1ZxAqfXjnF3HkL1/V5rezf7CI+5+TetqU7u0n4K6zX CTbZ/It07h3rt7I8z2fSnXflRJ/5Vo4sM5lXzVleEnlcJNSau7cXUTqXpGX3 zi8h6z54zmM5FV/zNlo3b/IweG/PWnOZEBdx0KkwmrDMUE8zty7WpmVTUIJf lMNIfKsO9ROXivMGwddqeV4Jk8VutpQqXZYyyYs8/lPUzp2UyS5lriMcFuU5 xZyzY1ACrvLZtH33kMGQe3M5KJly8yZPdq7td5Ms55LKGcie9wjHwM583id/ BSGaUtdA4YIlMEjZD2E+s0hO9c48uYDCyQcZyX6uUO29r9DdfZGvLIlv3qJi kI1BCzdw7DK3RFUQLuTwJIfdRuNjvnOYL2EzSZ++b/bwxFuHh/71z1wW6lVn Du0vfssFB5G1sua6Gzgw+cLHInlVgHz7r9jy727B4kv97P1Y7FgEW/YfldiF 7m6ofNk92szjGpw4zz5OLaeZ77gQ98YLaUb9qqc/i9N1MoHAjRiYuXk9Z4GK yxznUjPhSr8lEmvsC6pIGa5ILELHuhbdfCP61Vx3JfyVEjq7vcpYxrsQvmJG g39lXS2/kiQyld1QplaPCz58393b2yrWI/P3q8iqLGnBfcY1DW2KHpzaD17l tZYEYsB7r8pVUoNg0KAYbcsmZEK35rjkebahnqHAafIadhn2J7+9hcX6j2Ih wP9/VqUedkf6e6vd/gspZTO1JQZdtojJBloawgrzkIzB5uOrMeh2yFlMlYNh QWhxFM0H/kQjJXilVE4NCrcu6luB3kqbgSfSm8rDG3l3N2nZeCMjQo9LA0Uk AiSRpfRcvcAN8aqI1FggnrAPC3obVrtpD9nYkd2mCd24RhTp/OUikNyBCi6H 5XOM9l3KaEsZR/suPtrS3KN9FxutKXp9yc+jpIzoWZAgxXUyFjZmY0EtdvG6 c6DBWkHcxIc3v4W6BRd47DKwCOh2xGqTpdyrGaWMJShjwdNsBV+9NzSPGquz JKGIZISkjstKjmpp5IXUgcGw4nayXOuOfuOHFH4rLnm2PYLDqfrOW7Wkq3oU IBVw7L238sbbREV8AssXVAX9WithGRRzQcKOen4N3TVhYEpozKPz2/XSdGL8 ZNNN5QpqBaEzVEifRDPFaOoMgNYyvZzCu8EXmYQST0JsDgQrmvMg0AhvPPhX 2mPM7c3WvQXn5mv3NFO7r3K1+iqpzTn1/Obv01ZnrsBAmd3EM4UGyuBAPkdk n2T1fpZyrv7vaunfjGJ+85F4/jJKfqoWb8nyRF2eX8+lzisBy4odqXiZFXrD NTZSyq1nPMoDZtaISplGpL1N/Ep77jHZHjqGmrHwDUkGVTxpQzKXJm5vSKwZ e5dhxtKGsjl7KNrOGq88x2AU4L7AFF94T7V1jT3V1gL2VB6/9PSpTBvMo8xT 6RnNo2tM5be0Rczk5pfdXXBhl4xubiuXedNmrRF66yUfp23c0nd3G7E+3K2h fOytvqn6SNsFbsU6cfeQ8rG3+qMvtImc94xHgHbD5yeil3l2ill2iUmTM3Mf nHogZVdMPc3Bz+J3wglicp6tFjV1mT3ny1KOXdbMLdas85JZmy5Rz/Pw9Mb2 Wt/miYiJztjWybIlmjj2lzy922h9wY3Wf8AZiceAljgntJMqxecEjVeOEq6k jn9LZYFh8UcWODazwWG2m7Qd8uPjNBscWznxcZq4MUnAR0Y4HuXFhw+QR2+/ oY1Bss4/x0mOSUcLOvMxp+LG9gqwjIqn8C3nFiLXCY+Hd6HH34xXmXYSCc2Y 7/7/9r61q41jWfR+xev+iI7PigNGwnpgY5uQvYUQWGfzigTJzsnO0h2kEUws NIpGwmYnPr/9VlU/5yWNYLCFd2slRprpqu6urq6urqqunrWlmDGDQ605z7bl SEFjvvuie4/l9J2kDWQq4rCQ/gJembTBztDiVMx33TCQb+YRbhgAaads/Prd +CXQJTypxJ5Uw0/OY1DnMahzCZXDdgT+Y4WvY1NCI5Lq6aERSnXzqBGbvVlR wxgqpoDDhaqJhSpGofPUCs/fh4slVHgervA8scJzUeGj2D3Nj7N7/NsrzqQL hNoRwP32VYQip20Vb05Uff+a/VhccKRePhseq9/FWIner8zYzIluzWBFQpfq 1BIDsKK6Np8ZefsMstx5W7zoNjBpN8q3gSaptRQOkzt187eSXrXCNd+VZFZd mVP1qwWqrsSrfjWj6uqcqrcWqLoar3rrt9jII+N8YStAjBDnOQ7/+WLDf57j 8J8vNvznOQ7/ebbhf+z2DmMlursXVEnEHGwmETVwXrHE3CrxYtWczC8RnXFe sSytOxetWzpLTqKiBZD0LBc3sFAKwsh/T0GeZKxJWWez2JCE1SZ90UQk6mm6 wWbW4meiqCSieJWMopqIopqIYkuiWGwxWsCylb6yqNadL0Kj80QanS9Co/NE Gp1nodFjtbCpkbuXqS2d31PRGjpgRqSV7EgT8jWlIK1mR1qdgXSxWXIvI2H6 vJndg/PMtD7PTuvzzLQ+z07r87m0vpdBEzMfDtyPXyLzodRV8jBd2niHz2Ra tPY5a5+z9jlrn7P2uZiBxpoqHthUYbfvj3b7bjeFqVS816bwvgHQ7seRM+x9 lsOmdz9get+Q5sd6anTp9ez5mfH+EzTx2Em73A7VZVDJUw/V3UkpT8o0kHiu Tj1YtNMZTt9l0NXTT9/dSVv/Ck/fPZ4DcXNOm5Xvd9rsEaQseYDLl/8DjpjJ wst/yGw6HDnd98uqY0VtrO8jvyqhX7mFcz5WnWyegTXJfKp4iegZek0A+mU1 9tIGRS6Tqqc3+ynJBZSRdWZfsqX1mGltXbgrhmnnYZXWL51dT47Ue2Ok+C+z r/Psr+/ztb8mmg/vY399H7a/6k5XQp2uLNjpSoZOb2bvdEJk2ea9Ol1J7nQ1 1Onqgp2uZuj0y+ydTohpe3mvTlf/46zMWXYvxtI5o0RieFioxMNFhj24DXlu rsaoLDTRp9lsq2HASgJgchDRZhiwmgCYHDq0fKfyvqY9Wmz0527QxHK10O5M wDzw1syY84Z1KsammXoYDdXJ0sPKZ+lhJbGH1YV7GI0bytLD6mfpYdXo4b32 1hcTf8FUmVn31cmpMRP21KLtGR0tfI2kRulmiMCoFaMlKhzBmM+ZqXI18S++ MFXmXZxkvTlLt4Gfm2L0Xjv83/Pc4SeE6dxnh/97zKL5+yKRVRmSQ2bw5KQn h7yTKyecNm9GYkibV/+zbo3yTXb4oPuW5OiUeB7DhXIMLrB7+Qxbgv/gJIH3 1rvcBV0amT0aKVnJs/ozPocH47EqIdZB8XWrLw+3uH/pWJT5Zv3fczPrV+5l 1q98TrN+tk5nMesv4MtIMOvfz5exoFk/W6ezmPUX8GUkmPXv58t4fGb9++fg fjxG+5nKb/aYpcVs75W72t6rd7W9b1rbu7W9W9u7tb1n3ANeOOOxB1Vnv5F2 9sYvZSe32F5Ka7d48+u2Qb+fcX2D1YPVDg/xHmp/CmtyECIVvl3Fi5dK28xj 37NXm9tsfd2IHJijgQsV4GbgfdCL1UFr5uv92a/1+ScvrBhF2/paNTWMoF4P VZAMXIn0M4zC63k3HUmxma3tZy8Z/DGeJBdVXYR9Xm/gqkJcQ9F7tEwjNvCd 3oyxCL+OjIVqyGTsQPW6A0KrCDfF2MUbU2rBjfnidphrmIaLTMGlm4EF5n7s uqMJg8FBv1izXn/4SZnXrNu0s27+rFvaaSUUXZhY7NrpXnlDsZfqe92J5w+d AfMwJQZqxw4+kKsuzT65sZIlAmqgA7or4nPGgG/idqFWQNN3HfiiVpuE6XwD kxnte3lPZdHvbGQyiRJQx+5MFyKGpg0bQM2g7d+BNrwhy0aeiX/dhZ2PQR5q LVIJtjITf3I7kvSQZTi/XDk9pKT7gSh0Mb0MSOoBASZjTt4AkLMPPmh7ztif DntphOFNWBrC/Jc77MFKgXK+efZOWVbFCoFdaA577se3yFkvoB8vgE59b+AW iUobV0927v950qq3GSJNrwXa2GfF49T3xWIx7d1Kmf23M2TlN1slViq9pf9Y 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 tUAWyALlJFMwjrZq42gtkAWyQDnJFIyjrdo4WgtkgSxQTjIF42irNo7WAlkg C5STTME42qqNo7VAFsgC5SRTMI62auNoLZAFskA5yRSMo62+zpwEfnm6Y4Ee EGhuHjSdCEx9d5PTHL9rt16n5wQD1ntT3MTka7P4b4koY4EskAWyQBbIAlkg C2SBlhHoyfqnbdQ48VKt0xbruX1v6E08fxiwvj9mkyuX9ccvSyV27XSvvKG7 gcCs7br0ar+Frw7bTSrsXY8G7rU7nDiIAHBNHG8QbPCLvwJ82gWInzpQUad+ cnzWOjnsNI/3T3gNHdB3f/2N7TxZ/1Oo1GVQoculLRdVZ/G9y9XoUmmr3O9J lfqNi6p2gkotMxpnydpbDX9PwlbPgs7U92ei282GT3zV+LZS0kuf7d4hG7Sb thvZNbNBxzYjL4vl2fuQz8f04Q1YtRvrZhe4o9Tl36vlat/tVl8ndvmdTEMt ugy/y8VXVerndKiYGzoLzK0mxgZbrO+PSDZYoK8CKGUOv8aUWMsyiy2QBbJA FsgCWaCvBmihO1L096QLQ2ZdT1x5uVWsvKosvJLf37cR3U3MaP/MDrzaLFa2 yp/NsZG1X2lbQt2vwwW3XDMH+XAmjbaARq9nOx+XaG4oEleov5Uy9r5iUMKJ sE6/360kUqU5ax9aef2mWH35+TjHAlmg3AQQXhXcaNRaeEQ9ZyPDEvV1yYGM oWjbkViSkYCF0AsWGoSU9WGzvFXcrM5eH5aYGHloFQfHjUXvrpuLb8HL9Wbi 28+5ffuqfckcUX1VfFlenCOWiDcskAV6FHJp5m2ojdN6DndqyitfxVxHpJXi Vi5reP7b45m0eP2VXaG7LDgkfXO7Hjp3hi2/sl5GC5ShqMl5ZYPbEr7Png55 3LccZeT2oxS87Zjcfb0k8u6xt0OQd0nFbttKXQuUXeoiyzSteehLAhlzdx+W r4XtQ3ktGPuzrAuvtjaLW68ejZfGAlkgC5QfkJIK6Epot/JXLxKFztZWpVgu VaqPz8ptgSyQBbJAFsgCWSALZIEeNZBhl31tbK2Tv3dL/XKpGtpmG078yFGs /Qc5irXk5LRAXx2QNmI53Su2/6PaxaE9y2Ejxxszv8+qFXbhTfQWTzF2Hias /R/v5vyJnxP9MmZ92w7bjv/cdvAZvGVn8AO1QyocP5YX8fbcXaIvycJkgfJU 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 n/8Pn+hM1AC4CwA= --------------060102010504060002080204--