* ARM SIM: Add support for VFP instructions
@ 2015-06-28 18:13 Nick Clifton
2015-07-07 17:15 ` Mike Frysinger
0 siblings, 1 reply; 3+ messages in thread
From: Nick Clifton @ 2015-06-28 18:13 UTC (permalink / raw)
To: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 2271 bytes --]
Hi Guys,
I am applying the patch below to add support for the ARM v6
instructions to the ARM sim, including support for the VFP hardware
floating point co-processor. With this patch applied the GCC
testsuite for the -mabi=hard-float multilib of an arm-eabi toolchain
goes from 2388 unexpected failures to 44, and no regressions are
introduced. :-)
Cheers
Nick
sim/arm/ChangeLog
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.
(Multuiply64): 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.
[-- Attachment #2: arm.sim.vfp.patch.xz --]
[-- Type: application/x-xz, Size: 16660 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: ARM SIM: Add support for VFP instructions
2015-06-28 18:13 ARM SIM: Add support for VFP instructions Nick Clifton
@ 2015-07-07 17:15 ` Mike Frysinger
2015-07-14 11:07 ` Nicholas Clifton
0 siblings, 1 reply; 3+ messages in thread
From: Mike Frysinger @ 2015-07-07 17:15 UTC (permalink / raw)
To: Nick Clifton; +Cc: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 512 bytes --]
On 28 Jun 2015 19:13, Nick Clifton wrote:
> I am applying the patch below to add support for the ARM v6
> instructions to the ARM sim, including support for the VFP hardware
> floating point co-processor. With this patch applied the GCC
> testsuite for the -mabi=hard-float multilib of an arm-eabi toolchain
> goes from 2388 unexpected failures to 44, and no regressions are
> introduced. :-)
this has added trailing whitespace in a number of places. could you strip that
out ?
-mike
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: ARM SIM: Add support for VFP instructions
2015-07-07 17:15 ` Mike Frysinger
@ 2015-07-14 11:07 ` Nicholas Clifton
0 siblings, 0 replies; 3+ messages in thread
From: Nicholas Clifton @ 2015-07-14 11:07 UTC (permalink / raw)
To: gdb-patches
Hi Mike,
> this has added trailing whitespace in a number of places. could you strip that
> out ?
Done.
Cheers
Nick
sim/arm/ChangeLog
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.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-07-14 11:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-28 18:13 ARM SIM: Add support for VFP instructions Nick Clifton
2015-07-07 17:15 ` Mike Frysinger
2015-07-14 11:07 ` Nicholas Clifton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).