2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (SIM_AC_OPTION_ENVIRONMENT): Delete call.
	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (SIM_AC_OPTION_INLINE): Delete call.
	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-09  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2016-01-06  Mike Frysinger  <vapier@gentoo.org>

	* interp.c (bfin_syscall): Remove first const from argv.
	(sim_open): Mark argv const.
	(simple_env): Remove first const.
	(bfin_user_init): Remove first const from argv and and env
	(bfin_os_init): Remove first const from argv.
	(sim_create_inferior): Mark argv and env const.
	Drop casts from bfin_user_init and bfin_os_init calls.

2016-01-05  Mike Frysinger  <vapier@gentoo.org>

	* interp.c (step_once): Call TRACE_DISASM.

2016-01-04  Mike Frysinger  <vapier@gentoo.org>

	* bfin-sim.c (decode_dsp32shift_0): Change MIN to min.
	* dv-bfin_dma.c (bfin_dma_hw_event_callback): Likewise.
	* dv-bfin_ebiu_amc.c (bfin_ebiu_amc_write_amgctl): Likewise.
	* dv-bfin_emac.c (bfin_emac_dma_read_buffer): Change MAX to max.
	* dv-bfin_mmu.c (_mmu_check_addr): Change MIN to min.
	* dv-bfin_trace.c (bfin_trace_io_read_buffer): Likewise.
	* interp.c (bfin_fdpic_load): Change MAX to max.
	(bfin_fdpic_load): Likewise.
	* sim-main.h (MIN, MAX): Delete.
	(CLAMP): Change MIN to min and MAX to max.

2016-01-04  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-03  Mike Frysinger  <vapier@gentoo.org>

	* interp.c (sim_open): Update sim_parse_args comment.

2016-01-03  Mike Frysinger  <vapier@gentoo.org>

	* TODO: Delete file.

2016-01-03  Mike Frysinger  <vapier@gentoo.org>

	* interp.c (count_argc): Delete.
	(bfin_syscall): Change count_argc to countargv.
	(bfin_user_init): Likewise.

2016-01-03  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (SIM_AC_OPTION_HOSTENDIAN): Delete.
	* configure: Regenerate.

2016-01-02  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (SIM_AC_OPTION_ENDIAN): Change LITTLE_ENDIAN to
	LITTLE.
	* configure: Regenerate.

2015-12-27  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Delete sim-hload.o.

2015-12-26  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2015-12-26  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* bfin-sim.c (decode_LDST_0): Add 4th element to posts array.

2015-12-26  Mike Frysinger  <vapier@gentoo.org>

	* interp.c (sim_create_inferior): Update comment and argv check.

2015-12-25  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Delete sim-model.o.
	* tconfig.h (SIM_HAVE_MODEL): Delete.

2015-12-25  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* devices.c (device_error): Delete.

2015-12-24  Mike Frysinger  <vapier@gentoo.org>

	* tconfig.h (SIM_HANDLES_LMA): Delete.

2015-11-17  Mike Frysinger  <vapier@gentoo.org>

	* tconfig.h (WITH_MODULO_MEMORY): Delete.

2015-11-15  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Delete sim-reason.o, sim-reg.o, and
	sim-stop.o.

2015-11-14  Mike Frysinger  <vapier@gentoo.org>

	* interp.c (sim_close): Delete.

2015-10-11  Mike Frysinger  <vapier@gentoo.org>

	PR sim/18407
	* bfin-sim.c (decode_dsp32shiftimm_0): Call ashiftrt when count
	is less than 0.

2015-06-24  Mike Frysinger  <vapier@gentoo.org>

	* interp.c (trace_register): Delete.
	* sim-main.h (trace_register, TRACE_REGISTER, TRACE_REG): Delete.

2015-06-23  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2015-06-17  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* interp.c: Expand comment on CB_SYS_xxx defines.

2015-06-12  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2015-06-12  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2015-06-12  Mike Frysinger  <vapier@gentoo.org>

	* 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  <dcb314@hotmail.com>
	    Nick Clifton  <nickc@redhat.com>

	PR 18273
	* bfin-sim.c (decode_dsp32alu_0): Remove spurious check for
	s == 1.

2015-04-18  Mike Frysinger  <vapier@gentoo.org>

	* sim-main.h (SIM_CPU): Add note to clean this up.

2015-04-18  Mike Frysinger  <vapier@gentoo.org>

	* sim-main.h (sim_cia): Delete.

2015-04-17  Mike Frysinger  <vapier@gentoo.org>

	* sim-main.h (CIA_GET, CIA_SET): Delete.

2015-04-15  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Delete sim-cpu.o.
	* sim-main.h (STATE_CPU): Delete.

2015-04-13  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2015-04-06  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Delete sim-engine.o and sim-hrw.o.

2015-04-01  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Delete $(SIM_EXTRA_OBJS).

2015-03-31  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2015-03-24  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2015-03-23  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2015-03-23  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.
	* configure.ac (BFIN_SIM_EXTRA_OBJS): Delete.
	* Makefile.in (SIM_OBJS): Delete @BFIN_SIM_EXTRA_OBJS@.

2015-03-23  Mike Frysinger  <vapier@gentoo.org>

	* dv-bfin_uart.c [!HAVE_DV_SOCKSER] (dv_sockser_status,
	dv_sockser_write, dv_sockser_read): Delete.

2015-03-23  Mike Frysinger  <vapier@gentoo.org>

	* sim-main.h: Delete run-sim.h include.

2015-03-16  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4, config.in, configure: Regenerate.
	* tconfig.in: Rename file ...
	* tconfig.h: ... here.

2015-03-15  Mike Frysinger  <vapier@gentoo.org>

	* tconfig.in: Delete includes.
	[HAVE_DV_SOCKSER]: Delete.

2015-03-14  Mike Frysinger  <vapier@gentoo.org>

	* bfin-sim.c (decode_dsp32alu_0): Change v to bu32.

2015-03-14  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_RUN_OBJS): Delete.

2015-03-10  Mike Frysinger  <vapier@gentoo.org>

	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  <vapier@gentoo.org>

	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  <amodra@gmail.com>

	* configure: Regenerate.

2014-08-15  Roland McGrath  <mcgrathr@google.com>

	* configure: Regenerate.
	* config.in: Regenerate.

2014-03-04  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2013-09-23  Alan Modra  <amodra@gmail.com>

	* configure: Regenerate.

2013-06-23  Mike Frysinger  <vapier@gentoo.org>

	* bfin-sim.c (decode_dsp32alu_0): Add note about broken handling of
	SEARCH with parallel insns.

2013-06-23  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* bfin-sim.c (decode_dsp32alu_0): Check more opcode fields before
	decoding various insns.

2013-06-17  Mike Frysinger  <vapier@gentoo.org>

	* TODO: Add more notes.

2013-06-09  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in ($(srcdir)/linux-fixed-code.h): Add
	@MAINTAINER_MODE_TRUE@ as the first item in the dependency list.

2013-06-03  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4, configure: Regenerate.

2013-05-10  Freddie Chopin  <freddie_chopin@op.pl>

	* configure: Rebuild.

2013-03-26  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4, configure: Regenerate.

2013-03-23  Joel Sherrill  <joel.sherrill@oarcorp.com>

	* configure.ac: Use $SIM_DV_SOCKSER_O.
	* configure: Regenerated.

2012-12-20  Joel Brobecker  <brobecker@adacore.com>

	* 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  <brobecker@adacore.com>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <brobecker@adacore.com>

	* config.in, configure: Regenerate.

2012-04-09  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* bfin-sim.c (decode_dsp32alu_0): Delete extra space in TRACE_INSN.

2012-04-01  Mike Frysinger  <vapier@gentoo.org>

	* bfin-sim.c (_interp_insn_bfin): Call illegal_instruction_combination
	when INSN_LEN is non-zero before 32bit decode.

2012-04-01  Mike Frysinger  <vapier@gentoo.org>

	* bfin-dis.c (fmtconst): Replace decimal handling with a single
	sprintf call and the '*' field width.

2012-04-01  Mike Frysinger  <vapier@gentoo.org>

	* machs.c (bfin_model_map_bfrom): Return when mnum is 535.

2012-04-01  Mike Frysinger  <vapier@gentoo.org>

	* interp.c (bfin_user_init): Move auxvt_size decl from top to
	inside of auxvt check.

2012-03-31  Mike Frysinger  <vapier@gentoo.org>

	* dv-bfin_sic.c (bfin_sic_finish): Change iwr1 to iwr2.

2012-03-31  Mike Frysinger  <vapier@gentoo.org>

	* devices.c: Include devices.h.

2012-03-24  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4, config.in, configure: Regenerate.

2012-03-19  Robin Getz  <robin.getz@analog.com>
	    Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* dv-bfin_ebiu_amc.c (bfin_ebiu_amc_attach_address_callback): Use
	ARRAY_SIZE rather than hardcoded constant.

2012-02-04  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* Makefile.in: Delete all dependency rules.
	* aclocal.m4, configure: Regenerate.

2011-10-19  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate after common/acinclude.m4 update.

2011-10-17  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Change include to common/acinclude.m4.
	* aclocal.m4, configure: Regenerate.

2011-10-17  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* bfin-sim.c (decode_dsp32shift_0): Use STORE() for VIT_MAX insns.

2011-07-05  Mike Frysinger  <vapier@gentoo.org>

	* interp.c (sim_do_command): Delete.

2011-07-01  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* interp.c (bfin_syscall): Delete old comment.  Set dreg 1 to
	sc.result2 and dreg 2 to sc.errcode.

2011-06-18  Robin Getz  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* bfin-sim.c (ashiftrt): If size is 40, do not call SET_ASTATREG.
	(lshiftrt): Likewise.

2011-06-18  Robin Getz  <robin.getz@analog.com>

	* bfin-sim.c (decode_dsp32shift_0): Use get_unextended_acc
	rather than get_extended_acc in LSHIFT insns.

2011-06-18  Robin Getz  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* bfin-sim.c (saturate_s40_astat): Change ">=" to ">".
	(decode_macfunc): Likewise when mmod is M_IH.

2011-06-18  Mike Frysinger  <vapier@gentoo.org>

	* interp.c (sim_create_inferior): Change free to freeargv.

2011-06-04  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* dv-bfin_dma.c (bfin_dma_io_write_buffer): Fix indentation.

2011-05-25  Mike Frysinger  <vapier@gentoo.org>

	* sim-main.h (TRACE_SYSCALL): Change EVENTS to SYSCALL.

2011-05-25  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* bfin-sim.c (decode_PushPopReg_0): Delete (grp == 1 && reg == 6)
	check for SP reg.

2011-05-14  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* dv-bfin_gpio.c (bfin_gpio_ports): Add p15.

2011-04-01  Mike Frysinger  <vapier@gentoo.org>

	* dv-bfin_otp.c (bfin_otp_ports): Declare.
	(bfin_otp_finish): Call set_hw_ports with bfin_otp_ports.

2011-03-29  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate after common/aclocal.m4 changes.

2011-03-28  Robin Getz  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* bfin-sim.c (decode_dsp32alu_0): Set result to 0x7FFFFFFF when
	the result was 0x80000000 for RND12 subtraction.

2011-03-26  Robin Getz  <robin.getz@analog.com>

	* bfin-sim.c (decode_dsp32alu_0): Set VS when V is set.

2011-03-24  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* TODO: Document some known SIC issues.

2011-03-23  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* dv-bfin_uart.h (TFI, BI, FE, PE, OE): Define.

2011-03-23  Mike Frysinger  <vapier@gentoo.org>

	* dv-bfin_twi.h (LOSTARB): Rename from LOSTARG.

2011-03-23  Robin Getz  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* 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  <vapier@gentoo.org>

	* 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  <robin.getz@analog.com>

	* bfin-sim.c (decode_dsp32alu_0): Drop the src0/src1 check for
	BYTEOP1P, BYTEOP2P, and BYTEOP3P insns.

2011-03-23  Mike Frysinger  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <vapier@gentoo.org>

	* 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  <robin.getz@analog.com>

	* bfin-sim.c (decode_dsp32alu_0): Set AZ based on val for 16bit adds
	and subs.

2011-03-15  Robin Getz  <robin.getz@analog.com>

	* bfin-sim.c (decode_macfunc): Move acc STOREs behind op != 3 check.

2011-03-15  Robin Getz  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* 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  <robin.getz@analog.com>

	* bfin-sim.c (extract_mult): Handle M_IU.

2011-03-05  Mike Frysinger  <vapier@gentoo.org>

	* 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.
