From patchwork Fri Feb 23 15:36:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 129389 Delivered-To: patch@linaro.org Received: by 10.80.172.228 with SMTP id x91csp776058edc; Fri, 23 Feb 2018 07:40:27 -0800 (PST) X-Google-Smtp-Source: AG47ELubIDtbyNAiqmvDDe/YLbI1IZoSa0larMAPpPwAYwk+vRi8VXK4OwgB2Vh52z1iXcmoM8pu X-Received: by 2002:a25:41c5:: with SMTP id o188-v6mr1382017yba.302.1519400427811; Fri, 23 Feb 2018 07:40:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519400427; cv=none; d=google.com; s=arc-20160816; b=GcdOrkZf0AjYcvLE18phdtl5SnR1TiEPnKvayEsrfK6mynffy/1awts1tqAx1VwHnF vvr4rKo5M3RFMTAD88/96A24b2hnHzbKqrevtRT5J+PfI6llxOt89ycOFXqtGGaCq0MR 74B4WwGs7MH3hColr8tvz+ziL2nMWGMEYbKPVBSAOsNuTYH6P//+eQ67EqUINc1tCSqF SbTKyqbyrx5BpsSKpZJtgER4eb68hLclkwMwqGfrm8fisTAM5z/qJgVuwi8T0ZJR+rTr qC0l9XNTTSy/qWM4pBvxOJ45pgqmoZSUH+1f1zTIjMGwQ6VTIGdQeh7xCvlDhTyscOMA lLxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:message-id:date:to:from :dkim-signature:arc-authentication-results; bh=XoNWQBuEG9cEOsTkqy5xlM3o48dCXnmF/nqkbdQWFOs=; b=RzCIAj79Anp6qqguxOyKC3zPEWIE386ku+X1z9A5X5kVSerYwWyPkO+W6qobWoki/D OnDw+N7CDaer9UaLxTLjX4JVNpajLCleLeE+9fRGB78LiNtl7BtM7bb2tfetPOCrf0b1 edHf9n+MVXsAtFSEEVnBXZd585ttEfVSO3ldkJsvZjUamYOar0CvPrl8wJ53LfLUpNp4 p0PBNzkmujLDTdIPevmKe2x09V1DrCVbgGDyMiGcd6wvxEBNf9z2nQNF4KhHlatSy0bP 0a4PUBwyS4fRbs9Fs40x8NOdNryseA/hYqyvCNiKxL0O3eeEaAOYQkIBbcNUeByPl0aN vNDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=LV4DvYgM; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id 185si371434ywc.117.2018.02.23.07.40.27 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 23 Feb 2018 07:40:27 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=LV4DvYgM; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:45250 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1epFSV-0005qY-1J for patch@linaro.org; Fri, 23 Feb 2018 10:40:27 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44300) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1epFOt-0002j3-JS for qemu-devel@nongnu.org; Fri, 23 Feb 2018 10:36:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1epFOp-0006qt-Jg for qemu-devel@nongnu.org; Fri, 23 Feb 2018 10:36:43 -0500 Received: from mail-wm0-x231.google.com ([2a00:1450:400c:c09::231]:34537) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1epFOp-0006n4-Ae for qemu-devel@nongnu.org; Fri, 23 Feb 2018 10:36:39 -0500 Received: by mail-wm0-x231.google.com with SMTP id a20so7416324wmd.1 for ; Fri, 23 Feb 2018 07:36:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=XoNWQBuEG9cEOsTkqy5xlM3o48dCXnmF/nqkbdQWFOs=; b=LV4DvYgMblV68PzVBe7DtrdZ8+cvtg2kiffznk3pr9eBzAcQ/L1nlByAUdRjvRDn5I 3iCWwfjVrfLvWEz51ldWJUi+puQ2JaUF4byd0n61+Nb/k9Qe0GwTElGFcTrVvCSJt1qN p1sVvqAhnC6Wm4FugfRuTMcnjss8uRpPaQA5w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=XoNWQBuEG9cEOsTkqy5xlM3o48dCXnmF/nqkbdQWFOs=; b=OwPQzpdLAzmV/le3Vzi3Ln9EWANfl5IjZ/tNIQT+mnO0sr+TCrjdW+jUJS8AHs5YYC nns0D9MI+wyXt2l9Euk7SPQ7tndjRIxCVu/uQANDCytK7LZGY4rhWo3urlIKuqD7rTvj C0h8tHaB4HYIgQ/CgX2KhAUYPWjwxJ8hc7bzj86x4qOikyfidkT40HAdY8Y57MDpkn2O RcCx97sU4+i9yasy3h8/VIfQ2UfhGtJTe0vwVOYcICP2BsXzs4F6dHKp7B4RrJv+5TqD 7l5x6OwF3h2R1xtyiY9Y3RIouosyUrVAaGUSqPH988pRyybQzOyEGKflp6nHFpCxttaQ aNXg== X-Gm-Message-State: APf1xPBbv2E2j/OnXTxrus+TOqhgw6E/bwFb9VxdYD0zApVx5vMKY6+a HBeEzTG1QmvvyFoITbhPqMfJCQ== X-Received: by 10.28.163.5 with SMTP id m5mr1944505wme.7.1519400197764; Fri, 23 Feb 2018 07:36:37 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id q12sm2780447wrg.37.2018.02.23.07.36.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 23 Feb 2018 07:36:36 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 7C2A13E0085; Fri, 23 Feb 2018 15:36:36 +0000 (GMT) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-arm@nongnu.org Date: Fri, 23 Feb 2018 15:36:05 +0000 Message-Id: <20180223153636.29809-1-alex.bennee@linaro.org> X-Mailer: git-send-email 2.15.1 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::231 Subject: [Qemu-devel] [PATCH v3 00/31] Add ARMv8.2 half-precision functions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Now that the softfloat re-factoring has been merged I re-based this directly from master. Alternatively you can grab the full tree from: https://github.com/stsquad/qemu/tree/arm-fp16-v3 I've tested with the following RISU test binaries: http://people.linaro.org/~alex.bennee/testcases/arm64.risu/testcases.armv8.2_hp.tar.xz Which now includes insn_FP1SRC.risu.bin which tests the final patch in the series which wasn't being exercised by my previous set of tests. I've dropped the fp16 patch to both avoid the bikesheding but also because I could achieve the same effect by running RISU with: -cpu cortex-a57 The changes are all relatively minor based on feedback. The details are as usual included in the commit messages bellow ---. Alex Bennée (31): include/exec/helper-head.h: support f16 in helper calls target/arm/cpu64: introduce ARM_V8_FP16 feature bit target/arm/cpu.h: update comment for half-precision values target/arm/cpu.h: add additional float_status flags target/arm/helper: pass explicit fpst to set_rmode arm/translate-a64: implement half-precision F(MIN|MAX)(V|NMV) arm/translate-a64: handle_3same_64 comment fix arm/translate-a64: initial decode for simd_three_reg_same_fp16 arm/translate-a64: add FP16 FADD/FABD/FSUB/FMUL/FDIV to simd_three_reg_same_fp16 arm/translate-a64: add FP16 F[A]C[EQ/GE/GT] to simd_three_reg_same_fp16 arm/translate-a64: add FP16 FMULA/X/S to simd_three_reg_same_fp16 arm/translate-a64: add FP16 FR[ECP/SQRT]S to simd_three_reg_same_fp16 arm/translate-a64: add FP16 pairwise ops simd_three_reg_same_fp16 arm/translate-a64: add FP16 FMULX/MLS/FMLA to simd_indexed arm/translate-a64: add FP16 x2 ops for simd_indexed arm/translate-a64: initial decode for simd_two_reg_misc_fp16 arm/translate-a64: add FP16 FPRINTx to simd_two_reg_misc_fp16 arm/translate-a64: add FCVTxx to simd_two_reg_misc_fp16 arm/translate-a64: add FP16 FCMxx (zero) to simd_two_reg_misc_fp16 arm/translate-a64: add FP16 SCVTF/UCVFT to simd_two_reg_misc_fp16 arm/translate-a64: add FP16 FNEG/FABS to simd_two_reg_misc_fp16 arm/helper.c: re-factor recpe and add recepe_f16 arm/translate-a64: add FP16 FRECPE arm/translate-a64: add FP16 FRCPX to simd_two_reg_misc_fp16 arm/translate-a64: add FP16 FSQRT to simd_two_reg_misc_fp16 arm/helper.c: re-factor rsqrte and add rsqrte_f16 arm/translate-a64: add FP16 FRSQRTE to simd_two_reg_misc_fp16 arm/translate-a64: add FP16 FMOV to simd_mod_imm arm/translate-a64: add all FP16 ops in simd_scalar_pairwise arm/translate-a64: implement simd_scalar_three_reg_same_fp16 arm/translate-a64: add all single op FP16 to handle_fp_1src_half include/exec/helper-head.h | 3 + include/fpu/softfloat.h | 16 +- target/arm/cpu.h | 34 +- target/arm/cpu64.c | 1 + target/arm/helper-a64.c | 269 ++++++++++ target/arm/helper-a64.h | 33 ++ target/arm/helper.c | 479 +++++++++-------- target/arm/helper.h | 14 +- target/arm/translate-a64.c | 1261 +++++++++++++++++++++++++++++++++++++------- target/arm/translate.c | 12 +- 10 files changed, 1695 insertions(+), 427 deletions(-) -- 2.15.1