binutils-gdb/sim/arm
Nick Clifton 73cb0348b2 Add support for ARM v6 instructions.
* 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-28 19:14:36 +01:00
..
aclocal.m4
armcopro.c
armdefs.h Add support for ARM v6 instructions. 2015-06-28 19:14:36 +01:00
armemu.c Add support for ARM v6 instructions. 2015-06-28 19:14:36 +01:00
armemu.h Add support for ARM v6 instructions. 2015-06-28 19:14:36 +01:00
armfpe.h
arminit.c
armopts.h
armos.c Add support for ARM v6 instructions. 2015-06-28 19:14:36 +01:00
armos.h
armrdi.c
armsupp.c Add support for ARM v6 instructions. 2015-06-28 19:14:36 +01:00
armvirt.c
bag.c
bag.h
ChangeLog Add support for ARM v6 instructions. 2015-06-28 19:14:36 +01:00
communicate.c
communicate.h
config.in
configure sim: use AS_HELP_STRING everywhere 2015-06-23 15:02:08 -04:00
configure.ac
COPYING
dbg_conf.h
dbg_cp.h
dbg_hif.h sim: assume recentish compiler/systems 2015-06-23 14:04:49 -04:00
dbg_rdi.h
gdbhost.c
gdbhost.h
iwmmxt.c
iwmmxt.h
kid.c
main.c
Makefile.in Add support for ARM v6 instructions. 2015-06-28 19:14:36 +01:00
maverick.c
parent.c
README
sim-main.h sim: unify SIM_CPU definition 2015-04-18 04:31:36 -04:00
thumbemu.c Add support for ARM v6 instructions. 2015-06-28 19:14:36 +01:00
wrapper.c Add support for ARM v6 instructions. 2015-06-28 19:14:36 +01:00

This directory contains the standard release of the ARMulator from
Advanced RISC Machines, and was ftp'd from.

ftp.cl.cam.ac.uk:/arm/gnu

It likes to use TCP/IP between the simulator and the host, which is
nice, but is a pain to use under anything non-unix.

I've added created a new Makefile.in (the original in Makefile.orig)
to build a version of the simulator without the TCP/IP stuff, and a
wrapper.c to link directly into gdb and the run command.

It should be possible (barring major changes in the layout of
the armulator) to upgrade the simulator by copying all the files
out of a release into this directory and renaming the Makefile.

(Except that I changed armos.c to work more simply with our
simulator rigs)

Steve

sac@cygnus.com

Mon May 15 12:03:28 PDT 1995