2021-06-22  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Removed.
	* aclocal.m4: Removed.
	* configure: Removed.

2021-06-21  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2021-06-21  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-06-20  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (SIM_AC_COMMON): Delete.
	* aclocal.m4, configure: Regenerate.

2021-06-20  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2021-06-19  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2021-06-19  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

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

	* aclocal.m4, configure: Regenerate.

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

	* configure: Regenerate.

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

	* configure.ac: Delete SIM_AC_OPTION_ENDIAN call.
	* aclocal.m4, configure: Regenerate.

2021-06-16  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-06-16  Mike Frysinger  <vapier@gentoo.org>

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

2021-06-15  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2021-06-14  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Delete call to SIM_AC_OPTION_WARNINGS.
	* configure: Regenerate.

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

	* configure.ac: Delete call to SIM_AC_OPTION_ALIGNMENT.
	* wrapper.c (sim_open): Set current_alignment.

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

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

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

	* config.in, configure: Regenerate.

2021-05-17  Mike Frysinger  <vapier@gentoo.org>

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

2021-05-17  Mike Frysinger  <vapier@gentoo.org>

	* sim-main.h (SIM_HAVE_COMMON_SIM_STATE): Define.
	(struct sim_state): Delete.

2021-05-16  Mike Frysinger  <vapier@gentoo.org>

	* armcopro.c, armemu.c, arminit.c, armsupp.c, armvirt.c, iwmmxt.c,
	maverick.c, thumbemu.c: Include defs.h.
	* armos.c, wrapper.c: Replace config.h include with defs.h.
	* armdefs.h: Delete config.h include.

2021-05-16  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

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

	* armos.c (ARMul_OSHandleSWI): Delete 2nd arg to time callback.

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

	* armos.c: Update include path.
	* wrapper.c: Likewise.

2021-05-04  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-05-03  Simon Marchi  <simon.marchi@polymtl.ca>

	* armdefs.h (ARMul_ConsolePrint): Use format attribute.
	* wrapper.c (op_printf): Likewise.

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

	* config.in, configure: Regenerate.

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

	* Makefile.in (SIM_OBJS): Change armemu26.o to armemu.o.
	(armemu26.o, armemu32.o): Delete targets.
	* armemu32.c: New file.

2021-04-26  Mike Frysinger  <vapier@gentoo.org>

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

2021-04-26  Nick Clifton  <nickc@redhat.com>

	PR 22790
	* armemu.c (Handle_Store_Double): Allow 4 byte alignment when
	running in v6 mode.

2021-04-22  Tom Tromey  <tom@tromey.com>

	* configure, config.in: Rebuild.

2021-04-22  Tom Tromey  <tom@tromey.com>

	* Makefile.in (armemu26.o, armemu32.o): Use COMPILE and
	POSTCOMPILE.

2021-04-22  Tom Tromey  <tom@tromey.com>

	* configure: Rebuild.

2021-04-21  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4: Regenerate.

2021-04-21  Simon Marchi  <simon.marchi@polymtl.ca>

	* configure: Regenerate.

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

	* configure: Regenerate.

2021-04-12  Mike Frysinger  <vapier@gentoo.org>

	* wrapper.c (sim_open): Delete 3rd arg to sim_cpu_alloc_all.

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

	* aclocal.m4, configure: Regenerate.

2021-02-28  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-02-21  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (AC_CONFIG_MACRO_DIRS): Replace common with m4.
	* aclocal.m4, configure: Regenerate.

2021-02-13  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Replace sinclude with AC_CONFIG_MACRO_DIRS.
	* aclocal.m4, configure: Regenerate.

2021-02-06  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-01-11  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

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

	* configure: Regenerate.

2021-01-08  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

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

	* wrapper.c: Include stdlib.h.

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

	* iwmmxt.c: Include stdlib.h.

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

	* configure: Regenerate.

2020-12-15  Nick Clifton  <nickc@redhat.com>

	* wrapper.c (sim_create_inferior): Accept some more ARM machine numbers.

2020-12-15  Jens Bauer <jens@plustv.dk>

	* armemu.c (handle_v6_insn): Add support for SDIV and UDIV.
	* thumbemu.c (handle_T2_insn): Likewise.

2020-10-20  Dr. David Alan Gilbert  <dgilbert@redhat.com>

	* armos.c (SWIread): Fix printf format.

2020-08-13  Luis Machado  <luis.machado@linaro.org>

	PR sim/26365

	* wrapper.c (sim_target_parse_command_line): Free discarded argv
	entries.
	(sim_open): Use a duplicate of argv instead of the original argv.

2020-01-17  Christian Biesinger  <cbiesinger@google.com>

	* iwmmxt.c: Fix spelling error (seperate).

2019-12-06  Luis Machado  <luis.machado@linaro.org>

	* armemu.c (isize): Move this declaration ...
	* arminit.c (isize): ... here.
	* maverick.h: New file.
	* wrapper.c: Include "maverick.h".
	(<struct maverick_regs>, <union maverick_acc_regs>): Remove and update
	comment.
	(sim_create_inferior): Cast variables to proper type.
	* maverick.c: Include "maverick.h".
	(<struct maverick_regs>, <union maverick_acc_regs>): Move
	declarations to maverick.h and update comment.
	(DSPsc, DSPacc, DSPregs): Adjust comment.

2018-01-02  Nick Clifton  <nickc@redhat.com>

	PR 22663
	* maverick.c (DSPCDP4): Add missing parameter to debug print
	statement.

2017-09-21  Yao Qi  <yao.qi@linaro.org>

	* wrapper.c (print_insn): Use disassembler instead of
	print_insn_little_arm.

2017-09-06  John Baldwin  <jhb@FreeBSD.org>

	* configure: Regenerate.

2017-02-13  Mike Frysinger  <vapier@gentoo.org>

	* armos.c: Include libiberty.h.
	(SWIopen): Use ARRAY_SIZE.
	* armsupp.c: Include libiberty.h.
	(ModeToBank): Use ARRAY_SIZE.
	* wrapper.c (sim_target_parse_command_line): Likewise.

2016-07-14  Nick Clifton  <nickc@redhat.com>

	* armemu.c (Multiply64): Only issue error messages about invalid
	arguments if debugging is enabled.
	* armos.c (ARMul_OSHandleSWI): Ignore invalid flags.

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>

	* wrapper.c (sim_create_inferior): Mark argv and env const.
	(sim_open): Mark argv const.

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

	* configure: Regenerate.

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

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

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

	* wrapper.c (sim_target_parse_arg_array): Replace for loop with
	a call to countargv.

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: Regenerate.
	* wrapper.c (init): Change BIG_ENDIAN to BFD_ENDIAN_BIG.

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

	* wrapper.c (sim_store_register): Rename to ...
	(arm_reg_store): ... this.
	(sim_fetch_register): Rename to ...
	(arm_reg_fetch): ... this.
	(sim_open): Call CPU_REG_FETCH/CPU_REG_STORE.

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

	* Makefile.in (SIM_OBJS): Delete bag.o.
	* armdefs.h (struct ARMul_State): Delete ErrorCode.
	(ResetPin, FIQPin, IRQPin, AbortPin, TransPin, BigEndPin, Prog32Pin,
	Data32Pin, LateAbortPin, ARMul_OSExit, ARMul_OSLastErrorP,
	ARMul_Debug, ARMul_OSException,rdi_log, SpinCursor, HOURGLASS,
	HOURGLASS_RATE): Delete.
	* armemu.c (ARMul_Emulate26): Delete ARMul_Debug call.
	* arminit.c (ARMul_Reset): Do not set state->ErrorCode.
	(ARMul_Abort): Delete ARMul_OSException call.
	* armopts.h: Delete file.
	* armos.c (isatty_, ARMul_OSExit, ARMul_OSException,
	ARMul_OSLastErrorP, ARMul_Debug, BUFFERSIZE, UNIQUETEMPS, NOOP,
	BINARY, READOP, WRITEOP, FIXCRLF): Delete.
	(struct OSblock): Delete Time0, ErrorP, FileTable, FileFlags, and
	tempnames.
	(ARMul_OSInit): Do not set OSptr->ErrorP, OSptr->FileTable, or
	OSptr->tempnames.
	* armrdi.c: Delete file.
	* armvirt.c: Delete armopts.h include.
	(ARMul_LoadInstrS): Delete HOURGLASS logic.
	* bag.c, bag.h, communicate.c, communicate.h, dbg_conf.h, dbg_cp.h,
	dbg_hif.h: Delete files.
	* dbg_rdi.h (RDP_*, RDI*): Delete defines.
	(PointHandle, ThreadHandle, Dbg_ConfigBlock, Dbg_HostosInterface,
	Dbg_MCState, getbufferproc): Delete.
	(rdi_*): Delete Functions.
	(RDI_ConfigAspect, RDI_ConfigMatchType, RDI_NameList): Delete
	(struct RDIProcVec): Delete.
	* gdbhost.c, gdbhost.h, kid.c, main.c, parent.c: Delete files.
	* wrapper.c (ARMul_Debug): Delete.

2015-12-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* thumbemu.c (handle_T2_insn): Fix left shift of negative value.
	* armemu.c (handle_v6_insn): Likewise.

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

	* wrapper.c (sim_close): Delete.

2015-07-14  Nick Clifton  <nickc@redhat.com>

	* armcopro.c: Remove extraneous whitespace.
	* armdefs.h: Likewise.
	* armfpe.h: Likewise.
	* arminit.c: Likewise.
	* armopts.h: Likewise.
	* armos.c: Likewise.
	* armos.h: Likewise.
	* armrdi.c: Likewise.
	* armsupp.c: Likewise.
	* armvirt.c: Likewise.
	* bag.c: Likewise.
	* bag.h: Likewise.
	* communicate.c: Likewise.
	* communicate.h: Likewise.
	* dbg_conf.h: Likewise.
	* dbg_cp.h: Likewise.
	* dbg_hif.h: Likewise.
	* dbg_rdi.h: Likewise.
	* gdbhost.c: Likewise.
	* gdbhost.h: Likewise.
	* iwmmxt.c: Likewise.
	* iwmmxt.h: Likewise.
	* kid.c: Likewise.
	* main.c: Likewise.
	* maverick.c: Likewise.
	* parent.c: Likewise.
	* thumbemu.c: Likewise.
	* wrapper.c: Likewise.

2015-07-02  Nick Clifton  <nickc@redhat.com>

	* Makefile.in (SIM_EXTRA_CFLAGS): Revert previous delta.
	(SIM_EXTRA_LIBS): Add -lm.

2015-06-28  Nick Clifton  <nickc@redhat.com>

	* Makefile.in (SIM_EXTRA_CFLAGS): Add -lm.
	* armdefs.h (ARMdval, ARMfval): New types.
	(ARM_VFP_reg): New union.
	(struct ARMul_State): Add VFP_Reg and FPSCR fields.
	(VFP_fval, VFP_uword, VFP_sword, VFP_dval, VFP_dword): Accessor
	macros for the new VFP_Reg field.
	* armemu.c (handle_v6_insn): Add code to handle MOVW, MOVT,
	QADD16, QASX, QSAX, QSUB16, QADD8, QSUB8, UADD16, USUB16, UADD8,
	USUB8, SEL, REV, REV16, RBIT, BFC, BFI, SBFX and UBFX
	instructions.
	(handle_VFP_move): New function.
	(ARMul_Emulate16): Add checks for newly supported v6
	instructions.  Add support for VMRS, VMOV and MRC instructions.
	(Multiply64): Allow nRdHi == nRm and/or nRdLo == nRm when
	operating in v6 mode.
	* armemu.h (t_resolved): Define.
	* armsupp.c: Include math.h.
	(handle_VFP_xfer): New function.  Handles VMOV, VSTM, VSTR, VPUSH,
	VSTM, VLDM and VPOP instructions.
	(ARMul_LDC): Test for co-processor 10 or 11 and pass call to the
	new handle_VFP_xfer function.
	(ARMul_STC): Likewise.
	(handle_VFP_op): New function.  Handles VMLA, VMLS, VNMLA, VNMLS,
	VNMUL, VMUL, VADD, VSUB, VDIV, VMOV, VABS, VNEG, VSQRT, VCMP,
	VCMPE and VCVT instructions.
	(ARMul_CDP): Test for co-processor 10 or 11 and pass call to the
	new handle_VFP_op function.
	* thumbemu.c (tBIT, tBITS, ntBIT, ntBITS): New macros.
	(test_cond): New function.  Tests a condition and returns non-zero
	if the condition has been met.
	(handle_IT_block): New function.
	(in_IT_block): New function.
	(IT_block_allow): New function.
	(ThumbExpandImm): New function.
	(handle_T2_insn): New function.  Handles T2 thumb instructions.
	(handle_v6_thumb_insn): Add next_instr and pc parameters.
	(ARMul_ThumbDecode): Add support for IT blocks.  Add support for
	v6 instructions.
	* wrapper.c (sim_create_inferior): Detect a thumb address and call
	SETT appropriately.

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

	* configure: Regenerate.

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

	* armdefs.h: Always include stdint.h.
	[!__STDC__]: Delete.
	[!HAVE_STDINT_H]: Delete.
	* dbg_hif.h [!__STDC__]: Delete.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

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

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

	* wrapper.c (arm_pc_get, arm_pc_set): New functions.
	(sim_open): Declare new local var i.  Call CPU_PC_FETCH &
	CPU_PC_STORE for all cpus.

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

	* Makefile.in (SIM_OBJS): Move wrapper.o to the start of the list.

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

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

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

	* Makefile.in (armos.o, armcopro.o, maverick.o, iwmmxt.o, arminit.o,
	armrdi.o, armsupp.o, thumbemu.o, bag.o, wrapper.o): Delete rules.
	* tconfig.h: Delete file.

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

	* config.in, configure: Regenerate.

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

	* Makefile.in (SIM_RUN_OBJS): Delete.
	(SIM_EXTRA_CFLAGS): Delete -DSIM_TARGET_SWITCHES and
	-DSIM_USE_DEPRECATED_RUN_FRONTEND.
	(SIM_OBJS): Change to $(SIM_NEW_COMMON_OBJS).
	* sim-main.h: New file.
	* wrapper.c: Delete armdefs.h, sim-utils.h, and run-sim.h includes.
	Add sim-main.h and sim-options.h includes.
	(sim_callback, mem_size, trace): Add TODO comments.
	(state): Delete static and add TODO comment.
	(sim_kind, myname, big_endian): Delete.
	(init): Change big_endian to CURRENT_TARGET_BYTE_ORDER check.
	(sim_size, sim_trace, sim_info, sim_target_display_usage, sim_load,
	sim_do_command, sim_set_callbacks, sim_complete_command): Delete.
	(sim_target_parse_command_line): Mark static.
	(free_state): New function.
	(sim_open): Rewrite to use new common logic.
	(sim_close): Delete body.

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

	* Makefile.in (SIM_EXTRA_CFLAGS): Delete -DNEED_UI_LOOP_HOOK.
	* interp.c [NEED_UI_LOOP_HOOK] (UI_LOOP_POLL_INTERVAL,
	ui_loop_hook_counter, deprecated_ui_loop_hook): Delete.
	(sim_resume) [NEED_UI_LOOP_HOOK]: Delete ui code.

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

	* armemu.c [MODE32] (handle_v6_insn): Move definition.
	(ARMul_Emulate26): Initialize do_int after label target.
	* armemu.h (UNDEF_Test, UNDEF_Shift, UNDEF_MSRPC, UNDEF_MRSPC,
	UNDEF_MULPCDest, UNDEF_MULDestEQOp1, UNDEF_LSRBPC,
	UNDEF_LSRBaseEQOffWb, UNDEF_LSRBaseEQDestWb, UNDEF_LSRPCBaseWb,
	UNDEF_LSRPCOffWb, UNDEF_LSMNoRegs, UNDEF_LSMPCBase,
	UNDEF_LSMUserBankWb, UNDEF_LSMBaseInListWb, UNDEF_SWPPC,
	UNDEF_CoProHS, UNDEF_MCRPC, UNDEF_LSCPCBaseWb,
	UNDEF_UndefNotBounced, UNDEF_ShortInt, UNDEF_IllegalMode,
	UNDEF_Prog32SigChange, UNDEF_Data32SigChange): Define to while(0).
	* armsupp.c (ARMul_Align): Convert old style prototype.
	* bag.c (addtolist, killwholelist): Mark static.
	(BAG_newbag): Convert old style prototype.
	* maverick.c (mv_compute_host_endianness): Delete.
	* wrapper.c (verbosity, sim_set_verbose): Delete.
	(init): Set state->verbose to 0.

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

	* configure.ac: Call SIM_AC_OPTION_ENDIAN, SIM_AC_OPTION_ALIGNMENT,
	SIM_AC_OPTION_HOSTENDIAN, SIM_AC_OPTION_ENVIRONMENT,
	SIM_AC_OPTION_INLINE, and SIM_AC_OPTION_WARNINGS.
	* config.in, configure: Regenerate.

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

	* Makefile.in (COPRO): Delete.
	(SIM_OBJS): Expand COPRO.
	* configure.ac: Deletd stdint.h check.
	(COPRO): Delete.
	* configure: Regenerate.

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

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

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

	* Makefile.in (SIM_EXTRA_CFLAGS): Add
	-DSIM_USE_DEPRECATED_RUN_FRONTEND.
	(SIM_RUN_OBJS): Set to run.o.

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

	* configure.ac (AC_CHECK_HEADERS): Delete unistd.h.
	* aclocal.m4, configure: Regenerate.

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-18  Nick Clifton  <nickc@redhat.com>

	* wrapper.c: Convert function declarations to ISO C format.
	(sim_open): Delete code for handling t,d and z command line
	options.

2014-03-14  Nick Clifton  <nickc@redhat.com>

	* wrapper.c (op_print): New function.
	(sim_dis_read): New function.
	(print_insn): New function - disassembles the given instruction.
	(sim_trace): Note that tracing is now allowed.
	(sim_create_inferior): Default to emulating v6.
	Initialise the disassembler machinery.
	(sim_target_parse_command_line): Add support for -t -d and -z
	options.
	(sim_target_display_usage): Note existence of -d and -z options.
	(sim_open): Parse -t -d and -z options.
	* armemu.h: Add exports of trace, disas and trace_funcs.
	Add prototype for print_insn.
	* armemu.c (ARMul_Emulate26): Add tracing code.
	Delete unused variables.
	* thumbemu (handle_v6_thumb_insn): Delete unused variable Rd.
	Move Rm variable into switch cases.
	Add tracing code.

	* armcopro.c (XScale_cp15_init): Add a return value.
	(XScale_cp13_init): Likewise.
	(XScale_cp14_init): Likewise.
	(XScale_cp15_LDC): Delete unused function.
	(XScale_cp15_STC): Likewise.
	* maverick.c: Delete comment inside comment.
	(DSPInit): Delete unused function.
	(DSPMCR4): Fix compile time warning about missing parenthesis.
	(DSPMCR5): Likewise.
	(DSPCDP6): Delete unused variable opcode2.

2014-03-14  David McQuillan  <dmcq@tao-group.com>

	PR sim/8388
	* armemu.c (WriteR15Load): New function.  Determines if the state
	can be changed upon a write to R15.
	(LoadMult): Use WriteR15Load.
	* armemu.h (WRITEDESTB): Use WriteR15Load.

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

	* wrapper.c (sim_do_command): Add const to cmd.

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

	* wrapper.c (sim_load): Add const to prog.

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

	* configure: Regenerate.

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

	* aclocal.m4, configure: Regenerate.

2013-05-07  Jayant Sonar  <jayant.sonar@kpitcummins.com>
	    Kaushik Phatak <Kaushik.Phatak@kpitcummins.com>

	* armemu.c (ARMul_Emulate32): Emulate instructions MOVW and MOVT.

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

	* COPYING: Update to GPL version 3.

2012-09-03  Nick Clifton  <nickc@redhat.com>

	PR sim/14540
	* armsupp.c (ARMul_MRC): Return 0 if access to the MRC instruction
	is denied.

2012-08-01  Kevin Buettner  <kevinb@redhat.com>

	* wrapper.c (libiberty.h): Include.
	(sim_store_register, sim_fetch_register): On success, return
	length, instead of -1.

2012-06-15  Joel Brobecker  <brobecker@adacore.com>

	* config.in, configure: Regenerate.

2012-06-13  Nick Clifton  <nickc@redhat.com>

	* wrapper.c (sim_create_inferior): Treat WMMX2 binaries as iWMMXt
	binaries (for now).

2012-05-24  Pedro Alves  <palves@redhat.com>

	PR gdb/7205

	Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout.

2012-05-18  Nick Clifton  <nickc@redhat.com>

	PR 14072
	* wrapper.c: Include config.h before system header files.

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

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

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

	* aclocal.m4: New file.
	* configure: Regenerate.

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

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

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-07-01  Nick Clifton  <nickc@redhat.com>

	PR sim/12737
	* iwmmxt.c (WCMPGT): Sign extend 32-bit values before performing a
	signed compare.
	(WMAC): Extend computed result before adding to result register.
	(WRSA): Sign extend 32-bit values before shifting.

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

	* wrapper.c (sim_complete_command): New stub function.

2010-05-26  Ozkan Sezer  <sezeroz@gmail.com>

	* communicate.c (MYread_char): Check error return from accept() call
	by its equality to -1 not by it being negative.
	(MYread_charwait): Likewise.
	* main.c (main): Likewise for both socket() and accept() calls.

2010-04-14  Mike Frysinger  <vapier@gentoo.org>

	* wrapper.c (sim_write): Add const to buffer arg.

2010-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

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

	* configure: Regenerate.

2008-11-24  Joel Sherrill <joel.sherrill@oarcorp.com>

    * arminit.c, iwmmxt.c: Include <string.h> to
    eliminate warning.
2008-07-11  Hans-Peter Nilsson  <hp@axis.com>

	* configure: Regenerate to track ../common/common.m4 changes.
	* config.in: Ditto.

2008-06-06  Vladimir Prus  <vladimir@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* configure: Regenerate.
	* wrapper.c (sim_target_display_usage): Add help parameter.

2007-02-27  Mark Mitchell  <mark@codesourcery.com>

	* armos.c (SWIflen): Do not treate file descriptor zero as
	special.

2007-02-15  Nick Clifton  <nickc@redhat.com>

	* armemu.c (handle_v6_insn): Fix typo in sign extension test of
	the sext and sxtah instructions.

2007-02-08  Daniel Jacobowitz  <dan@codesourcery.com>

	Reported by timeless@gmail.com:
	* wrapper.c (sim_target_parse_arg_array): Do not return void value.

2006-12-21  Hans-Peter Nilsson  <hp@axis.com>

	* acconfig.h: Remove.
	* config.in: Regenerate.

2006-06-13  Richard Earnshaw  <rearnsha@arm.com>

	* configure: Regenerated.

2006-06-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure: Regenerated.

2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure: Regenerated.

2006-03-07  Paul Brook  <paul@codesourcery.com>

	* elfos.c (ARMul_OSHandleSWI): Call correct function for IsTTY.

2006-02-01  Shaun Jackman  <sjackman@gmail.com>

	* armos.c (ARMul_OSHandleSWI): Handle the RedBoot system
	call meminfo. Return ENOSYS for unhandled RedBoot syscalls.

2005-11-23  Mark Mitchell  <mark@codesourcery.com>

	* wrapper.c (gdb/signals.h): Include it.
	(SIGTRAP): Don't define.
	(SIGBUS): Likewise.
	(sim_stop_reason): Use TARGET_SIGNAL_* instead of SIG*.

2005-11-16  Shaun Jackman  <sjackman@gmail.com>

	* armos.c: Include limits.h
	(unlink): Remove this macro. It is unused in this file and
	conflicts with sim_callback->unlink.
	(PATH_MAX): Define as 1024 if not already defined.
	(ReadFileName): New function.
	(SWIopen): Fix a potential buffer overflow.
	(SWIremove): New function.
	(SWIrename): Ditto.
	(ARMul_OSHandleSWI): Handle the RDP calls SWI_IsTTY,
	SWI_Remove, and SWI_Rename, as well as the RDI calls
	AngelSWI_Reason_IsTTY, AngelSWI_Reason_Remove, and
	AngelSWI_Reason_Rename.

2005-09-19  Paul Brook  <paul@codesourcery.com>

	* armdefs.h: Define ARMsword and ARMsdword. Use stdint.h when
	available.
	* armemu.c: Use them.
	* armvirt.c (ARMul_MemoryInit): Use correct type for size.
	* configure.ac: Check for stdint.h.
	* config.in: Regenerate.
	* configure: Regenerate.

2005-05-24  Nick Clifton  <nickc@redhat.com>

	* thumbemu.c (handle_v6_thumb_insn): New function.
	(ARMul_ThumbDecode): Call handle_v6_thumb_insn() when an undefined
	instruction binary is encountered.

2005-05-12  Nick Clifton  <nickc@redhat.com>

	* Update the address and phone number of the FSF organization in
	the GPL notices in the following files:
	COPYING, Makefile.in, armcopro.c, armdefs.h, armemu.c,
	armemu.h, armfpe.h, arminit.c, armopts.h, armos.c, armos.h,
	armrdi.c, armsupp.c, armvirt.c, bag.c, bag.h, communicate.c,
	communicate.h, dbg_conf.h, dbg_cp.h, dbg_hif.h, dbg_rdi.h,
	gdbhost.c, gdbhost.h, iwmmxt.c, iwmmxt.h, kid.c, main.c,
	maverick.c, parent.c, thumbemu.c, wrapper.c

2005-04-20  Nick Clifton  <nickc@redhat.com>

	* armemu.c (handle_v6_insn): New function - emulate a few of the
	v6 instructions - the ones now generated by GCC.
	(ARMulEmulate32): Call handle_v6_insn when a possible v6 insn is
	found.
	* armdefs.h (struct ARMul_State): Add new field: is_v6.
	(ARM_v6_Prop): Define.
	* arminit.c (ARMul_NewState): Initialise the v6 flag.
	(ARMul_SelectProcessor): Determine if the v6 flag should be
	set.
	* wrapper.c (sim_create_inferior): For unknown architectures,
	default to allowing the v6 instructions.

2005-04-18  Nick Clifton  <nickc@redhat.com>

	* iwmmxt.c (WMAC, WMADD): Move casts from the LHS of an assignment
	operator to the RHS.
	(WSLL, WSRA, WSRL, WUNPCKEH, WUNPACKEL): Use ULL suffix to
	indicate an unsigned long long constant.

2005-03-23  Mark Kettenis  <kettenis@gnu.org>

	* configure: Regenerate.

2005-01-14  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Sinclude aclocal.m4 before common.m4.  Add
	explicit call to AC_CONFIG_HEADER.
	* configure: Regenerate.

2005-01-12  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Update to use ../common/common.m4.
	* configure: Re-generate.

2005-01-11  Andrew Cagney  <cagney@localhost.localdomain>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

2005-01-07  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Rename configure.in, require autoconf 2.59.
	* configure: Re-generate.

2004-12-08  Hans-Peter Nilsson  <hp@axis.com>

	* configure: Regenerate for ../common/aclocal.m4 update.

2004-06-28  Andrew Cagney  <cagney@gnu.org>

	* armemu.c: Rename ui_loop_hook to deprecated_ui_loop_hook.

2003-12-29  Mark Mitchell  <mark@codesourcery.com>

	* armos.c (fcntl.h): Do not include it.
	(O_RDONLY): Do not define.
	(O_WRONLY): Likewise.
	(O_RDWR): Likewise.
	(targ-vals.h): Include it.
	(translate_open_mode): Use TARGET_O_* instead of O_*.
	(SWIopen): Likewise.
	* Makefile.in (armos.o): Depend on targ-vals.h.

2003-04-13  Nick Clifton  <nickc@redhat.com>

	* armvirt.c (GetWord): Only call XScale_check_memacc if in XScale
	mode.
	(PutWord): Likewise.

2003-03-30  Nick Clifton  <nickc@redhat.com>

	* configure.in (CON_FLAGS): Remove.
	(COPRO): Unconditionally include iwmmxt.o.
	* configure: Regenerate.
	* Makefile.in (CON_FLAGS): Remove.
	* armcopro.c: Remove use of __IWMMXT__ flag.
	* wrapper.c: Likewise.
	* armemu.c: Likewise.
	Add explanatory comment for suppressed code.

2003-03-27  Nick Clifton  <nickc@redhat.com>

	* armos.c (ARMul_OsHandleSWI): Catch SWIs for unhandled vectors.

2003-03-27  Nick Clifton  <nickc@redhat.com>

	* configure.in: (CON_FLAGS): Define and intialise.
	(COPRO): Add iwmmxt.o if configuring for XScale.
	* configure: Regenerate.
	* Makefile.in (iwmmxt.o): Add rule to build.
	(COM_FLAGS): Define.
	(ALL_FLAGS): Add CON_FLAGS.
	* armcopro.c (ARMul_CoProInit): Initialise iWMMXt coprocessors.
	* armdefs.h (struct ARMul_State): Add 'is_iWMMXt' field.
	(ARM_iWMMXt_Prop): Define.
	* armemu.c (ARMul_Emulate16): Intercept iWMMXt instructions and
	pass to coprocessor.
	* arminit.c (ARMul_NewState): Initialise 'is_iWMMXt'.
	(ARMul_Abort): Catch branches through uninitialised vectors.
	* armos.c (softevtorcode): Update comment.
	(ARMul_OsInit): Use ARMUndefinedInstrV.
	* wrapper.c (sim_create_inferior): Handle iWMMXt processor type.
	(sim_store_register): Handle iWMMXt registers.
	(sim_fetch_register): Handle iWMMXt registers.
	* iwmmxt.h: New file. Exported iWMMXt coprocessor emulator
	functions.
	* iwmmxt.c: New file: iWMMXt emulator.

2003-03-20  Nick Clifton  <nickc@redhat.com>

	* Contribute support for Cirrus Maverick ARM co-processor,
	written by Aldy Hernandez  <aldyh@redhat.com> and
	Andrew Cagney  <cagney@redhat.com>:

	* maverick.c: New file: Support for Maverick floating point
	co-processor.
	* Makefile.in: Add maverick.o target.
	* configure.in (COPRO): Add maverick.o.
	* configure: Regenerate.
	* armcopro.c (ARMul_CoProInit): Only initialise co-processors
	available on target processor.  Add code to initialse Maverick
	co-processor support code.
	* armdefs.h (ARMul_state): Add is_ep9312 field.
	(ARM_ep9312_Prop): Define.
	* armemu.h: Add prototypes for Maverick co-processor
	functions.
	* arminit.c (ARMul_SelectProcessor): Initialise the
	co-processor support once the chip has been selected.
	* wrapper.c: Add support for Maverick co-processor.
	(init): Do not call ARMul_CoProInit.  Delays this until the
	chip has been selected.

2003-03-02  Nick Clifton  <nickc@redhat.com>

	* armos.c (SWIWrite0): Catch big-endian bug when printing
	characters.

2003-02-27  Andrew Cagney  <cagney@redhat.com>

	* wrapper.c (sim_create_inferior, sim_open): Rename _bfd to bfd.

2003-01-10  Ben Elliston  <bje@redhat.com>

	* README.Cygnus: Rename from this ..
	* README: .. to this.

2002-09-27  Andrew Cagney  <ac131313@redhat.com>

	* wrapper.c (sim_open): Add support for -m<mem-size>.
	(mem_size): Reduce to 2MB.
	Fix PR gdb/433.

2002-08-15  Nick Clifton  <nickc@redhat.com>

	* armos.c (ARMul_OSHandleSWI): Catch and ignore SWIs of -1, they
	can be caused by an interrupted system call being resumed by GDB.

2002-07-05  Nick Clifton  <nickc@cambridge.redhat.com>

	* armemu.c (ARMul_Emulate32): Add more tests for valid MIA, MIAPH
	and MIAxy instructions.

2002-06-21  Nick Clifton  <nickc@cambridge.redhat.com>

	* armos.h (ADP_Stopped_RunTimeError): Set correct value.

2002-06-16  Andrew Cagney  <ac131313@redhat.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

2002-06-12  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in: Update copyright.
	(wrapper.o): Specify dependencies.
	* wrapper.c: Include "gdb/sim-arm.h".
	(sim_store_register, sim_fetch_register): Rewrite using `enum
	arm_sim_regs' and a switch.

2002-06-09  Andrew Cagney  <cagney@redhat.com>

	* wrapper.c: Include "gdb/callback.h" and "gdb/remote-sim.h".
	* armos.c: Include "gdb/callback.h".

2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>

	* armcopro.c (XScale_check_memacc): Set the FSR and FAR registers
	if a Data Abort is detected.

2002-05-27  Nick Clifton  <nickc@cambridge.redhat.com>

	* armvirt.c (GetWord): Only perform access checks if 'check'
	is set.
	(PutWord): Likewise.
	* wrapper.c (sim_create_inferior): Report unknown machine
	numbers.
	* thumbemu.c (ARMul_ThumbDecode, Case 31): Do not set LR to pc +
	2, it has already been advanced.

2002-05-23  Nick Clifton  <nickc@cambridge.redhat.com>

	* thumbemu.c (ARMul_ThumbDecode): When decoding a BLX(1)
	instruction do not add in the second bit of the base address -
	this has already been accounted for.

2002-05-21  Nick Clifton  <nickc@cambridge.redhat.com>

	* armcopro.c (check_cp13_access): Allow access to register 1 when
	CRm is 1.
	(write_cp13_reg): Allow bit 0 of reg 1 of CRm 1 to be written to.

2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>

	* Makefile.in (SIM_TARGET_SWITCHES): Define.
	* armos.c (swi_mask): Define.  Initialise to supporting all
	SWI emulations.
	(ARMul_OSInit): For XScale targets, only support the ANGEL
	SWI interface.  (This is at the request if Intel).
	(ARMul_OSHandleSWI): Examine swi_mask to see if a particular
	SWI call should be emulated.
	Do not fall through from AngelSWI_Reason_WriteC.
	Propagate exit code from RedBoot Exit SWI.
	* rdi-dgb.h (swi_mask): Prototype.
	(SWI_MASK_DEMON, SWI_MASK_ANGEL, SWI_MASK_REDBOOT): Define.
	* wrapper.c (sim_target_parse_command_line): New function.
	Look for and handle --swi-support switch.
	(sim_target_parse_arg_array): New function.  Process an argv
	array for parsing by sim_target_parse_command_line.
	(sim_target_display_usage): New function.  Describe syntax of
	--swi-suppoort switch.
	(sim_open): Add call to sim_target_parse_arg_array).

2002-05-09  Nick Clifton  <nickc@cambridge.redhat.com>

	* armos.c (ARMul_OSHandleSWI): Support the RedBoot SWI in ARM
	mode and some of its system calls.

2002-03-17  Anthony Green  <green@redhat.com>

	* wrapper.c (mem_size): Increase the default target memory to 8MB.

2002-02-21  Keith Seitz  <keiths@redhat.com>

	* armos.c (SWIWrite0): Use generic host_callback mechanism
	for supported OS functions "open", "close", "write", etc.
	(SWIopen): Likewise.
	(SWIread): Likewise.
	(SWIwrite): Likewise.
	(SWIflen): Likewise.
	(ARMul_OSHandleSWI): Likewise.

2002-02-05  Nick Clifton  <nickc@cambridge.redhat.com>

	* wrapper.c (sim_create_inferior): Modify previous patch so that
	it is only triggered for COFF format executables.

2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>

	* wrapper.c (sin_create_inferior): If a v5 architecture is
	detected, assume it might be an XScale binary, since there is no
	way to distinguish between the two in the COFF file format.

2002-01-10  Nick Clifton  <nickc@cambridge.redhat.com>

	* arminit.c (ARMul_Abort): Fix parameters passed to CPRead[13].
	* armemu.c (ARMul_Emulate32): Fix parameters passed to CPRead[13]
	and CPRead[14].
	Fix formatting.  Improve layout.
	* armemu.h: Fix formatting.  Improve layout.

2002-01-09  Nick Clifton  <nickc@cambridge.redhat.com>

	* wrapper.c (sim_fetch_register): If fetching more than 4 bytes
	return zeroes in the other words.
	General formatting tidy ups.

2001-11-16  Ben Harris  <bjh21@netbsd.org>

	* Makefile.in (armemu32.o): Replace $< with autoconf recommended
	$(srcdir)/....
	(armemu26.o): Ditto.

2001-10-18  Nick Clifton  <nickc@cambridge.redhat.com>

	* armemu.h (CP_ACCESS_ALLOWED): New macro.
	Fix formatting.
	* armcopro.c (read_cp14_reg): Make static.
	(write_cp14_reg): Make static.
	(check_cp13_access): Use CP_ACCESS_ALLOWED macro.
	Fix formatting.
	* armsupp.c (ARMul_LDC): Check CP_ACCESS_ALLOWED.
	(ARMul_STC): Check CP_ACCESS_ALLOWED.
	(ARMul_MCR): Check CP_ACCESS_ALLOWED.
	(ARMul_MRC): Check CP_ACCESS_ALLOWED.
	(ARMul_CDP): Check CP_ACCESS_ALLOWED.
	Fix formatting.
	* armemu.c (MCRR): Check CP_ACCESS_ALLOWED.  Test Rd and Rn not
	equal to 15.
	(MRRC): Check CP_ACCESS_ALLOWED.  Test Rd and Rn not equal to 15.
	Fix formatting.

2001-05-11  Nick Clifton  <nickc@cambridge.redhat.com>

	* armemu.c (ARMul_Emulate32): Fix handling of XScale LDRD and STRD
	instructions with post indexed addressing modes.

2001-05-08  Jens-Christian Lache  <lache@tu-harburg.de>

	* armsupp.c (ARMul_FixCPSR): Check Mode not Bank in order to
	determine rocesor mode.

2001-04-18  matthew green  <mrg@redhat.com>

	* armcopro.c (write_cp15_reg): Set CHANGEMODE if endianness changes.
	(read_cp15_reg): Make non-static.
	(XScale_cp15_LDC): Update for write_cp15_reg() change.
	(XScale_cp15_MCR): Likewise.
	(XScale_cp15_write_reg): Likewise.
	(XScale_check_memacc): New function. Check for breakpoints being
	activated by memory accesses.  Does not support the Branch Target
	Buffer.
	(XScale_set_fsr_far): New function. Set FSR and FAR for XScale.
	(XScale_debug_moe): New function. Set the debug Method Of Entry,
	if configured.
	(write_cp14_reg): Reset count counter if requested.
	* armdefs.h (struct ARMul_State): New members `LastTime' and
	`CP14R0_CCD' used for the timer/counters.
	(ARMul_CP13_R0_FIQ, ARMul_CP13_R0_IRQ, ARMul_CP13_R8_PMUS,
	ARMul_CP14_R0_ENABLE, ARMul_CP14_R0_CLKRST, ARMul_CP14_R0_CCD,
	ARMul_CP14_R0_INTEN0, ARMul_CP14_R0_INTEN1, ARMul_CP14_R0_INTEN2,
	ARMul_CP14_R0_FLAG0, ARMul_CP14_R0_FLAG1, ARMul_CP14_R0_FLAG2,
	ARMul_CP14_R10_MOE_IB, ARMul_CP14_R10_MOE_DB, ARMul_CP14_R10_MOE_BT,
	ARMul_CP15_R1_ENDIAN, ARMul_CP15_R1_ALIGN, ARMul_CP15_R5_X,
	ARMul_CP15_R5_ST_ALIGN, ARMul_CP15_R5_IMPRE, ARMul_CP15_R5_MMU_EXCPT,
	ARMul_CP15_DBCON_M, ARMul_CP15_DBCON_E1, ARMul_CP15_DBCON_E0): New
	defines for XScale registers.
	(XScale_check_memacc, XScale_set_fsr_far, XScale_debug_moe): Prototype.
	(ARMul_Emulate32, ARMul_Emulate26): Clean up function definition.
	(ARMul_Emulate32): Handle the clock counter and hardware instruction
	breakpoints.  Call XScale_set_fsr_far() for software breakpoints and
	software interrupts.
	(LoadMult): Call XScale_set_fsr_far() for data aborts.
	(LoadSMult): Likewise.
	(StoreMult): Likewise.
	(StoreSMult): Likewise.
	* armemu.h (write_cp15_reg): Update prototype.
	* arminit.c (ARMul_NewState): Initialise CP14R0_CCD and LastTime.
	(ARMul_Abort): If XScale, check for FIQ and IRQ being enabled in CP13
	register 0.
	* armvirt.c (GetWord): Call XScale_check_memacc().
	(PutWord): Likewise.

2001-03-20  Nick Clifton  <nickc@redhat.com>

	* armvirt.c (ARMul_ReLoadInstr): Do not enable alignment checking
	when loading unaligned thumb instructions.

2001-03-06  Nick Clifton  <nickc@redhat.com>

	* thumbemu.c (ARMul_ThumbDecode): Delete label bo_blx2.
	Compute destination address of BLX(1) instruction by
	taking bit 1 from PC and not from bit 0 of the offset.

2001-02-27  Nick Clifton  <nickc@redhat.com>

	* armvirt.c (GetWord): Add new parameter - check - to enable or
	disable the alignment checking.
	(PutWord):  Add new parameter - check - to enable or disable the
	alignment checking.
	(ARMul_ReLoadInstr): Pass extra parameter to GetWord.
	(ARMul_ReadWord): Pass extra parameter to GetWord.
	(ARMul_WriteWord): Pass extra parameter to PutWord.
	(ARMul_StoreHalfWord): Pass extra parameter to PutWord.
	(ARMul_WriteByte): Pass extra parameter to GetWord.
	(ARMul_SwapWord): Pass extra parameter to PutWord.
	(ARMul_SafeReadByte): New Function: Read a byte but do not abort.
	(ARMul_SafeWriteByte): New Function: Write a byte but do not abort.

	* armdefs.h: Add prototypes for ARMul_SafeReadByte and
	ARMul_SafeWriteByte.

	* wrapper.c (sim_write): Use ARMul_SafeWriteByte.
	(sim_read): Use ARMul_SafeReadByte.

	* armos.c (in_SWI_handler): Remove.
	(SWIWrite0): Use ARMul_SafeReadByte.
	(WriteCommandLineTo): Use ARMul_SafeWriteByte.
	(SWIopen): Use ARMul_SafeReadByte.
	(SWIread): Use ARMul_SafeWriteByte.
	(SWIwrite): Use ARMul_SafeReadByte.
	(ARMul_OSHandleSWI): Remove use of is_SWI_handler.
	(ARMul_OSException): Remove use of is_SWI_handler.

2001-02-16  Nick Clifton  <nickc@redhat.com>

	* armemu.c: Remove Prefetch abort for breakpoints.  Instead set
	the state to RESUME.

2001-02-14  Nick Clifton  <nickc@redhat.com>

	* armemu.c: Add code to preserve processor mode when a prefetch
	abort is signalled after processing a breakpoint.

	* wrapper.c (sim_create_inferior): Reset processor into ARM mode
	for any machine type except the early ARMs.

2001-02-13  Nick Clifton  <nickc@redhat.com>

	* armos.c (in_SWI_handler): New static variable.
	(ARMul_OSHandleSWI): Set in_SWI_handler whilst emulating a SWI.
	(ARMul_OSException): Ignore exceptions generated whilst emulating
	a SWI.

2001-02-12  Nick Clifton  <nickc@redhat.com>

	* armemu.h (NEGBRANCH): Fix defintion.

2001-02-01  Nick Clifton  <nickc@redhat.com>

	* armemu.c (LoadSMult): Update base address register after
	restoring register bank.
	(StoreMult): Update base address register after restoring register
	bank.

2001-01-31  Nick Clifton  <nickc@redhat.com>

	* armvirt.c (PutWord): Detect installation of SWI vector.
	(SWI_vector_installed): Define.
	* armos.c (ARMul_OsInit): Reset SWI_vector_installed.
	* armos.h (SWI_vector_installed): Declare.
	* wrapper.c (SWI_vector_installed): Remove definition.
	(sim_write): Remove check of SWI vector	installation

2000-12-18  Nick Clifton  <nickc@redhat.com>

	* armemu.c (ARMul_Emulate26): Fix test for StoreDouble
	instruction.

2000-12-10  Nick Clifton  <nickc@redhat.com>

	* armos.c (ARMul_OSHandleSWI): Add 0x91 as an FPE SWI.

2000-12-07  Nick Clifton  <nickc@redhat.com>

	* armemu.c (ARMul_Emulate26): Detect double word load and
	store instructions and call emulation routines.
	(Handle_Load_Double): Emulate a double word load instruction.
	(Handle_Store_Double): Emulate a double word store
	instruction.

2000-12-03  Nick Clifton  <nickc@redhat.com>

	* armos.c: Fix formatting.
	(ARMul_OSHandleSWI): Suppress support of DEMON SWIs when in xscale
	mode.

2000-11-29  Nick Clifton  <nickc@redhat.com>

	* armdefs.h (State): Add 'v5e' and 'xscale' fields.
	(ARM_v5e_Prop): Define.
	(ARM_XScale_Prop): Define.

	* wrapper.c (sim_create_inferior): Select processor based on
	machine number.
	(SWI_vector_installed): New boolean.  Set to true if the SWI
	vector address is written to by the executable.

	* arminit.c (ARMul_NewState): Switch default to 32 bit mode.
	(ARMul_SelectProcessor): Initialise v5e and xscale signals.
	(ARMul_Abort): Fix calculation of LR address.

	* armos.c (ARMul_OSHandleSWI): If a SWI vector has been installed
	and a SWI is not handled by the simulator, pass the SWI off to the
	vector, otherwise issue a warning message and continue.

	* armsupp.c (ARMul_CPSRAltered): Set S bit aswell.

	* thumbemu.c: Add v5 instruction simulation.
	* armemu.c: Add v5, XScale and El Segundo instruction simulation.

	* armcopro.c: Add XScale co-processor emulation.
	* armemu.h: Add exported XScale co-processor functions.

2000-09-15  Nick Clifton  <nickc@redhat.com>

	* armdefs.h: Rename StrongARM property to v4_ARM and add v5 ARM
	property.  Delete unnecessary processor names.
	(ARM_Strong_Prop): Delete.
	(STRONGARM): Delete.
	(ARM_v4_Prop): Add.
	(ARM_v5_Prop): Add
	(State): Delete is_StrongARM boolean.  Add is_v4 and is_v5
	booleans.

	* armemu.h (BUSUSEDINCPCS): Use is_v4 boolean.
	(BUSUSEDINCPCN): Use is_v4 boolean.

	* arminit.c (ARMul_NewState): Initialise is_v4 and is_v5 fields.
	(ARMul_SelectProcessor): Change second parameter from 'processor'
	to 'properties'.  Set is_v4 and is_v5 booleans in State.

	* armrdi.c: Remove use of ARM processor names.  Replace with ARM
	processor properties.

	* wrapper.c (sim_create_inferior): Choose properties passed to
	ARMul_SelectProcessor based on machine number.

2000-08-14  Nick Clifton  <nickc@redhat.com>

	* armemu.c (LHPOSTDOWN): Compute write back value before
	performing load in case the offset register is overwritten.
	(LHPOSTUP): Ditto.

2000-07-14  Fernando Nasser <fnasser@cygnus.com>

	* wrapper.c (sim_create_inferior): Fix typo in the previous patch.

2000-07-14  Fernando Nasser <fnasser@cygnus.com>

	* wrapper.c (sim_create_inferior): Reset mode to ARM when creating a
	new inferior.

2000-07-04  Alexandre Oliva  <aoliva@redhat.com>

	* armvirt.c (ABORTS): Do not define.

	* armdefs.h (struct ARMul_State): Add is_StrongARM.
	(ARM_Strong_Prop, STRONGARM): Define.
	* arminit.c (ARMul_NewState): Reset is_StrongARM.
	(ARMul_SelectProcessor): Set is_StrongARM.
	* wrapper.c (sim_create_inferior): Use bfd machine type to
	determine processor type to emulate.
	* armemu.h (BUSUSEDINCPCS, BUSUSEDINCPCN): Don't increment PC
	when emulating StrongARM.

	* armemu.c (ARMul_Emulate, t_undefined): Proceed to next insn.

	* armemu.h (INSN_SIZE): New macro.
	(SET_ABORT): Save CPSR in SPSR and set LR.
	* armemu.c (ARMul_Emulate, isize): Set to INSN_SIZE.
	(WriteR15, WriteSR15): Do not discard bit 1 in Thumb mode.
	* arminit.c (ARMul_Abort): Use new SETABORT and INSN_SIZE.

	* armemu.c (LoadSMult): Use WriteR15() to discard the least
	significant bits of PC.

	* armemu.h (WRITEDESTB): New macro.
	* armemu.c (ARMul_Emulate26, bl): Use WriteR15Branch() to
	modify PC.  Moved the existing logic...
	(WriteR15Branch): ... here.  New function.
	(WriteR15, WriteSR15): Drop the two least significant bits.
	(LoadSMult): Use WriteR15Branch() to modify PC.
	(LoadMult): Use WRITEDESTB() instead of WRITEDEST().

	* armemu.h (GETSPSR): Call ARMul_GetSPSR().
	* armsupp.c (ARMul_CPSRAltered): Zero out bits as they're
	extracted from state->Cpsr, but preserve the unused bits.
	(ARMul_GetCPSR): Get bits preserved in state->Cpsr.
	(ARMul_GetSPSR, ARMul_FixCPSR): Use ARMul_GetCPSR() to
	get the full CPSR word.

	* armemu.h (PSR_FBITS, PSR_SBITS, PSR_XBITS, PSR_CBITS): New.
	(SETPSR_F, SETPSR_S, SETPSR_X, SETPSR_C): New macros.
	(SETPSR, SET_INTMODE, SETCC): Removed.
	* armsupp.c (ARMul_FixCPSR, ARMul_FixSPSR): Do not test bit
	mask.  Use SETPSR_* to modify PSR.
	(ARMul_SetCPSR): Load all bits from value.
	* armemu.c (ARMul_Emulate, msr): Do not test bit mask.

	* armemu.c (ARMul_Emulate): Compute writeback value before
	loading, since the offset register may be the destination
	register.

	* armdefs.h (SYSTEMBANK): Define as USERBANK.
	* armsupp.c (ARMul_SwitchMode): Remove SYSTEMBANK cases.

2000-06-22  Alexandre Oliva  <aoliva@cygnus.com>

	* armemu.c (Multiply64): Fix computation of flag N.

	* armemu.c (MultiplyAdd64): Fix computation of flag N.

2000-06-20  Alexandre Oliva  <aoliva@cygnus.com>

	* armemu.h (NEGBRANCH): Do not overwrite the two most significant
	bits of the offset.

2000-05-25  Nick Clifton  <nickc@cygnus.com>

	* armcopro.c (MMUMCR): Only indicate mode change if a singal has
	really changed.
	(MMUWrite): Only indicate mode change if a singal has really
	changed.

	* armdefs.h (SYSTEMMODE): Define.
	(BANK_CAN_ACEESS_SPSR): Define.

	* armemu.c (ARM_Emulate26): If the mode has changed allow the PC
	to advance before stopping the emulation.

	* arminit.c (ARMul_Reset): Ensure Mode field of State is set
	correctly.

	* armos.c (ARMul_OSInit): Create a initial stack pointer for
	System mode.

	* armsupp.c (ModeToBank): Remove unused first parameter.
	Add support for System Mode.
	(ARMul_GetSPSR): Use BANK_CAN_ACCESS_SPSR macro.
	(ARMul_SetSPSR): Use BANK_CAN_ACCESS_SPSR macro.
	(ARMul_FixSPSR): Use BANK_CAN_ACCESS_SPSR macro.
	(ARMulSwitchMode): Add support for System Mode.

Wed May 24 14:40:34 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

2000-05-23  Nick Clifton  <nickc@cygnus.com>

	* wrapper.c (sim_store_register): Special handling for CPSR
	register.

2000-03-11  Philip Blundell  <philb@gnu.org>

	* armemu.c (LoadSMult, LoadMult): Correct handling of aborts.
	Patch from Allan Skillman <Allan.Skillman@arm.com>.

Wed Mar 22 15:24:21 2000  glen mccready  <gkm@pobox.com>

	* wrapper.c (sim_open,sim_close): Copy into myname, free myname.

2000-02-08  Nick Clifton  <nickc@cygnus.com>

	* wrapper.c: Fix compile time warning messages.
	* armcopro.c: Fix compile time warning messages.
	* armdefs.h: Fix compile time warning messages.
	* armemu.c: Fix compile time warning messages.
	* armemu.h: Fix compile time warning messages.
	* armos.c: Fix compile time warning messages.
	* armsupp.c: Fix compile time warning messages.
	* armvirt.c: Fix compile time warning messages.
	* bag.c: Fix compile time warning messages.

2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>

	* *.[ch]: Use indent to make readable.

1999-11-22  Nick Clifton  <nickc@cygnus.com>

	* armos.c (SWIread): Generate an error message if a huge read is
	performed.
	(SWIwrite): Generate an error message if a huge write is
	performed.

1999-10-27  Nick Clifton  <nickc@cygnus.com>

	* thumbemu.c (ARMul_ThumbDecode): Accept 0xbebe as a thumb
	breakpoint.

1999-10-08  Ulrich Drepper  <drepper@cygnus.com>

	* armos.c (SWIopen): Always pass third parameter with 0666 since
	otherwise uninitialized memory gets access if the O_CREAT bit is
	set and so we possibly cannot access the file afterwards.

1999-09-29  Doug Evans  <devans@casey.cygnus.com>

	* armos.c (SWIWrite0): Send output to stdout instead of stderr.
	(ARMul_OSHandleSWI, case SWI_WriteC,AngelSWI_Reason_WriteC): Ditto.

Thu Sep  2 18:15:53 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

1999-05-08  Felix Lee  <flee@cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

1999-04-06  Keith Seitz  <keiths@cygnus.com>

	* wrapper.c (stop_simulator): New global.
	(sim_stop): Set sim state to STOP and set
	stop_simulator.
	(sim_resume): Reset stop_simulator.
	(sim_stop_reason): If stop_simulator is set, tell gdb
	that the we took SIGINT.
	* armemu.c (ARMul_Emulate26): Don't loop forever. Stop if
	stop_simulator is set.

1999-04-02  Keith Seitz  <keiths@cygnus.com>

	* armemu.c (ARMul_Emulate26): If NEED_UI_LOOP_HOOK, call ui_loop_hook
	whenever the counter expires.
	* Makefile.in (SIM_EXTRA_CFLAGS): Include define NEED_UI_LOOP_HOOK.

1999-03-24  Nick Clifton  <nickc@cygnus.com>

	* armemu.c (ARMul_Emulate26): Handle new breakpoint value.
	* thumbemu.c (ARMul_ThumbDecode): Handle new breakpoint value.

Mon Sep 14 09:00:05 1998  Nick Clifton  <nickc@cygnus.com>

	* wrapper.c (sim_open): Set endianness according to BFD or command
	line switch.

	* tconfig.in: Define SIM_HAVE_BIENDIAN.

Thu Aug 27 11:00:05 1998  Nick Clifton  <nickc@cygnus.com>

	* armemu.c (Multiply64): Test for Rm (rather than Rs) not being
	the same as either RdHi or RdLo.

Thu Jul  2 10:24:35 1998  Nick Clifton  <nickc@cygnus.com>

	* armos.c (ARMul_OSHandleSWI: AngelSWI_Reason_ReportException):
	Set Reg[0] based on reason for for the exception.

Thu Jun  4 15:22:03 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* armos.c (SWIwrite0): New function.
	(WriteCommandLineTo): New function.
	(SWIopen): New function.
	(SWIread): New function.
	(SWIwrite): New function.
	(SWIflen): New function.
	(ARMul_OSHandleSWI): Call new functions instead of handling
	these here.
	(ARMul_OSHandleSWI): Handle Angel SWIs correctly.
	(*): Reformat spacing to be a bit more GNUly.
	Most code taken from a patch by Anthony Thompson
	(athompso@cambridge.arm.com)

Tue Jun  2 15:22:22 1998  Nick Clifton  <nickc@cygnus.com>

	* armos.h: Add Angel SWI and its reason codes.
	* armos.c (ARMul_OSHandleSWI): Ignore Angel SWIs (for now).

Mon Jun  1 17:14:19 1998  Anthony Thompson (athompso@cambridge.arm.com)

	* armos.c (ARMul_OSHandleSWI::SWI_Open): Handle special case
	of ":tt" to catch stdin in addition to stdout.
	(ARMul_OSHandleSWI::SWI_Seek): Return 0 or 1 to indicate failure
	or success of lseek().

Wed May 20 17:36:25 1998  Nick Clifton  <nickc@cygnus.com>

	* armos.c (ARMul_OSHandleSWI): Special case code to catch attempts
	to open stdout.

Wed Apr 29 15:29:55 1998  Jeff Johnston  <jjohnstn@cygnus.com>

	* armos.c (ARMul_OSHandleSWI): Added code for SWI_Clock,
	SWI_Flen, and SWI_Time.  Also fixed SWI_Seek code to only
	seek from offset 0 and not to use R2 for whence since it is
	not passed as part of the SWI call.

Tue Apr 28 18:33:31 1998  Geoffrey Noer  <noer@cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Sun Apr 26 15:31:55 1998  Tom Tromey  <tromey@creche>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Sun Apr 26 15:20:26 1998  Tom Tromey  <tromey@cygnus.com>

	* acconfig.h: New file.
	* configure.in: Reverted change of Apr 24; use sinclude again.

Fri Apr 24 14:16:40 1998  Tom Tromey  <tromey@creche>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Fri Apr 24 11:20:19 1998  Tom Tromey  <tromey@cygnus.com>

	* configure.in: Don't call sinclude.

Sat Apr  4 20:36:25 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Fri Mar 27 16:15:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Mar 25 12:35:29 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Mar 18 12:38:12 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Tue Mar 10 09:26:38 1998  Nick Clifton  <nickc@cygnus.com>

	* armopts.h: Remove definition of LITTLEND - it is not used.

Tue Feb 17 12:35:54 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* wrapper.c (sim_store_register, sim_fetch_register): Pass in
 	length parameter. Return -1.

Sun Feb  1 16:47:51 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Sat Jan 31 18:15:41 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Mon Jan 19 22:26:29 1998  Doug Evans  <devans@seba>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Mon Dec 15 23:17:11 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Tue Dec  9 11:30:48 1997  Nick Clifton  <nickc@cygnus.com>

	* Makefile.in: Updated with changes from branch.
	* armdefs.h:   ditto
	* armemu.c:    ditto   these changes
	* armemu.h:    ditto   add support for
	* armos.c:     ditto   the Thumb instruction
	* armsupp.c:   ditto   set and the new v4
	* armvirt.c:   ditto   architecture.
	* wrapper.c:   ditto
	* thumbemu.c:  New file from branch.


Thu Dec  4 09:21:05 1997  Doug Evans  <devans@canuck.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Thu Oct 30 13:54:06 1997  Nick Clifton  <nickc@cygnus.com>

	* armos.c (ARMul_OSHandleSWI): Add support for GetEnv SWI.  Patch
	from Tony Thompson at ARM: athompso@arm.com

	* wrapper.c (sim_create_inferior): Add code to create an execution
	environment.  Patch from Tony Thompson at ARM: athompso@arm.com

Wed Oct 22 14:43:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* wrapper.c (sim_load): Pass lma_p and sim_write args to
 	sim_load_file.

Fri Oct  3 09:28:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Sep 24 17:38:57 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Tue Sep 23 11:04:38 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Mon Sep 22 11:46:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Mon Sep 15 17:36:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Thu Sep  4 17:21:23 1997  Doug Evans  <dje@seba>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Aug 27 18:13:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Tue Aug 26 10:37:27 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* wrapper.c (sim_kill): Delete.
	(sim_create_inferior): Add ABFD argument.
	(sim_load): Move setting of PC from here.
	(sim_create_inferior): To here.

Mon Aug 25 17:50:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Mon Aug 25 15:35:45 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* wrapper.c (sim_open): Add ABFD argument.

Tue May 20 10:13:26 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* wrapper.c (sim_open): Add callback argument.
	(sim_set_callbacks): Drop SIM_DESC argument.

Thu Apr 24 00:39:51 1997  Doug Evans  <dje@canuck.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Fri Apr 18 13:32:23 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* wrapper.c (sim_stop): Stub sim_stop function.

Thu Apr 17 18:33:01 1997  Fred Fish  <fnf@cygnus.com>

	* arminit.c (ARMul_NewState): Preinitialize the state to
	all zero/NULL.

Thu Apr 17 02:39:02 1997  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in (SIM_OBJS): Add sim-load.o.
	* wrapper.c (sim_kind,myname): New static locals.
	(sim_open): Set sim_kind, myname.
	(sim_load): Call sim_load_file to do work.  Set start address from bfd.
	(sim_create_inferior): Return SIM_RC.  Delete start_address arg.

Thu Apr 17 11:48:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* wrapper.c (sim_trace): Update so that it matches prototype.

Mon Apr  7 15:45:02 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Mon Apr  7 12:01:17 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* Makefile.in (armemu32.o): Replace $< with autoconf recommended
 	$(srcdir)/....
	(armemu26.o): Ditto.

Wed Apr  2 15:06:28 1997  Doug Evans  <dje@canuck.cygnus.com>

	* wrapper.c (sim_open): New arg `kind'.

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Apr  2 14:50:44 1997  Ian Lance Taylor  <ian@cygnus.com>

	* COPYING: Update FSF address.

Wed Apr  2 14:34:19 1997 Andrew Cagney <cagney@kremvax.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Mar 19 01:14:00 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Mon Mar 17 15:10:07 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* configure: Re-generate.

Fri Mar 14 10:34:11 1997  Michael Meissner  <meissner@cygnus.com>

	* configure: Regenerate to track ../common/aclocal.m4 changes.

Thu Mar 13 12:38:56 1997  Doug Evans  <dje@canuck.cygnus.com>

	* wrapper.c (sim_open): Has result now.
	(sim_*): New SIM_DESC argument.

Tue Feb  4 13:22:21 1997  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in (@COMMON_MAKEFILE_FRAG@): Use
	COMMON_{PRE,POST}_CONFIG_FRAG instead.
	* configure.in: sinclude ../common/aclocal.m4.
	* configure: Regenerated.

Thu Jan 23 11:46:23 1997  Stu Grossman  (grossman@critters.cygnus.com)

	* configure configure.in Makefile.in:  Update to new configure
	scheme which is more compatible with WinGDB builds.
	* configure.in:  Improve comment on how to run autoconf.
	* configure:  Re-run autoconf to get new ../common/aclocal.m4.
	* Makefile.in:  Use autoconf substitution to install common
	makefile fragment.

Wed Nov 20 01:05:10 1996  Doug Evans  <dje@canuck.cygnus.com>

	* run.c: Deleted, use one in ../common now.
	* Makefile.in: Delete everything that's been moved to
	../common/Make-common.in.
	(SIM_OBJS): Define.
	* configure.in: Simplify using macros in ../common/aclocal.m4.
	* configure: Regenerated.
	* config.in: New file.
	* armos.c: #include config.h.
	* wrapper.c (mem_size): Value is in bytes now.
	(sim_callback): New global.
	(arm_sim_set_profile{,_size}): Delete.
	(arm_sim_set_mem_size): Rename to sim_size.
	(sim_do_command): Call printf_filtered via callback.
	(sim_set_callbacks): Record callback.

Thu Oct  3 16:10:27 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* Makefile.in (mostlyclean): Remove config.log.

Wed Jun 26 12:17:24 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
	INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
	(docdir): Removed.
	* configure.in (AC_PREREQ): autoconf 2.5 or higher.
	(AC_PROG_INSTALL): Added.
	* configure: Rebuilt.

Wed Feb 21 12:14:31 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Regenerate with autoconf 2.7.

Fri Dec 15 16:27:30 1995  Ian Lance Taylor  <ian@cygnus.com>

	* run.c (main): Use new bfd_big_endian macro.

Mon Nov 20 17:40:38 1995  Doug Evans  <dje@canuck.cygnus.com>

	* run.c: Include "getopt.h".
	(verbose): Delete.
	(usage): Make static.
	(main): Call arm_sim_set_verbosity.
	Only load sections marked SEC_LOAD.
	* wrapper.c (mem_size, verbosity): New static global.
	(arm_sim_set_mem_size): Renamed from sim_size.	Callers updated.
	(arm_sim_set_profile{,_size}): Renamed from sim_foo.  Callers updated.

Fri Nov 17 19:35:11 1995  Doug Evans  <dje@canuck.cygnus.com>

	* armdefs.h (ARMul_State): New member `verbose'.
	* armrdi.c (ARMul_ConsolePrint): Add missing va_end.
	* run.c (verbose): Make global.
	* wrapper.c (init): Set state->verbose.
	(ARMul_ConsolePrint): Don't print anything if !verbose.

Fri Oct 13 15:30:30 1995  Doug Evans  <dje@canuck.cygnus.com>

	* armos.c: #include dbg_rdi.h.
	(ARMul_OSHandleSWI): Handle SWI_Breakpoint.
	* armos.h (SWI_Breakpoint): Define.
	* wrapper.c: #include armemu.h, dbg_rdi.h.
	(rc): Delete.
	(sim_resume): Use state->EndCondition to record stop state.
	Call FLUSHPIPE before returning.
	(sim_stop_reason): Determine reason from state->EndCondition.

Fri Oct 13 15:04:05 1995  steve chamberlain  <sac@slash.cygnus.com>

	* wrapper.c (sim_set_callbacks): New.

Thu Sep 28 19:45:56 1995  Doug Evans  <dje@deneb.cygnus.com>

	* armos.c (ARMul_OSHandleSWI): Result of read/write calls is
	number of bytes not read/written (or -1).

Wed Sep 20 13:35:54 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (maintainer-clean): New synonym for realclean.

Fri Sep  8 14:27:20 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Remove AC_PROG_INSTALL.
	* configure: Rebuild.
	* Makefile.in (INSTALL): Revert to using install.sh.
	(INSTALL_PROGRAM, INSTALL_DATA): Set to $(INSTALL).
	(INSTALL_XFORM, INSTALL_XFORM1): Restore.
	(mostlyclean): Make the same as clean, not distclean.
	(clean): Remove config.log.
	(install): Don't install in $(tooldir).

Thu Sep  7 12:00:17 1995  Doug Evans  <dje@canuck.cygnus.com>

	(Try to) Update to new bfd autoconf scheme.
	* run.c: Don't include sysdep.h.
	* Makefile.in (INSTALL{,_PROGRAM,_DATA}): Use autoconf computed value.
	(CC, CFLAGS, AR, RANLIB): Likewise.
	(HDEFINES, TDEFINES): Define.
	(CC_FOR_BUILD): Delete.
	(host_makefile_frag): Delete.
	(Makefile): Don't depend on frags.
	* configure.in (sysdep.h): Don't create symlink.
	(host_makefile_frag, frags): Deleted.
	(CC, CFLAGS, AR, RANLIB, INSTALL): Compute values.
	* configure: Regenerated.

Thu Aug  3 10:45:37 1995  Fred Fish  <fnf@cygnus.com>

	* Update all FSF addresses except those in COPYING* files.

Wed Jul  5 16:15:54 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* Makefile.in (clean): Remove run, libsim.a.

 	* Makefile.in, configure.in: converted to autoconf.
	* configure: New file, generated with autconf 2.4.

	* arm.mt: Removed.

Fri Jun 30 16:49:47 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* wrapper.c (sim_do_command): New function.

Tue Jun 13 10:57:32 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* armos.c (ARMul_OSHandleSWI): New version to work with
	newlib simply.

Thu Jun  8 14:37:14 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* run.c (main): Grab return value from right register.

Wed May 24 14:37:31 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* New.
