From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20987 invoked by alias); 28 Jun 2015 18:13:39 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 20973 invoked by uid 89); 28 Jun 2015 18:13:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Sun, 28 Jun 2015 18:13:37 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id 1B65FB7CC0 for ; Sun, 28 Jun 2015 18:13:36 +0000 (UTC) Received: from littlehelper.redhat.com (vpn1-4-18.ams2.redhat.com [10.36.4.18]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t5SIDXwl022326 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Sun, 28 Jun 2015 14:13:35 -0400 From: Nick Clifton To: gdb-patches@sourceware.org Subject: ARM SIM: Add support for VFP instructions Date: Sun, 28 Jun 2015 18:13:00 -0000 Message-ID: <87si9bitv6.fsf@redhat.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-SW-Source: 2015-06/txt/msg00598.txt.bz2 --=-=-= Content-Type: text/plain Content-length: 2271 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 * 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. --=-=-= Content-Type: application/x-xz Content-Disposition: attachment; filename=arm.sim.vfp.patch.xz Content-Transfer-Encoding: base64 Content-length: 22587 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 Z/sCAAAAAARZWg== --=-=-=--