2015-12-26 Mike Frysinger * config.in, configure: Regenerate. 2015-12-26 Mike Frysinger * devices.c (bfin_mmr_invalid): Delete cpu arg and add missing arg. Add cpu, rw, and reason local vars. Rewrite error messages. Add more todo comments. (dv_bfin_mmr_invalid): Update bfin_mmr_invalid call. (dv_bfin_mmr_require): Likewise. Change return to bool. Check alignment of the addr variable. (bfin_mmr_check, dv_bfin_mmr_check, device_io_read_buffer, device_io_write_buffer): Delete. (dv_bfin_mmr_require_16_32): Define. * devices.h (dv_bfin_mmr_require): Change return to bool. (dv_bfin_mmr_check): Delete. (dv_bfin_mmr_require_16_32): Define. Add a few comments. * dv-bfin_cec.c (bfin_cec_io_write_buffer): Call dv_bfin_mmr_require_32. (bfin_cec_io_read_buffer): Likewise. * dv-bfin_ctimer.c (bfin_ctimer_io_write_buffer): Likewise. (bfin_ctimer_io_read_buffer): Likewise. * dv-bfin_dma.c (bfin_dma_io_write_buffer): Call dv_bfin_mmr_require_16_32. Return 0 in the default case. (bfin_dma_io_read_buffer): Call dv_bfin_mmr_require_16_32. * dv-bfin_ebiu_amc.c (bf50x_ebiu_amc_io_write_buffer): Return 0 when dv_bfin_mmr_require_16 fails and in the default case. (bf53x_ebiu_amc_io_write_buffer): Likewise. (bf54x_ebiu_amc_io_write_buffer): Likewise. (bfin_ebiu_amc_io_write_buffer): Call dv_bfin_mmr_require_16_32. (bf50x_ebiu_amc_io_read_buffer): Return 0 when dv_bfin_mmr_require_16 fails and in the default case. (bf53x_ebiu_amc_io_read_buffer): Likewise. (bf54x_ebiu_amc_io_read_buffer): Likewise. (bfin_ebiu_amc_io_read_buffer): Call dv_bfin_mmr_require_16_32. * dv-bfin_ebiu_ddrc.c (bfin_ebiu_ddrc_io_write_buffer): Call dv_bfin_mmr_require_16_32. Return 0 when dv_bfin_mmr_require_16 or dv_bfin_mmr_require_32 fails. (bfin_ebiu_ddrc_io_read_buffer): Likewise. * dv-bfin_ebiu_sdc.c (bfin_ebiu_sdc_io_write_buffer): Likewise. (bfin_ebiu_sdc_io_read_buffer): Likewise. * dv-bfin_emac.c (bfin_emac_io_write_buffer): Return 0 when dv_bfin_mmr_require_32 fails and in the default case. (bfin_emac_io_read_buffer): Likewise. * dv-bfin_eppi.c (bfin_eppi_io_write_buffer): Call dv_bfin_mmr_require_16_32 and return 0 when dv_bfin_mmr_require_16 or dv_bfin_mmr_require_32 fails and in the default case. (bfin_eppi_io_read_buffer): Likewise. * dv-bfin_evt.c (bfin_evt_io_write_buffer): Call dv_bfin_mmr_require_32. (bfin_evt_io_read_buffer): Likewise. * dv-bfin_gpio.c (bfin_gpio_io_write_buffer): Move call to dv_bfin_mmr_require_16 to earlier in the func. Return 0 when it fails and in the default case. (bfin_gpio_io_read_buffer): Likewise. * dv-bfin_gpio2.c (bfin_gpio_io_write_buffer): Move call to dv_bfin_mmr_require_16 and dv_bfin_mmr_require_32 to earlier in the func. Return 0 when it fails and in the default case. (bfin_gpio_io_read_buffer): Likewise. * dv-bfin_gptimer.c (bfin_gptimer_io_write_buffer): Call dv_bfin_mmr_require_16_32. Return 0 when dv_bfin_mmr_require_16 or dv_bfin_mmr_require_32 fails and in the default case. (bfin_gptimer_io_read_buffer): Likewise. * dv-bfin_jtag.c (bfin_jtag_io_write_buffer): Call dv_bfin_mmr_require_32. Return 0 in the default case. (bfin_jtag_io_read_buffer): Likewise. Delete while(1) loop. * dv-bfin_mmu.c (bfin_mmu_io_write_buffer): Call dv_bfin_mmr_require_32. Return 0 in the default case. (bfin_mmu_io_read_buffer): Likewise. Delete while(1) loop. * dv-bfin_nfc.c (bfin_nfc_io_write_buffer): Move call to dv_bfin_mmr_require_16 to earlier in the func. Return 0 when it fails and in the default case. (bfin_nfc_io_read_buffer): Likewise. * dv-bfin_otp.c (bfin_otp_io_write_buffer): Call dv_bfin_mmr_require_16_32. Return 0 when dv_bfin_mmr_require_16 or dv_bfin_mmr_require_32 fails and in the default case. (bfin_otp_io_read_buffer): Likewise. * dv-bfin_pfmon.c (bfin_pfmon_io_write_buffer): Call dv_bfin_mmr_require_32. Return 0 in the default case. (bfin_pfmon_io_read_buffer): Likewise. Delete while(1) loop. * dv-bfin_pint.c (bfin_pint_io_write_buffer): Move call to dv_bfin_mmr_require_32 to earlier in the func. Return 0 when it fails and in the default case. (bfin_pint_io_read_buffer): Likewise. * dv-bfin_pll.c (bfin_pll_io_write_buffer): Call dv_bfin_mmr_require_16_32. Return 0 when dv_bfin_mmr_require_16 fails. (bfin_pll_io_read_buffer): Likewise. * dv-bfin_ppi.c (bfin_ppi_io_write_buffer): Move call to dv_bfin_mmr_require_16 to earlier in the func. Return 0 when it fails and in the default case. 9bfin_ppi_io_read_buffer): Likewise. * dv-bfin_rtc.c (bfin_rtc_io_write_buffer): Call dv_bfin_mmr_require_16_32. (bfin_rtc_io_read_buffer): Likewise. * dv-bfin_sic.c (bfin_sic_52x_io_write_buffer): Likewise. (bfin_sic_52x_io_read_buffer, bfin_sic_537_io_write_buffer, bfin_sic_537_io_read_buffer, bfin_sic_54x_io_write_buffer, bfin_sic_54x_io_read_buffer, bfin_sic_561_io_write_buffer, bfin_sic_561_io_read_buffer): Likewise. * dv-bfin_spi.c (bfin_spi_io_write_buffer): Move call to dv_bfin_mmr_require_16 to earlier in the func. Return 0 when it fails and in the default case. (bfin_spi_io_read_buffer): Likewise. * dv-bfin_trace.c (bfin_trace_io_write_buffer): Call dv_bfin_mmr_require_32. Return 0 in the default case. (bfin_trace_io_read_buffer): Likewise. Delete while(1) loop. * dv-bfin_twi.c (bfin_twi_io_write_buffer): Move call to dv_bfin_mmr_require_16 to earlier in the func. Return 0 when it fails and in the default case. (bfin_twi_io_read_buffer): Likewise. * dv-bfin_uart.c (bfin_uart_io_write_buffer): Likewise. (bfin_uart_io_read_buffer): Likewise. * dv-bfin_uart2.c (bfin_uart_io_write_buffer): Likewise. (bfin_uart_io_read_buffer): Likewise. * dv-bfin_wdog.c (bfin_wdog_io_write_buffer): Call dv_bfin_mmr_require_16_32. (bfin_wdog_io_read_buffer): Likewise. Return 0 when dv_bfin_mmr_require_16 fails. * dv-bfin_wp.c (bfin_wp_io_write_buffer): Call dv_bfin_mmr_require_32. Return 0 in the default case. (bfin_wp_io_read_buffer): Likewise. Delete while(1) loop. * tconfig.h: Delete file. 2015-12-26 Mike Frysinger * bfin-sim.c (decode_LDST_0): Add 4th element to posts array. 2015-12-26 Mike Frysinger * interp.c (sim_create_inferior): Update comment and argv check. 2015-12-25 Mike Frysinger * Makefile.in (SIM_OBJS): Delete sim-model.o. * tconfig.h (SIM_HAVE_MODEL): Delete. 2015-12-25 Mike Frysinger * machs.c: Rename MACH to SIM_MACH, MACH_IMP_PROPERTIES to SIM_MACH_IMP_PROPERTIES, and MODEL to SIM_MODEL. 2015-12-25 Mike Frysinger * devices.c (device_error): Delete. 2015-12-24 Mike Frysinger * tconfig.h (SIM_HANDLES_LMA): Delete. 2015-11-17 Mike Frysinger * tconfig.h (WITH_MODULO_MEMORY): Delete. 2015-11-15 Mike Frysinger * Makefile.in (SIM_OBJS): Delete sim-reason.o, sim-reg.o, and sim-stop.o. 2015-11-14 Mike Frysinger * interp.c (sim_close): Delete. 2015-10-11 Mike Frysinger PR sim/18407 * bfin-sim.c (decode_dsp32shiftimm_0): Call ashiftrt when count is less than 0. 2015-06-24 Mike Frysinger * interp.c (trace_register): Delete. * sim-main.h (trace_register, TRACE_REGISTER, TRACE_REG): Delete. 2015-06-23 Mike Frysinger * configure: Regenerate. 2015-06-17 Mike Frysinger * interp.c: Include sim-syscall.h. (syscall_read_mem, syscall_write_mem): Delete. (bfin_syscall): Change syscall_read_mem/syscall_write_mem to sim_syscall_read_mem/sim_syscall_write_mem. 2015-06-17 Mike Frysinger * linux-targ-map.h: Update example comments. (cb_linux_syscall_map): Fill out name field. (cb_linux_errno_map, cb_linux_open_map, cb_linux_signal_map): Likewise. 2015-06-12 Mike Frysinger * interp.c: Expand comment on CB_SYS_xxx defines. 2015-06-12 Mike Frysinger * configure: Regenerate. 2015-06-12 Mike Frysinger * configure: Regenerate. 2015-06-12 Mike Frysinger * bfin-sim.c (hwloop_get_next_pc): Change TRACE_BRANCH to BFIN_TRACE_BRANCH. (decode_ProgCtrl_0, decode_BRCC_0, decode_UJUMP_0, decode_CALLa_0): Likewise. * bfin-sim.h (__PUT_MEM, __GET_MEM): Change TRACE_CORE to BFIN_TRACE_CORE. * dv-bfin_cec.c (_cec_raise, cec_latch, cec_return): Change TRACE_BRANCH to BFIN_TRACE_BRANCH. * interp.c (syscall_read_mem, syscall_write_mem): Change MAYBE_TRACE to TRACE_CORE. * sim-main.h (MAYBE_TRACE, TRACE_INSN, TRACE_DECODE, TRACE_EXTRACT, TRACE_SYSCALL, TRACE_EVENTS): Delete. (TRACE_CORE): Rename to ... (BFIN_TRACE_CORE): ... this. Change MAYBE_TRACE to TRACE_CORE. (TRACE_BRANCH): Rename to ... (BFIN_TRACE_BRANCH): ... this. Change MAYBE_TRACE to TRACE_BRANCH. 2015-04-24 David Binderman Nick Clifton PR 18273 * bfin-sim.c (decode_dsp32alu_0): Remove spurious check for s == 1. 2015-04-18 Mike Frysinger * sim-main.h (SIM_CPU): Add note to clean this up. 2015-04-18 Mike Frysinger * sim-main.h (sim_cia): Delete. 2015-04-17 Mike Frysinger * sim-main.h (CIA_GET, CIA_SET): Delete. 2015-04-15 Mike Frysinger * Makefile.in (SIM_OBJS): Delete sim-cpu.o. * sim-main.h (STATE_CPU): Delete. 2015-04-13 Mike Frysinger * configure: Regenerate. 2015-04-06 Mike Frysinger * Makefile.in (SIM_OBJS): Delete sim-engine.o and sim-hrw.o. 2015-04-01 Mike Frysinger * Makefile.in (SIM_OBJS): Delete $(SIM_EXTRA_OBJS). 2015-03-31 Mike Frysinger * config.in, configure: Regenerate. 2015-03-24 Mike Frysinger * configure: Regenerate. 2015-03-23 Mike Frysinger * configure: Regenerate. 2015-03-23 Mike Frysinger * configure: Regenerate. * configure.ac (BFIN_SIM_EXTRA_OBJS): Delete. * Makefile.in (SIM_OBJS): Delete @BFIN_SIM_EXTRA_OBJS@. 2015-03-23 Mike Frysinger * dv-bfin_uart.c [!HAVE_DV_SOCKSER] (dv_sockser_status, dv_sockser_write, dv_sockser_read): Delete. 2015-03-23 Mike Frysinger * sim-main.h: Delete run-sim.h include. 2015-03-16 Mike Frysinger * aclocal.m4, config.in, configure: Regenerate. * tconfig.in: Rename file ... * tconfig.h: ... here. 2015-03-15 Mike Frysinger * tconfig.in: Delete includes. [HAVE_DV_SOCKSER]: Delete. 2015-03-14 Mike Frysinger * bfin-sim.c (decode_dsp32alu_0): Change v to bu32. 2015-03-14 Mike Frysinger * Makefile.in (SIM_RUN_OBJS): Delete. 2015-03-10 Mike Frysinger PR sim/13160 * Makefile.in ($(srcdir)/linux-fixed-code.h): Put a ; after the print sed command for BSD compatibility. 2015-03-08 Mike Frysinger PR sim/13160 * Makefile.in ($(srcdir)/linux-fixed-code.h): Specify the asm input directly rather than use $<. Move the file name to the end of the sed command to be POSIX compliant. 2014-08-19 Alan Modra * configure: Regenerate. 2014-08-15 Roland McGrath * configure: Regenerate. * config.in: Regenerate. 2014-03-04 Mike Frysinger * configure: Regenerate. 2013-09-23 Alan Modra * configure: Regenerate. 2013-06-23 Mike Frysinger * bfin-sim.c (decode_dsp32alu_0): Add note about broken handling of SEARCH with parallel insns. 2013-06-23 Mike Frysinger * bfin-sim.c (decode_dsp32shift_0): Make sure HLs is 0 after last insn that uses it. (decode_dsp32shiftimm_0): Likewise. Require HLs be less than 2 for accumulator shift insns. 2013-06-18 Mike Frysinger * bfin-sim.c (decode_dsp32alu_0): Check more opcode fields before decoding various insns. 2013-06-17 Mike Frysinger * TODO: Add more notes. 2013-06-09 Mike Frysinger * Makefile.in ($(srcdir)/linux-fixed-code.h): Add @MAINTAINER_MODE_TRUE@ as the first item in the dependency list. 2013-06-03 Mike Frysinger * aclocal.m4, configure: Regenerate. 2013-05-10 Freddie Chopin * configure: Rebuild. 2013-03-26 Mike Frysinger * aclocal.m4, configure: Regenerate. 2013-03-23 Joel Sherrill * configure.ac: Use $SIM_DV_SOCKSER_O. * configure: Regenerated. 2012-12-20 Joel Brobecker * aclocal.m4: Revert the previous change changing the license from GPL v2 or later to GPL v3 or later (this file was generated). 2012-12-20 Joel Brobecker * linux-fixed-code.s: Revert the previous change changing the license from GPL v2 or later to GPL v3 or later. 2012-07-31 Mike Frysinger * machs.c (bf54x_roms): Pass 0x1000 to alias field of BFROM, and 0x10000 to the alias field of BFROMA. (bf561_roms): Pass 0x1000 to alias field of BFROM. (bf59x_roms): Pass 0x10000 to alias field of BFROMA. 2012-07-31 Mike Frysinger * machs.c (bfin_reg_fetch): Change return 0 to return -1, and return -1 to return 4. (bfin_reg_store): Likewise. 2012-06-15 Joel Brobecker * config.in, configure: Regenerate. 2012-04-09 Mike Frysinger * configure.ac (SIM_AC_OPTION_HARDWARE): Add bfin_pint. * configure: Regenerate. * dv-bfin_pint.c, dv-bfin_pint.h: New device model. * machs.c (bf542_dev): Add PINT register blocks. (bf544_dev, bf547_dev): Likewise. (PINT_PIQS): Define. (bf54x_port): Add pint/gpio routing. * machs.h (BFIN_MMR_PINT_SIZE): Define. 2012-04-09 Mike Frysinger * configure.ac (SIM_AC_OPTION_HARDWARE): Add bfin_gpio2. * configure: Regenerate. * dv-bfin_gpio2.c, dv-bfin_gpio2.h: New device model. * machs.c (bf54x_mem): Delete GPIO mem stub. (bf542_dev): Add GPIO register blocks. (bf544_dev, bf547_dev): Likewise. * machs.h (BFIN_MMR_GPIO2_SIZE): Define. 2012-04-09 Robin Getz * bfin-sim.c (decode_dsp32shift_0): Extract the sign for ASHIFT and LSHIFT, and set ASTAT based on the before/after values. Rename "val" to "acc" to be consistent with other code branches. 2012-04-09 Robin Getz * bfin-sim.c (sgn_extend): New helper. (decode_dsp32shiftimm_0): Call lshift when newimmag is more than 16, otherwise call ashiftrt. Set ASTAT fields as needed. For accumulator shifts, call new sgn_extend helper. 2012-04-08 Mike Frysinger * bfin-sim.c (illegal_instruction_or_combination): New helper. (decode_ProgCtrl_0): Call illegal_instruction_or_combination instead of illegal_instruction. (decode_PushPopReg_0, decode_CCflag_0, decode_CC2dreg_0, decode_LDSTpmod_0, decode_dagMODim_0, decode_dagMODik_0, decode_dspLDST_0, decode_LDST_0, _interp_insn_bfin): Likewise. (decode_PushPopMultiple_0): Call illegal_instruction_combination when PARALLEL_GROUP is not BFIN_PARALLEL_NONE. (decode_CCflag_0, decode_REGMV_0, decode_ALU2op_0, decode_PTR2op_0, decode_COMPI2opD_0, decode_COMPI2opP_0): Likewise. (decode_CC2stat_0): Check PARALLEL_GROUP before cbit. (decode_LDSTpmod_0): Call illegal_instruction_combination when PARALLEL_GROUP is BFIN_PARALLEL_GROUP2. (decode_dagMODim_0, decode_dagMODik_0, decode_LDST_0, decode_LDSTiiFP_0, decode_LDSTii_0): Likewise. 2012-04-08 Mike Frysinger * bfin-sim.h (bfin_parallel_group): New enum. (bfin_cpu_state): Add new "group" member. (PARALLEL_GROUP): Define. * bfin-sim.c (decode_ProgCtrl_0): Change INSN_LEN check to PARALLEL_GROUP. (decode_CaCTRL_0, decode_PushPopReg_0, decode_ccMV_0, decode_CCflag_0, decode_CC2dreg_0, decode_CC2stat_0, decode_BRCC_0, decode_UJUMP_0, decode_LOGI2op_0, decode_LoopSetup_0, decode_LDIMMhalf_0, decode_CALLa_0, decode_linkage_0): Likewise. (_interp_insn_bfin): Set PARALLEL_GROUP. (interp_insn_bfin): Likewise. 2012-04-08 Mike Frysinger * bfin-sim.c (decode_dsp32alu_0): Delete extra space in TRACE_INSN. 2012-04-01 Mike Frysinger * bfin-sim.c (_interp_insn_bfin): Call illegal_instruction_combination when INSN_LEN is non-zero before 32bit decode. 2012-04-01 Mike Frysinger * bfin-dis.c (fmtconst): Replace decimal handling with a single sprintf call and the '*' field width. 2012-04-01 Mike Frysinger * machs.c (bfin_model_map_bfrom): Return when mnum is 535. 2012-04-01 Mike Frysinger * interp.c (bfin_user_init): Move auxvt_size decl from top to inside of auxvt check. 2012-03-31 Mike Frysinger * dv-bfin_sic.c (bfin_sic_finish): Change iwr1 to iwr2. 2012-03-31 Mike Frysinger * devices.c: Include devices.h. 2012-03-24 Mike Frysinger * aclocal.m4, config.in, configure: Regenerate. 2012-03-19 Robin Getz Mike Frysinger * bfin-sim.c (lshift): Add an overflow flag. Delete now unused i, j, and tmp vars. Add a new v_i var. Split the overflow logic out from the saturate logic. Do not set V ASTAT bits when working with accumulators. (decode_ALU2op_0): Add new argument to lshift call. (decode_LOGI2op_0, decode_dsp32shift_0, decode_dsp32shiftimm_0): Likewise. 2012-03-18 Mike Frysinger * dv-bfin_ebiu_amc.c (struct bfin_ebiu_amc): Add bank_base. (bfin_ebiu_amc_write_amgctl): Replace BFIN_EBIU_AMC_BASE with amc->bank_base. (bfin_ebiu_amc_finish): Assign BFIN_EBIU_AMC_BASE to amc->bank_base. 2012-03-18 Mike Frysinger * dv-bfin_ebiu_amc.c (bfin_ebiu_amc_attach_address_callback): Use ARRAY_SIZE rather than hardcoded constant. 2012-02-04 Mike Frysinger * config.in: Regenerate. * configure: Likewise. * configure.ac: Add linux/types.h to AC_CHECK_HEADERS. * dv-eth_phy.c: Check for HAVE_LINUX_TYPES_H, and delete __u16 and _LINUX_TYPES_H defines. 2011-12-03 Mike Frysinger * interp.c (bfin_syscall): Increase _tbuf storage. Declare new local tstr buffer. Call cb_get_string on tstr when handling CB_SYS_stat64, CB_SYS_lstat64, CB_SYS_open, CB_SYS_write, CB_SYS_unlink, CB_SYS_truncate, CB_SYS_rename, CB_SYS_stat, CB_SYS_lstat. Include tstr in the tbuf output. 2011-12-03 Mike Frysinger * Makefile.in: Delete all dependency rules. * aclocal.m4, configure: Regenerate. 2011-10-19 Mike Frysinger * configure: Regenerate after common/acinclude.m4 update. 2011-10-17 Mike Frysinger * configure.ac: Change include to common/acinclude.m4. * aclocal.m4, configure: Regenerate. 2011-10-17 Mike Frysinger * configure.ac: Change AC_PREREQ to 2.64. Delete AC_CONFIG_HEADER call. Replace common.m4 include with SIM_AC_COMMON. * configure: Regenerate. 2011-09-28 Mike Frysinger * bfin-sim.c (decode_dsp32shift_0): Use STORE() for VIT_MAX insns. 2011-07-05 Mike Frysinger * interp.c (sim_do_command): Delete. 2011-07-01 Mike Frysinger * interp.c (cb_linux_stat_map_32, cb_linux_stat_map_64): Rename from stat_map_32 and stat_map_64. (cb_libgloss_stat_map_32): New stat map. (stat_map_32, stat_map_64): New stat map pointers. (bfin_user_init): Assign stat_map_32 to cb_linux_stat_map_32 and stat_map_64 to cb_linux_stat_map_64. (bfin_virtual_init): New function. (sim_create_inferior): Call bfin_virtual_init for all other envs. 2011-06-22 Mike Frysinger * interp.c (bfin_syscall): Delete old comment. Set dreg 1 to sc.result2 and dreg 2 to sc.errcode. 2011-06-18 Robin Getz * bfin-sim.c (decode_dsp32shift_0): Clear ASTAT[AV] if val is 0, else set it. Set ASTAT[AVS] if val is 0. Do this for LSHIFT and ASHIFT accumulator insns. 2011-06-18 Robin Getz * bfin-sim.c (ashiftrt): If size is 40, do not call SET_ASTATREG. (lshiftrt): Likewise. 2011-06-18 Robin Getz * bfin-sim.c (decode_dsp32shift_0): Use get_unextended_acc rather than get_extended_acc in LSHIFT insns. 2011-06-18 Robin Getz * bfin-sim.c (decode_macfunc): Handle MM when mmod is M_TFU. Check MM once when mmod is M_FU to match M_TFU better. 2011-06-18 Robin Getz * bfin-sim.c (decode_dsp32shiftimm_0): When shift is greater than 32, perform a left shift. Update the corresponding AV bit. Set AZ when the low 32bits are also zero. 2011-06-18 Robin Getz * bfin-sim.c (decode_dsp32shiftimm_0): With left shift vector insns, call lshift only when count is positive. Otherwise, call ashiftrt. With arithmetic right shift insns, call ashiftrt when the value is small enough, otherwise call lshift. 2011-06-18 Robin Getz * bfin-sim.c (extract_mult): Call saturate_s16 directly when mmod is M_IH rather than computing the result by hand. 2011-06-18 Robin Getz * bfin-sim.c (decode_macfunc): Add nosat_acc to track acc value before saturation, set sat when more cases saturate, and set the overflow bit based on these results. For M_TFU, M_IU, M_FU, and M_W32, change the max values compared against. (decode_dsp32mac_0): Delete v_i and add v_0 and v_1. Pass v_1 when processing MAC1 and pass v_0 when processing MAC0. Combine the results into the V/VS ASTAT bits. 2011-06-18 Robin Getz * bfin-sim.c (extract_mult): Call saturate_s32 when MM is set and mmod is M_IU. Call saturate_s16 when MM is set and mmod is M_TFU. 2011-06-18 Robin Getz * bfin-sim.c (decode_multfunc): Call new is_macmod_signed, and allow MM to sign extend all the time. (decode_macfunc): Likewise. Drop sign extension of unsigned values. 2011-06-18 Robin Getz * bfin-sim.c (saturate_s40_astat): Change ">=" to ">". (decode_macfunc): Likewise when mmod is M_IH. 2011-06-18 Mike Frysinger * interp.c (sim_create_inferior): Change free to freeargv. 2011-06-04 Mike Frysinger * machs.c (bf534_dev, bf537_dev): Add glue-or devices. (bf537_port): Define applicable devices with PORT to the glue-or devices instead of SIC. (bfin_model_hw_tree_init): Drop old sim_hw_parse call for bfin_sic. Only parse reg/type when the device has an address. Move the call to dv_bfin_hw_port_parse up before slash check. 2011-06-04 Mike Frysinger * dv-bfin_sic.c (ENC, DEC_PIN, DEC_SIC): Move above the BFIN_SIC_TO_CEC_PORTS definition. (SIC_PORTS): New define. (bfin_sic_50x_ports, bfin_sic_51x_ports, bfin_sic_52x_ports, bfin_sic_533_ports, bfin_sic_537_ports, bfin_sic_538_ports, bfin_sic_54x_ports, bfin_sic_561_ports, bfin_sic_59x_ports): Delete old layouts. (bfin_sic1_ports, bfin_sic2_ports, bfin_sic3_ports, bfin_sic_561_ports): Define new layouts with SIC_PORTS(). (bfin_sic_finish): Change reference to bfin_sic_50x_ports, bfin_sic_51x_ports, bfin_sic_52x_ports, and bfin_sic_538_ports to bfin_sic2_ports. Change reference to bfin_sic_533_ports, bfin_sic_537_ports, and bfin_sic_59x_ports to bfin_sic1_ports. Change reference to bfin_sic_54x_ports to bfin_sic3_ports. * machs.c (bfin_port_layout): New structure. (bfin_model_data): Add new "port" and "port_count" members. (PORT, SIC): New defines. (bf000_port, bf50x_port, bf51x_port, bf52x_port, bf533_port, bf537_port, bf538_port, bf54x_port, bf561_port, bf592_port): Move and redefine port layout from dv-bfin_sic.c to here. (bf504_port, bf506_port, bf512_port, bf514_port, bf516_port, bf518_port, bf522_port, bf523_port, bf524_port, bf525_port, bf526_port, bf527_port, bf531_port, bf532_port, bf534_port, bf536_port, bf539_port, bf542_port, bf544_port, bf547_port, bf548_port, bf549_port): New defines. (bfin_model_data): Link in new bfin_port_layout.port member. (dv_bfin_hw_port_parse): New function. (dv_bfin_hw_parse): Call new dv_bfin_hw_port_parse function. (bfin_model_hw_tree_init): Replace calls to sim_hw_parse for bfin_sic links with new dv_bfin_hw_port_parse function. 2011-06-03 Mike Frysinger * dv-bfin_dma.c (bfin_dma_io_write_buffer): Fix indentation. 2011-05-25 Mike Frysinger * sim-main.h (TRACE_SYSCALL): Change EVENTS to SYSCALL. 2011-05-25 Mike Frysinger * dv-bfin_cec.h (BFIN_COREMMR_CEC_{BASE,SIZE}): Move to ... * dv-bfin_ctimer.h (BFIN_COREMMR_CTIMER_{BASE,SIZE}): Move to ... * dv-bfin_dma.h (BFIN_MMR_DMA_SIZE): Move to ... * dv-bfin_dmac.h (BFIN_MMR_DMAC{0,1}_BASE): Move to ... * dv-bfin_ebiu_amc.h (BF{IN,50X,54X}_MMR_EBIU_AMC_SIZE): Move to ... * dv-bfin_ebiu_ddrc.h (BFIN_MMR_EBIU_DDRC_SIZE): Move to ... * dv-bfin_ebiu_sdc.h (BFIN_MMR_EBIU_SDC_SIZE): Move to ... * dv-bfin_emac.h (BFIN_MMR_EMAC_{BASE,SIZE}): Move to ... * dv-bfin_eppi.h (BFIN_MMR_EPPI_SIZE): Move to ... * dv-bfin_evt.h (BFIN_COREMMR_EVT_{BASE,SIZE}): Move to ... * dv-bfin_gpio.h (BFIN_MMR_GPIO_SIZE): Move to ... * dv-bfin_gptimer.h (BFIN_MMR_GPTIMER_SIZE): Move to ... * dv-bfin_jtag.h (BFIN_COREMMR_JTAG_{BASE,SIZE}): Move to ... * dv-bfin_mmu.h (BFIN_COREMMR_MMU_{BASE,SIZE}): Move to ... * dv-bfin_nfc.h (BFIN_MMR_NFC_SIZE): Move to ... * dv-bfin_otp.h (BFIN_MMR_OTP_SIZE): Move to ... * dv-bfin_pfmon.h (BFIN_COREMMR_PFMON_{BASE,SIZE}): Move to ... * dv-bfin_pll.h (BFIN_MMR_PLL_{BASE,SIZE}): Move to ... * dv-bfin_ppi.h (BFIN_MMR_PPI_SIZE): Move to ... * dv-bfin_rtc.h (BFIN_MMR_RTC_SIZE): Move to ... * dv-bfin_sic.h (BFIN_MMR_SIC_{BASE,SIZE}): Move to ... * dv-bfin_spi.h (BFIN_MMR_SPI_SIZE): Move to ... * dv-bfin_trace.h (BFIN_COREMMR_TRACE_{BASE,SIZE}): Move to ... * dv-bfin_twi.h (BFIN_MMR_TWI_SIZE): Move to ... * dv-bfin_uart.h (BFIN_MMR_UART_SIZE): Move to ... * dv-bfin_uart2.h (BFIN_MMR_UART2_SIZE): Move to ... * dv-bfin_wdog.h (BFIN_MMR_WDOG_SIZE): Move to ... * dv-bfin_wp.h (BFIN_COREMMR_WP_{BASE,SIZE}): Move to ... * machs.h: ... here. * machs.c: Delete all dv-bfin_*.h includes except for cec/dmac. 2011-05-25 Mike Frysinger * Makefile.in (dv-bfin_pfmon.o): New target. * configure.ac (SIM_AC_OPTION_HARDWARE): Add bfin_pfmon. * configure: Regenerated. * dv-bfin_pfmon.c, dv-bfin_pfmon.h: New files. * machs.c: Add include new bfin_pfmon.h. (bfin_core_dev): Add pfmon. 2011-05-25 Mike Frysinger * machs.c (bf526_roms): Add a region with rev of 2. (bf54x_roms): Add regions with rev of 4. * bfroms/all.h: Include new bf526-0.2.h, bf54x-0.4.h, and bf54x_l1-0.4.h headers. * bfroms/bf526-0.2.h, bfroms/bf54x-0.4.h, bfroms/bf54x_l1-0.4.h: New header files. 2011-05-14 Mike Frysinger * bfin-sim.c (decode_PushPopReg_0): Delete (grp == 1 && reg == 6) check for SP reg. 2011-05-14 Mike Frysinger * dv-bfin_uart.c (bfin_uart_write_byte): Add a mcr arg. Declare a local uart. When LOOP_ENA is set in mcr, write to the saved byte and count fields of the uart. (bfin_uart_io_write_buffer): Pass uart->mcr to bfin_uart_write_byte and bfin_uart_get_next_byte. (bfin_uart_get_next_byte): Add a mcr arg. Move uart->saved_count check first, and skip the remaining code when LOOP_ENA is set in mcr. * dv-bfin_uart.h (bfin_uart_write_byte): Add an mcr argument. (bfin_uart_get_next_byte): Likewise. (XOFF, MRTS, RFIT, RFRT, LOOP_ENA, FCPOL, ARTS, ACTS): Define. * dv-bfin_uart2.c (bfin_uart_io_write_buffer): Padd uart->mcr when calling bfin_uart_write_byte and bfin_uart_get_next_byte. 2011-05-09 Mike Frysinger * dv-bfin_uart2.c (bfin_uart_io_read_buffer): Clear DR/THRE/TEMT bits from uart->lsr before setting them. 2011-04-27 Mike Frysinger * dv-bfin_dmac.c (bfin_dmac): Constify pmap array. (bfin_dmac_50x_pmap, bfin_dmac_51x_pmap, bfin_dmac_52x_pmap, bfin_dmac_533_pmap, bfin_dmac_537_pmap, bfin_dmac0_538_pmap, bfin_dmac1_538_pmap, bfin_dmac0_54x_pmap, bfin_dmac1_54x_pmap, bfin_dmac0_561_pmap, bfin_dmac1_561_pmap, bfin_dmac_59x_pmap): Likewise. 2011-04-26 Mike Frysinger * dv-bfin_gpio.c (bfin_gpio_forward_ouput): New function. (bfin_gpio_io_write_buffer): Store the current port state into "data", and call bfin_gpio_forward_ouput when the data or dir MMRs are updated. (bfin_gpio_ports): Change p0..p15 to bidirect_port. 2011-04-26 Mike Frysinger * dv-bfin_gpio.c (bfin_gpio): Add "int_state" member. (bfin_gpio_forward_int, bfin_gpio_forward_ints): New functions. (bfin_gpio_io_write_buffer): Call bfin_gpio_forward_int when the mask a or mask b MMRs are written. (bfin_gpio_port_event): When handling edge gpios, set the bit in int_state, call bfin_gpio_forward_ints, and then clear the bit. When handling level gpios, clear/set the bit in int_state rather than returning immediately. Call bfin_gpio_forward_ints instead of checking mask[ab] and calling HW_TRACE/hw_port_event directly. 2011-04-16 Mike Frysinger * bfin-sim.c (decode_dsp32alu_0): Call STORE instead of SET_DREG for BYTEOP2P, BYTEOP3P, BYTEOP1P, BYTEOP16P, BYTEOP16M, BYTEPACK, and BYTEUNPACK. (decode_dsp32shift_0): Call STORE instead of SET_DREG for PACK, BITMUX, EXTRACT, DEPOSIT, ALIGN8, ALIGN16, and ALIGN24. 2011-04-14 Mike Frysinger * bfin-sim.c (decode_dsp32alu_0): Set DIS_ALGN_EXPT when handling BYTEOP2P, BYTEOP3P, SAA, BYTEOP1P, BYTEOP16P, BYTEOP16M, BYTEPACK, and BYTEUNPACK insns. 2011-04-11 Mike Frysinger * dv-bfin_sic.c (bfin_sic_port_event): New helper function. (bfin_sic_52x_port_event, bfin_sic_537_port_event, bfin_sic_54x_port_event, bfin_sic_561_port_event): Include level in the trace output, and call the new bfin_sic_port_event func. 2011-04-11 Mike Frysinger * dv-bfin_gpio.c (bfin_gpio_ports): Add p15. 2011-04-01 Mike Frysinger * dv-bfin_otp.c (bfin_otp_ports): Declare. (bfin_otp_finish): Call set_hw_ports with bfin_otp_ports. 2011-03-29 Mike Frysinger * configure: Regenerate after common/aclocal.m4 changes. 2011-03-28 Robin Getz * bfin-sim.c (decode_dsp32alu_0): Cast high 16bits of A0.W to bs16 and add to casted low 16bits of A0.L and store in val0. Cast high 16bits of A1.W to bs16 and add to casted low 16bits of A1.L and store in val1. Delete bit checks of val0 and val1. 2011-03-26 Robin Getz * bfin-sim.c (decode_dsp32alu_0): Set result to 0x7FFFFFFF when the result was 0x80000000 for RND12 subtraction. 2011-03-26 Robin Getz * bfin-sim.c (decode_dsp32alu_0): Set VS when V is set. 2011-03-24 Mike Frysinger * dv-bfin_gpio.c (bfin_gpio_port_event): Call HW_TRACE at every major code flow point. * dv-bfin_sic.c (bfin_sic_forward_interrupts): Call HW_TRACE just before calling hw_port_event on ourselves. (bfin_sic_52x_port_event, bfin_sic_537_port_event, bfin_sic_54x_port_event, bfin_sic_561_port_event): Call HW_TRACE at the start of the function. 2011-03-24 Mike Frysinger * dv-bfin_gpio.c (bfin_gpio_port_event): Split dir/inen bit checking. Normalize "level" to 0/1 values. Shift "level" over by "my_port". Invert port->both bit check. 2011-03-24 Mike Frysinger * dv-bfin_gpio.c (bfin_gpio_io_write_buffer): Subtract 2 from the valuep pointer for clear MMRs, 4 for set MMRs, and 6 for toggle MMRs. 2011-03-23 Mike Frysinger * TODO: Document some known SIC issues. 2011-03-23 Mike Frysinger * devices.h (dv_w1c): Fix typos in documentation of "bits" arg. * dv-bfin_cec.c (bfin_cec_io_write_buffer): Pass 0xffee to dv_w1c_4. * dv-bfin_emac.c (bfin_emac_io_write_buffer): Pass 0xe1 to dv_w1c_4 for systat MMR and -1 to dv_w1c_4 for [rt]x_stky/mmc_[rt]irqs MMRs. * dv-bfin_eppi.c (bfin_eppi_io_write_buffer): Pass 0x1ff to dv_w1c_2. * dv-bfin_gpio.c (bfin_gpio_io_write_buffer): Invert bits to dv_w1c_2. * dv-bfin_jtag.c (bfin_jtag_io_write_buffer): Invert bits to dv_w1c_4. * dv-bfin_nfc.c (bfin_nfc_io_write_buffer): Invert bits to dv_w1c_2. * dv-bfin_otp.c (bfin_otp_io_write_buffer): Invert bits to dv_w1c_2. * dv-bfin_ppi.c (bfin_ppi_io_write_buffer): Invert bits to dv_w1c_2. * dv-bfin_rtc.c (bfin_rtc_io_write_buffer): Invert bits to dv_w1c_2. * dv-bfin_spi.c (bfin_spi_io_write_buffer): Invert bits to dv_w1c_2. * dv-bfin_twi.c (bfin_twi_io_write_buffer): Invert bits to dv_w1c_2. * dv-bfin_uart2.c (bfin_uart_io_write_buffer): Invert bits to dv_w1c_2. 2011-03-23 Mike Frysinger * dv-bfin_uart.h (TFI, BI, FE, PE, OE): Define. 2011-03-23 Mike Frysinger * dv-bfin_twi.h (LOSTARB): Rename from LOSTARG. 2011-03-23 Robin Getz * bfin-sim.c (decode_dsp32shift_0): Set acc0 to the unextended value for the VIT_MAX insn, and mask off the result when done. 2011-03-23 Robin Getz * bfin-sim.c (decode_dsp32alu_0): Set A1 to a1_lo when up_hi is false, and set A0 to a0_lo when up_lo is false. 2011-03-23 Robin Getz * bfin-sim.c (decode_dsp32alu_0): Call saturate_s40_astat instead of saturate_s40, and use the v parameter to update the AV bit. Set the AC bit only when the final result is 0. 2011-03-23 Mike Frysinger * dv-bfin_sic.c (ENC, DEC_PIN, DEC_SIC): Define. (bfin_sic_50x_ports, bfin_sic_51x_ports, bfin_sic_52x_ports, bfin_sic_533_ports, bfin_sic_537_ports, bfin_sic_538_ports, bfin_sic_54x_ports, bfin_sic_561_ports, bfin_sic_59x_ports): Encode ids with the ENC macro. (bfin_sic_52x_port_event, bfin_sic_537_port_event, bfin_sic_54x_port_event, bfin_sic_561_port_event): Set idx from my_port with DEC_SIC, and set bit from my_port with DEC_PIN. (bfin_sic_533_port_event): Delete. (bfin_sic_finish): Call set_hw_port_event with bfin_sic_537_port_event for BF533 and BF59x targets. 2011-03-23 Robin Getz * bfin-sim.c (decode_dsp32alu_0): Drop the src0/src1 check for BYTEOP1P, BYTEOP2P, and BYTEOP3P insns. 2011-03-23 Mike Frysinger * machs.c (bf50x_dev, bf512_dev, bf516_dev, bf522_dev, bf526_dev, bf533_dev, bf534_dev, bf537_dev, bf538_dev, bf561_dev, bf592_dev): Change bfin_gpio addresses from f/g/h to 5/6/7. (bfin_model_hw_tree_init): Add the bfin_gpio address base to 'a'. 2011-03-17 Mike Frysinger * configure.ac (AC_CHECK_FUNCS): Check for kill and pread. * configure: Regenerate. * config.in: Regenerate. * interp.c (bfin_syscall): Check for HAVE_{KILL,PREAD} before using kill or pread. 2011-03-15 Mike Frysinger * Makefile.in (dv-bfin_gpio.o): New target. * configure.ac (SIM_AC_OPTION_HARDWARE): Add bfin_gpio. * configure: Regenerate. * dv-bfin_gpio.c, dv-bfin_gpio.h: New files. * machs.c: Include dv-bfin_gpio.h. (bf50x_mem, bf51x_mem, bf52x_mem, bf531_mem, bf532_mem, bf533_mem, bf534_mem, bf536_mem, bf537_mem, bf538_mem, bf561_mem, bf592_mem): Delete GPIO memory stubs. (bf50x_dev, bf512_dev, bf516_dev, bf522_dev, bf526_dev, bf533_dev, bf534_dev, bf537_dev, bf538_dev, bf561_dev, bf592_dev): Add GPIO peripheral devices. (bfin_model_hw_tree_init): Hook up GPIO interrupts to SIC. 2011-03-15 Mike Frysinger * bfroms/bf50x-0.0.h, bfroms/bf51x-0.0.h, bfroms/bf51x-0.1.h, bfroms/bf51x-0.2.h, bfroms/bf526-0.0.h, bfroms/bf526-0.1.h, bfroms/bf527-0.0.h, bfroms/bf527-0.1.h, bfroms/bf527-0.2.h, bfroms/bf533-0.1.h, bfroms/bf533-0.2.h, bfroms/bf533-0.3.h, bfroms/bf537-0.0.h, bfroms/bf537-0.1.h, bfroms/bf537-0.3.h, bfroms/bf538-0.0.h, bfroms/bf54x-0.0.h, bfroms/bf54x-0.1.h, bfroms/bf54x-0.2.h, bfroms/bf54x_l1-0.0.h, bfroms/bf54x_l1-0.1.h, bfroms/bf54x_l1-0.2.h, bfroms/bf561-0.5.h, bfroms/bf59x-0.0.h, bfroms/bf59x_l1-0.1.h, dv-bfin_cec.c, dv-bfin_ctimer.c, dv-bfin_dma.c, dv-bfin_dmac.c, dv-bfin_ebiu_amc.c, dv-bfin_ebiu_ddrc.c, dv-bfin_ebiu_sdc.c, dv-bfin_emac.c, dv-bfin_eppi.c, dv-bfin_evt.c, dv-bfin_gptimer.c, dv-bfin_jtag.c, dv-bfin_mmu.c, dv-bfin_nfc.c, dv-bfin_otp.c, dv-bfin_pll.c, dv-bfin_ppi.c, dv-bfin_rtc.c, dv-bfin_sic.c, dv-bfin_spi.c, dv-bfin_trace.c, dv-bfin_twi.c, dv-bfin_uart.c, dv-bfin_uart2.c, dv-bfin_wdog.c, dv-bfin_wp.c, dv-eth_phy.c, gui.c, linux-fixed-code.h, linux-targ-map.h, machs.c, Makefile.in: Fix style. 2011-03-15 Robin Getz * bfin-sim.c (decode_dsp32alu_0): Set AZ based on val for 16bit adds and subs. 2011-03-15 Robin Getz * bfin-sim.c (decode_macfunc): Move acc STOREs behind op != 3 check. 2011-03-15 Robin Getz * bfin-sim.c (decode_macfunc): New neg parameter. Set when the high bit is set after extract_mult. (decode_dsp32mac_0): Declare n_1 and n_0. Pass to the decode_macfunc functions. Use these to update the AN bit. 2011-03-15 Robin Getz * bfin-sim.c (decode_dsp32mult_0): Declare v_i0 and v_i1. Pass to the extract_mult functions. Include these when updating the V, VS, and V_COPY bits. 2011-03-15 Robin Getz * bfin-sim.c (astat_names): New global bit array. (decode_CC2stat_0): Delete local astat_name and astat_names. (decode_psedodbg_assert_0): Move hardcoded offset into a variable. Print out ASTAT bit values when checking an ASTAT register. 2010-03-15 Robin Getz * bfin-sim.c (extract_mult): Handle M_IU. 2011-03-05 Mike Frysinger * Makefile.in, TODO, aclocal.m4, bfin-sim.c, bfin-sim.h, bfroms/all.h, bfroms/bf50x-0.0.h, bfroms/bf51x-0.0.h, bfroms/bf51x-0.1.h, bfroms/bf51x-0.2.h, bfroms/bf526-0.0.h, bfroms/bf526-0.1.h, bfroms/bf527-0.0.h, bfroms/bf527-0.1.h, bfroms/bf527-0.2.h, bfroms/bf533-0.1.h, bfroms/bf533-0.2.h, bfroms/bf533-0.3.h, bfroms/bf537-0.0.h, bfroms/bf537-0.1.h, bfroms/bf537-0.3.h, bfroms/bf538-0.0.h, bfroms/bf54x-0.0.h, bfroms/bf54x-0.1.h, bfroms/bf54x-0.2.h, bfroms/bf54x_l1-0.0.h, bfroms/bf54x_l1-0.1.h, bfroms/bf54x_l1-0.2.h, bfroms/bf561-0.5.h, bfroms/bf59x-0.0.h, bfroms/bf59x_l1-0.1.h, config.in, configure, configure.ac, devices.c, devices.h, dv-bfin_cec.c, dv-bfin_cec.h, dv-bfin_ctimer.c, dv-bfin_ctimer.h, dv-bfin_dma.c, dv-bfin_dma.h, dv-bfin_dmac.c, dv-bfin_dmac.h, dv-bfin_ebiu_amc.c, dv-bfin_ebiu_amc.h, dv-bfin_ebiu_ddrc.c, dv-bfin_ebiu_ddrc.h, dv-bfin_ebiu_sdc.c, dv-bfin_ebiu_sdc.h, dv-bfin_emac.c, dv-bfin_emac.h, dv-bfin_eppi.c, dv-bfin_eppi.h, dv-bfin_evt.c, dv-bfin_evt.h, dv-bfin_gptimer.c, dv-bfin_gptimer.h, dv-bfin_jtag.c, dv-bfin_jtag.h, dv-bfin_mmu.c, dv-bfin_mmu.h, dv-bfin_nfc.c, dv-bfin_nfc.h, dv-bfin_otp.c, dv-bfin_otp.h, dv-bfin_pll.c, dv-bfin_pll.h, dv-bfin_ppi.c, dv-bfin_ppi.h, dv-bfin_rtc.c, dv-bfin_rtc.h, dv-bfin_sic.c, dv-bfin_sic.h, dv-bfin_spi.c, dv-bfin_spi.h, dv-bfin_trace.c, dv-bfin_trace.h, dv-bfin_twi.c, dv-bfin_twi.h, dv-bfin_uart.c, dv-bfin_uart.h, dv-bfin_uart2.c, dv-bfin_uart2.h, dv-bfin_wdog.c, dv-bfin_wdog.h, dv-bfin_wp.c, dv-bfin_wp.h, dv-eth_phy.c, gui.c, gui.h, insn_list.def, interp.c, linux-fixed-code.h, linux-fixed-code.s, linux-targ-map.h, machs.c, machs.h, proc_list.def, sim-main.h, tconfig.in: New Blackfin port.