From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549683859234207.2249342583765; Fri, 8 Feb 2019 19:44:19 -0800 (PST) Received: from localhost ([127.0.0.1]:39102 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJYu-00029f-83 for importer@patchew.org; Fri, 08 Feb 2019 22:44:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42410) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJTk-0006gB-LA for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:38:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJTj-0000S4-SF for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:38:56 -0500 Received: from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b]:36884) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJTj-0000Rm-MP for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:38:55 -0500 Received: by mail-pf1-x42b.google.com with SMTP id y126so2586330pfb.4 for ; Fri, 08 Feb 2019 19:38:55 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.38.51 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:38:51 -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:in-reply-to:references; bh=84vmGP9Bty50VmJ29TzqnMG7INxyOeuGKn+/z1pdICA=; b=wu62oQBQY28AB91UYVCsO5eEqin4VqK88mxjIYyJX+dl3378t/R1/xckDllnbdTazM cOC/R9pJyo9OuItgKbJGPSDmk/xY8arci1q5M7wmxlHDMEPvlXN9NzBOE//u+97b+SpH ffm+DLXqYjFnbXgCS750n45P7rFPttmAii+MmLPv1xmXwsSFuUfhi1IuFpUhHtWTYoKE V6/TOAxcMM1QwmWTRjFeVtk5LFoujXF4x9ZbpRCZfQvZWw4ox7/VhUBQyavOlN4C9lEe Ogp3cSwU1b9U2CqLXvpc4a3QxIcaVqG/qiIE4g4HTcc53U+5dheXz7b0E9sNkWYALgDh 4atg== 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:in-reply-to :references; bh=84vmGP9Bty50VmJ29TzqnMG7INxyOeuGKn+/z1pdICA=; b=CE9Ch21BLm9y6XzAfPUraJTDKnXiSMucj+jFFAeX98dfzU8qV97j86MpbCuFejmawF lpDk+D1hVkh5d4axkvDi9skj93cH3b1m+ZSlCwZvMn75CcBFXYzPBdJJ5HmEfzkGuHIs 5lm+Ax8wUJM7vhQZfswnh//dH1rTBX68uS2OZM0hpTkE3mOskMoj00MZjN23KWbRBUzJ jYnKd+VjxUxIXM6miRaqNdyVObPjAe6FcKQ6yZZ/K+K8yQclvh3BnSpA82EE1IstZnM7 oNFtYTU2Yw1s5u+6Cux4wJn046wh6I9a6Y0DB+kRiP62KOi+se87WR6+pmRdh7n+9X9g 2wiQ== X-Gm-Message-State: AHQUAuaYYrRcgQbmRCFyl0MuHVw1e306fkI9t9KJuDHoFiWKlEDmdpjD XEoMKqPyhGmAMxvF+TIzlrSLNrnWL/o= X-Google-Smtp-Source: AHgI3IauUCkQNehlEVtqZPfE1Jg9UeQEdzXbqsq3osn5EZNgBW3lR3E2AWeJo0ryW9ha3QmkuN+MjQ== X-Received: by 2002:a63:125a:: with SMTP id 26mr15247475pgs.314.1549683532258; Fri, 08 Feb 2019 19:38:52 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:36 -0800 Message-Id: <20190209033847.9014-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::42b Subject: [Qemu-devel] [PATCH v3 01/12] target/arm: Rely on optimization within tcg_gen_gvec_or 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Since we're now handling a =3D=3D b generically, we no longer need to do it by hand within target/arm/. Reviewed-by: David Gibson Signed-off-by: Richard Henderson --- target/arm/translate-a64.c | 6 +----- target/arm/translate-sve.c | 6 +----- target/arm/translate.c | 12 +++--------- 3 files changed, 5 insertions(+), 19 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index e002251ac6..a12bfac719 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -10648,11 +10648,7 @@ static void disas_simd_3same_logic(DisasContext *s= , uint32_t insn) gen_gvec_fn3(s, is_q, rd, rn, rm, tcg_gen_gvec_andc, 0); return; case 2: /* ORR */ - if (rn =3D=3D rm) { /* MOV */ - gen_gvec_fn2(s, is_q, rd, rn, tcg_gen_gvec_mov, 0); - } else { - gen_gvec_fn3(s, is_q, rd, rn, rm, tcg_gen_gvec_or, 0); - } + gen_gvec_fn3(s, is_q, rd, rn, rm, tcg_gen_gvec_or, 0); return; case 3: /* ORN */ gen_gvec_fn3(s, is_q, rd, rn, rm, tcg_gen_gvec_orc, 0); diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c index b15b615ceb..3a2eb51566 100644 --- a/target/arm/translate-sve.c +++ b/target/arm/translate-sve.c @@ -280,11 +280,7 @@ static bool trans_AND_zzz(DisasContext *s, arg_rrr_esz= *a) =20 static bool trans_ORR_zzz(DisasContext *s, arg_rrr_esz *a) { - if (a->rn =3D=3D a->rm) { /* MOV */ - return do_mov_z(s, a->rd, a->rn); - } else { - return do_vector3_z(s, tcg_gen_gvec_or, 0, a->rd, a->rn, a->rm); - } + return do_vector3_z(s, tcg_gen_gvec_or, 0, a->rd, a->rn, a->rm); } =20 static bool trans_EOR_zzz(DisasContext *s, arg_rrr_esz *a) diff --git a/target/arm/translate.c b/target/arm/translate.c index 66cf28c8cb..9d2dba7ed2 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -6294,15 +6294,9 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) tcg_gen_gvec_andc(0, rd_ofs, rn_ofs, rm_ofs, vec_size, vec_size); break; - case 2: - if (rn =3D=3D rm) { - /* VMOV */ - tcg_gen_gvec_mov(0, rd_ofs, rn_ofs, vec_size, vec_size= ); - } else { - /* VORR */ - tcg_gen_gvec_or(0, rd_ofs, rn_ofs, rm_ofs, - vec_size, vec_size); - } + case 2: /* VORR */ + tcg_gen_gvec_or(0, rd_ofs, rn_ofs, rm_ofs, + vec_size, vec_size); break; case 3: /* VORN */ tcg_gen_gvec_orc(0, rd_ofs, rn_ofs, rm_ofs, --=20 2.17.2 From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549683703405737.9784674696659; Fri, 8 Feb 2019 19:41:43 -0800 (PST) Received: from localhost ([127.0.0.1]:39081 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJWQ-0008VT-CS for importer@patchew.org; Fri, 08 Feb 2019 22:41:42 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42422) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJTl-0006hR-Va for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:38:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJTl-0000So-5M for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:38:57 -0500 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]:42129) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJTk-0000Sa-W8 for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:38:57 -0500 Received: by mail-pg1-x543.google.com with SMTP id d72so2414254pga.9 for ; Fri, 08 Feb 2019 19:38:56 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.38.52 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:38:52 -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:in-reply-to:references; bh=vfmR0xjiEFR7KqO1KlnHNMMmXo5J+oxa//ouhR3geX4=; b=Pimewh7RKiiabB77eByNRQ4dHx8chyFN8WV8FtGDLEjr2jxpGAk050fmSgpr+iEW4C Xz8jzvAWzgkyuYjSLYhagMWHNrCfjjLv0X+zQ/lwfVXNCDTDZjCW0mpqcORlWbDXDIER zWit9Iieu8OcOB42sjFkxkoWEbHRwAQ4qV5BIzNsQYBMdBo2mQcAlsMLYY68PN/ag1z0 POhV47vhyW3Dlid/8yH1lGpJHjZRd0HsZSiVrVxjgCMXUPqKS4JbLf2ZRybTR7fPF7vI Tp+wMzkH9fH8P4JPLFk7NYKNvrXbkwu4BgKNTo83+60dLv3D9a2mfOTIZJ0RlBE9HRqB ffBA== 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:in-reply-to :references; bh=vfmR0xjiEFR7KqO1KlnHNMMmXo5J+oxa//ouhR3geX4=; b=jqO2Ib4U3YSu5ObSvangpGz7jPQNJAtjTyu8vrBLrf5gLY5yaFtFlbzSuC5nezQKmL 1kScspIQHBB7qrcG7Jb48YvnGE/OjDQGMMAYdpFV/QiMiF4S2b13WmtAZ33djblW+772 xWsReH7kvJJvLM7XV0r1bI07fZHYnfpJjdmErOn+f3+B7E7AvId1lh23+btkYpWSNfdn MsRTPAbRpLCxOpDr4e+3fQGyRsnxgsIZJxA3O4LJUfvXHLgNyfW6daAmfiVtXagHdIb2 Qyp8X+RKukixepBVFoL9mD+Mps1ABqiBoMJxe4kIys/boIWv6ilBNl8YFXBy6wap1DPV JMPQ== X-Gm-Message-State: AHQUAuY94qC7JVWU8pB4w1OA/QoUJ4+XDzfVjkJcbrlH20/+X5Z8Snsz LxVmTqOq5t5I/84qz/y86NAc8Fko8yk= X-Google-Smtp-Source: AHgI3IYhQRShzD6HoeLTAHRzghu0HhRFS5uYI4rMfvCaClXGBYOvnpkQTcM2AVlwvD7/eeKL36RNQw== X-Received: by 2002:a62:4181:: with SMTP id g1mr25694638pfd.45.1549683535551; Fri, 08 Feb 2019 19:38:55 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:37 -0800 Message-Id: <20190209033847.9014-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::543 Subject: [Qemu-devel] [PATCH v3 02/12] target/arm: Use vector minmax expanders for aarch64 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/translate-a64.c | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index a12bfac719..fd5ceb6613 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -10948,6 +10948,20 @@ static void disas_simd_3same_int(DisasContext *s, = uint32_t insn) } =20 switch (opcode) { + case 0x0c: /* SMAX, UMAX */ + if (u) { + gen_gvec_fn3(s, is_q, rd, rn, rm, tcg_gen_gvec_umax, size); + } else { + gen_gvec_fn3(s, is_q, rd, rn, rm, tcg_gen_gvec_smax, size); + } + return; + case 0x0d: /* SMIN, UMIN */ + if (u) { + gen_gvec_fn3(s, is_q, rd, rn, rm, tcg_gen_gvec_umin, size); + } else { + gen_gvec_fn3(s, is_q, rd, rn, rm, tcg_gen_gvec_smin, size); + } + return; case 0x10: /* ADD, SUB */ if (u) { gen_gvec_fn3(s, is_q, rd, rn, rm, tcg_gen_gvec_sub, size); @@ -11109,27 +11123,6 @@ static void disas_simd_3same_int(DisasContext *s, = uint32_t insn) genenvfn =3D fns[size][u]; break; } - case 0xc: /* SMAX, UMAX */ - { - static NeonGenTwoOpFn * const fns[3][2] =3D { - { gen_helper_neon_max_s8, gen_helper_neon_max_u8 }, - { gen_helper_neon_max_s16, gen_helper_neon_max_u16 }, - { tcg_gen_smax_i32, tcg_gen_umax_i32 }, - }; - genfn =3D fns[size][u]; - break; - } - - case 0xd: /* SMIN, UMIN */ - { - static NeonGenTwoOpFn * const fns[3][2] =3D { - { gen_helper_neon_min_s8, gen_helper_neon_min_u8 }, - { gen_helper_neon_min_s16, gen_helper_neon_min_u16 }, - { tcg_gen_smin_i32, tcg_gen_umin_i32 }, - }; - genfn =3D fns[size][u]; - break; - } case 0xe: /* SABD, UABD */ case 0xf: /* SABA, UABA */ { --=20 2.17.2 From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 154968377305082.60355655242529; Fri, 8 Feb 2019 19:42:53 -0800 (PST) Received: from localhost ([127.0.0.1]:39083 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJXN-0000rO-UG for importer@patchew.org; Fri, 08 Feb 2019 22:42:41 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42435) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJTn-0006iZ-6t for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJTm-0000TO-CC for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:38:59 -0500 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:44918) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJTm-0000Sw-5z for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:38:58 -0500 Received: by mail-pf1-x444.google.com with SMTP id u6so2564386pfh.11 for ; Fri, 08 Feb 2019 19:38:58 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.38.55 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:38:56 -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:in-reply-to:references; bh=RT1GreJgsvsbPtqY2RbKVaphAKh18dUwun7FW6H0APA=; b=UuGrdyQKE7FzAmfF/lwZhkXTwsjxM+qcjHVEXWL7cXXSFeDunvP/jRRy1yVTYKZZGl CgvQajL0DMzMmRHaAwY64Jx8k2eeeyDrMjOZTuvGmswiCtm9A3raThxXnkRJ/Hja4is+ dYa/p8Kgp/rqNWRc4us0qkHKDKOgTfWNY1wQQmr9vA3BrdpcY+hycQ4JqLaxfWeYb1od 0pzpIHhznDyvtyuTxNUp7cHNxH6RXknOb5TCJtKq3zFLN6wrUKVGpdfUR3+LwH0l3H9D RbBP/IzhZHYaXpMQ6tNV53GqUrpK873OvBA+bdmH4bjH/62ye41Y1dNg3W2xgq08cFsR r4Mw== 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:in-reply-to :references; bh=RT1GreJgsvsbPtqY2RbKVaphAKh18dUwun7FW6H0APA=; b=EuUMFTe7N7dnDz+4NBwiQCfqBICwvV0IL4Bd3lN533LCx83UdbDX/aaeaPgKEYyBbe 9hnEP9FhMdQ1X6ArhqT76ZmgGgq0YBK6zsAMU6XWmEa6k7/9f0wk9nJb1bTpEQ24ccGy inJ1qNv5YR+gMo7opL74D24W221SByVzE+6GYwFglHg2tAKrdrqCzdaci17eMKcm7SWK cKuQbiPRyyCMAHyTJzDzJ/30NApZIZvrjybZeEPbRwcxlJOjeHPke/LrzoKqQsBQ3MwA Y3nqMMWjyepk32ubCNO4Ox/2JacZ35/pRyCQnMowEaX8hfGTMcv8PNg9V8QKbWpQNqYZ eZHA== X-Gm-Message-State: AHQUAuYooGgf9A45i11kTCtAV7WbzGLW8M51/FWDrlDBNGaa2NDg62HF m8Y11Qm+T7pF4+3yPEzvdjIKg+ASDkQ= X-Google-Smtp-Source: AHgI3IachoZ7rt6wba0jCdR6nPaqIe3QO6H6qYGwmIgbQLMCfi+kav8rgJqqXJFkpcmKeocBX84hDg== X-Received: by 2002:aa7:8508:: with SMTP id v8mr14525563pfn.28.1549683536843; Fri, 08 Feb 2019 19:38:56 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:38 -0800 Message-Id: <20190209033847.9014-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::444 Subject: [Qemu-devel] [PATCH v3 03/12] target/arm: Use vector minmax expanders for aarch32 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/translate.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index 9d2dba7ed2..df1cd3fa3e 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -6368,6 +6368,25 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) tcg_gen_gvec_cmp(u ? TCG_COND_GEU : TCG_COND_GE, size, rd_ofs, rn_ofs, rm_ofs, vec_size, vec_size); return 0; + + case NEON_3R_VMAX: + if (u) { + tcg_gen_gvec_umax(size, rd_ofs, rn_ofs, rm_ofs, + vec_size, vec_size); + } else { + tcg_gen_gvec_smax(size, rd_ofs, rn_ofs, rm_ofs, + vec_size, vec_size); + } + return 0; + case NEON_3R_VMIN: + if (u) { + tcg_gen_gvec_umin(size, rd_ofs, rn_ofs, rm_ofs, + vec_size, vec_size); + } else { + tcg_gen_gvec_smin(size, rd_ofs, rn_ofs, rm_ofs, + vec_size, vec_size); + } + return 0; } =20 if (size =3D=3D 3) { @@ -6533,12 +6552,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) case NEON_3R_VQRSHL: GEN_NEON_INTEGER_OP_ENV(qrshl); break; - case NEON_3R_VMAX: - GEN_NEON_INTEGER_OP(max); - break; - case NEON_3R_VMIN: - GEN_NEON_INTEGER_OP(min); - break; case NEON_3R_VABD: GEN_NEON_INTEGER_OP(abd); break; --=20 2.17.2 From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549684007912469.1633716055944; Fri, 8 Feb 2019 19:46:47 -0800 (PST) Received: from localhost ([127.0.0.1]:39153 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJbK-0004A2-Uo for importer@patchew.org; Fri, 08 Feb 2019 22:46:46 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42449) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJTo-0006io-Kb for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJTn-0000U2-N8 for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:00 -0500 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]:41637) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJTn-0000Td-HT for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:38:59 -0500 Received: by mail-pl1-x643.google.com with SMTP id k15so2598642pls.8 for ; Fri, 08 Feb 2019 19:38:59 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.38.56 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:38:57 -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:in-reply-to:references; bh=Ku2qqiofyo2h0KHaCF51MqBaY9+LaL6xQcdtOeJ2hfM=; b=CsxEwDwqjlhbWjZ9mh84lVdYJmxG0wxVlb4Ignl6JvVTNLGva+voeSmnCPc605z8J8 BL+eU+C4OvpEXyy/oHz4Ilj5yOAGtJouJCRhWxqqJYAufIjxwgWXbCGe/ebWrVVC60xb mmO+McTUTlWSb71lDUEc6jjfbOv8OL+SKQ/RG8nLVIV4ucelBu6Q/3+Ko/CVzG7k9eSF 0liq4k3dotd5rCCh9biT45ZHK+ps2c/o3/SXnpYXfTh3kb4FP6LNB/C93OFaSSHsYmDc cgD9Qwn61j17J9FZUUdcE9+C6dJioHojxs4NgQRaPPsNAttTxK/gtRepREYvv6ACytf3 CsvA== 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:in-reply-to :references; bh=Ku2qqiofyo2h0KHaCF51MqBaY9+LaL6xQcdtOeJ2hfM=; b=GxaFT6MOh68TjbjipfaIhRjhgaw6FHgwTCDInmd1HYyZ4ch669jbJqBi1xVgToWA3M casOPTuF+0g6yZR0LbvQNY21/67z1OCLpWzMZ6vutsSupoe6i9jS+YIgBH4ZZM03mRsj ExsjQ8UTE3mDthcHaDnwS9KVYOKs5qWPQOLR63fNHsuLS8gWKrkzB/1HSshC3eTcICVO Tbckon9Sm8KQFbSNBMp/akW8i0pqy68tqxbHOVTvdmknsB4QO+A7J2iRmCu/s/Faqh/z suH+j9VskER1PqWR7T94dBah8N13MnZ1ExcDQHNYNtUiFUx2soN7JhapZFY+4cQ9vkD5 1Hbg== X-Gm-Message-State: AHQUAuYXSP7P99WBgaLc94YthTOgWv3SkHwvlOyDuFbZ+lAsUq09CEvp /sVgslkb6W5GYFYA5belBkx8xyhIqxI= X-Google-Smtp-Source: AHgI3IZhI7qsB+en4sXQhCJ9nlYSa0NqyVQt6qQggNCkQh75Qvn0tCfaqmSyLJwdXuZ5aFIY/XKoWA== X-Received: by 2002:a17:902:7598:: with SMTP id j24mr26575133pll.7.1549683538162; Fri, 08 Feb 2019 19:38:58 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:39 -0800 Message-Id: <20190209033847.9014-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::643 Subject: [Qemu-devel] [PATCH v3 04/12] target/arm: Use tcg integer min/max primitives for neon 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The 32-bit PMIN/PMAX has been decomposed to scalars, and so can be trivially expanded inline. Signed-off-by: Richard Henderson --- target/arm/translate.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index df1cd3fa3e..f0101d2788 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -4760,10 +4760,10 @@ static inline void gen_neon_rsb(int size, TCGv_i32 = t0, TCGv_i32 t1) } =20 /* 32-bit pairwise ops end up the same as the elementwise versions. */ -#define gen_helper_neon_pmax_s32 gen_helper_neon_max_s32 -#define gen_helper_neon_pmax_u32 gen_helper_neon_max_u32 -#define gen_helper_neon_pmin_s32 gen_helper_neon_min_s32 -#define gen_helper_neon_pmin_u32 gen_helper_neon_min_u32 +#define gen_helper_neon_pmax_s32 tcg_gen_smax_i32 +#define gen_helper_neon_pmax_u32 tcg_gen_umax_i32 +#define gen_helper_neon_pmin_s32 tcg_gen_smin_i32 +#define gen_helper_neon_pmin_u32 tcg_gen_umin_i32 =20 #define GEN_NEON_INTEGER_OP_ENV(name) do { \ switch ((size << 1) | u) { \ --=20 2.17.2 From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549683683316470.6526573408495; Fri, 8 Feb 2019 19:41:23 -0800 (PST) Received: from localhost ([127.0.0.1]:39077 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJW0-0008Ce-Kf for importer@patchew.org; Fri, 08 Feb 2019 22:41:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42465) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJTs-0006qx-Ej for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJTq-0000Ux-DX for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:04 -0500 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]:40294) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJTo-0000UL-VV for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:01 -0500 Received: by mail-pf1-x443.google.com with SMTP id i12so2572440pfo.7 for ; Fri, 08 Feb 2019 19:39:00 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.38.58 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:38:58 -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:in-reply-to:references; bh=Zi+eGtIG5ntlRP+2o43haALA7jfJjuuH+C4Q78Yx964=; b=s6JOGpsMsnM85XTnChn0junEdFQGx0lHup231LQYurUYkBC5mniWwCgn4jdz0dgbLL z/L+N5hiuIxRK0voAQwL3l7a+V9UcKx7RBv6INtYj6br4QuOPexfPgTvk+HNZN9gY3U1 7eO/z5/NMJRPUjUu+RnPyXKBA0HGpKhuLvUnHNSmQSwJMxICDdWrrpETTtna1/Mui1M9 F1cs7UsUmhl8GPZ/uk9lQsX/l4apzg3KplGxtyMoS+c4M1Q0oqnROaPQOERB2VUq7mJx nWsZYIPGGLpisXsP/wUV4y0KvN7W71LVjXffJbafzH7hnGxHZ++mbrzrpOHoxLnT3z4J DRYg== 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:in-reply-to :references; bh=Zi+eGtIG5ntlRP+2o43haALA7jfJjuuH+C4Q78Yx964=; b=V5yptjYMoH7OrwzLT7aNyht3eCe+DXUJDcQo/kDU9YGE8HrrBSzDlCs7NtdCfbfjmV tDN+Pm2AEafbzZuYvs0nSVTN4szIz52qtxocQSW646MR48CB2qgzfVnFE8zmvaI3k829 XxA4/ZNBVVKhKRh6ZuHTkGA/sTmhW+1J9CtuwUtdMGXDQMS9skFGldnIz1s5WX2vngj+ yJG0yjcoQdCYkn6odetBFBQlRCH7twI6d7xUHbir/gylnpqDDw7QG+X+g3k2jnD0yMvl 0n9gX8AgXnmSqpCMQP99zIv/QrCPEzBjKL6DkeBl3GWoQoXAL5iFfOVJQXl2GbVms3oM gAFg== X-Gm-Message-State: AHQUAua/cvCwtveHZqfjYnLnCzfd8nrVKHJQVrJlvJrJPS0cO/8Gdv2Y T6Os+hvP7blpnDUyVDyq8g3vNpr7pXY= X-Google-Smtp-Source: AHgI3IZ0aIyu37mKTjL1iAcfhKw7mgu3i3y9V/MPUUjIAzIqXXOJAroI6lCRA8lXq/a0MwkKs95KNQ== X-Received: by 2002:a65:43c5:: with SMTP id n5mr8059032pgp.250.1549683539568; Fri, 08 Feb 2019 19:38:59 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:40 -0800 Message-Id: <20190209033847.9014-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::443 Subject: [Qemu-devel] [PATCH v3 05/12] target/arm: Remove neon min/max helpers 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" These are now unused. Signed-off-by: Richard Henderson --- target/arm/helper.h | 12 ------------ target/arm/neon_helper.c | 12 ------------ 2 files changed, 24 deletions(-) diff --git a/target/arm/helper.h b/target/arm/helper.h index 53a38188c6..9874c35ea9 100644 --- a/target/arm/helper.h +++ b/target/arm/helper.h @@ -276,18 +276,6 @@ DEF_HELPER_2(neon_cge_s16, i32, i32, i32) DEF_HELPER_2(neon_cge_u32, i32, i32, i32) DEF_HELPER_2(neon_cge_s32, i32, i32, i32) =20 -DEF_HELPER_2(neon_min_u8, i32, i32, i32) -DEF_HELPER_2(neon_min_s8, i32, i32, i32) -DEF_HELPER_2(neon_min_u16, i32, i32, i32) -DEF_HELPER_2(neon_min_s16, i32, i32, i32) -DEF_HELPER_2(neon_min_u32, i32, i32, i32) -DEF_HELPER_2(neon_min_s32, i32, i32, i32) -DEF_HELPER_2(neon_max_u8, i32, i32, i32) -DEF_HELPER_2(neon_max_s8, i32, i32, i32) -DEF_HELPER_2(neon_max_u16, i32, i32, i32) -DEF_HELPER_2(neon_max_s16, i32, i32, i32) -DEF_HELPER_2(neon_max_u32, i32, i32, i32) -DEF_HELPER_2(neon_max_s32, i32, i32, i32) DEF_HELPER_2(neon_pmin_u8, i32, i32, i32) DEF_HELPER_2(neon_pmin_s8, i32, i32, i32) DEF_HELPER_2(neon_pmin_u16, i32, i32, i32) diff --git a/target/arm/neon_helper.c b/target/arm/neon_helper.c index c2c6491a83..3249005b62 100644 --- a/target/arm/neon_helper.c +++ b/target/arm/neon_helper.c @@ -581,12 +581,6 @@ NEON_VOP(cge_u32, neon_u32, 1) #undef NEON_FN =20 #define NEON_FN(dest, src1, src2) dest =3D (src1 < src2) ? src1 : src2 -NEON_VOP(min_s8, neon_s8, 4) -NEON_VOP(min_u8, neon_u8, 4) -NEON_VOP(min_s16, neon_s16, 2) -NEON_VOP(min_u16, neon_u16, 2) -NEON_VOP(min_s32, neon_s32, 1) -NEON_VOP(min_u32, neon_u32, 1) NEON_POP(pmin_s8, neon_s8, 4) NEON_POP(pmin_u8, neon_u8, 4) NEON_POP(pmin_s16, neon_s16, 2) @@ -594,12 +588,6 @@ NEON_POP(pmin_u16, neon_u16, 2) #undef NEON_FN =20 #define NEON_FN(dest, src1, src2) dest =3D (src1 > src2) ? src1 : src2 -NEON_VOP(max_s8, neon_s8, 4) -NEON_VOP(max_u8, neon_u8, 4) -NEON_VOP(max_s16, neon_s16, 2) -NEON_VOP(max_u16, neon_u16, 2) -NEON_VOP(max_s32, neon_s32, 1) -NEON_VOP(max_u32, neon_u32, 1) NEON_POP(pmax_s8, neon_s8, 4) NEON_POP(pmax_u8, neon_u8, 4) NEON_POP(pmax_s16, neon_s16, 2) --=20 2.17.2 From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549683845066125.10503283339528; Fri, 8 Feb 2019 19:44:05 -0800 (PST) Received: from localhost ([127.0.0.1]:39100 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJYf-0001xF-51 for importer@patchew.org; Fri, 08 Feb 2019 22:44:01 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42484) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJTz-0006uv-4E for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJTs-0000Vg-ED for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:06 -0500 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]:38674) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJTq-0000Uf-DF for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:03 -0500 Received: by mail-pf1-x443.google.com with SMTP id q1so2580848pfi.5 for ; Fri, 08 Feb 2019 19:39:01 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.38.59 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:39:00 -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:in-reply-to:references; bh=smm0FHV8915qY07Dv9BtLFPbyAAqc9wK+rxK6VxHR+0=; b=A/PAtmne+yqlBtPRDH5fR8bxxaJusg5ZlTWvRMCW1kB7sArJpqGSP7sPDBAMeO1h+m c8kREu3FgBJOdl7hyU7uLqmX5SYXKq6IkrXg4khnUxA/8yiTU9HUV/a7ocWelmRWC07X 4rEeJrw2gWhkzKWtXcPaKBgl+eDJKi0Z5UqKex6uvtumfX5ZjfSQhhtkhx/WCLtyLI8p goEwP6jUMZACaAxV7w3H5liJLVqixEUqwEfwtXQcd8QAAJPYlMy2vloWc+BoPWXwWto8 5h2GqbhYl/8uq9Mp4pUybwR/e9ByyceKIhsJSPq5gmUD6EM+BR3C69aTrYPTjv4SFnXN mmVw== 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:in-reply-to :references; bh=smm0FHV8915qY07Dv9BtLFPbyAAqc9wK+rxK6VxHR+0=; b=a6XkUh8ikCExxyyxecHJW/Jc6TYwRQdTBFsab9t5src9s2bj0Qq6YTVqx9IoFx794W p0IqBP6UuQA5hGr1yWgbhHB89RYt57a1SjIxE1U5LU3Qo1QgDu3J8cbPzkFibI7sigzS f/m0erUa0PL9s4QnpotXoYZlsxGO0ZER7mn4rSv/c0TdGG+JDsZ0AS8WlyRPMNJ2Jp5L JJTR3A5Lb4U9ZTvtGfYUdnTlhX0ZB7VQvgU1IsK/U+SkaAo9RWVeygBF7HM/SAHC1Mg+ 7EXQt8uMsc1V6PbwsxER4thkiD9Pp05buuAroCyzfDua5OoqpYwCRPKSVGvyz1gXYZpx KeMQ== X-Gm-Message-State: AHQUAuZpg6/QRDQ4fNiQOkuJVG06G7hjmLS+bf4yzXVDu3UotxODhbU7 Ww4HXmAFw5a2orO5kaiAiyEmfhqr5S0= X-Google-Smtp-Source: AHgI3IY59vTPYhZGXcTbaEjzD2MV8ppGhfuBW1QRw+vcxP7YBVgANNf+AJvcsAz1RgNCr9zllBTrtQ== X-Received: by 2002:a63:e545:: with SMTP id z5mr23968485pgj.195.1549683540818; Fri, 08 Feb 2019 19:39:00 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:41 -0800 Message-Id: <20190209033847.9014-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::443 Subject: [Qemu-devel] [PATCH v3 06/12] target/arm: Fix vfp_gdb_get/set_reg vs FPSCR 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The components of this register is stored in several different locations. Signed-off-by: Richard Henderson --- target/arm/helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 520ceea7a4..6ac81c2ca2 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -81,7 +81,7 @@ static int vfp_gdb_get_reg(CPUARMState *env, uint8_t *buf= , int reg) } switch (reg - nregs) { case 0: stl_p(buf, env->vfp.xregs[ARM_VFP_FPSID]); return 4; - case 1: stl_p(buf, env->vfp.xregs[ARM_VFP_FPSCR]); return 4; + case 1: stl_p(buf, vfp_get_fpscr(env)); return 4; case 2: stl_p(buf, env->vfp.xregs[ARM_VFP_FPEXC]); return 4; } return 0; @@ -107,7 +107,7 @@ static int vfp_gdb_set_reg(CPUARMState *env, uint8_t *b= uf, int reg) } switch (reg - nregs) { case 0: env->vfp.xregs[ARM_VFP_FPSID] =3D ldl_p(buf); return 4; - case 1: env->vfp.xregs[ARM_VFP_FPSCR] =3D ldl_p(buf); return 4; + case 1: vfp_set_fpscr(env, ldl_p(buf)); return 4; case 2: env->vfp.xregs[ARM_VFP_FPEXC] =3D ldl_p(buf) & (1 << 30); retu= rn 4; } return 0; --=20 2.17.2 From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549684139051908.3969170234957; Fri, 8 Feb 2019 19:48:59 -0800 (PST) Received: from localhost ([127.0.0.1]:39173 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJdI-0005bB-55 for importer@patchew.org; Fri, 08 Feb 2019 22:48:48 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42499) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJU1-0006vV-QY for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJTx-0000Xb-Te for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:11 -0500 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]:39183) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJTs-0000V9-Cy for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:05 -0500 Received: by mail-pf1-x441.google.com with SMTP id f132so2577963pfa.6 for ; Fri, 08 Feb 2019 19:39:03 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.39.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:39:01 -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:in-reply-to:references; bh=4vo5h8ohfFheLvmyTEpJJcqtpBW3TwPHJrdpa8cctgQ=; b=LnOvi2d/ETy88AjcjlUu96laLykSQy+XTGtDksplvXu+O+InzKBLLpUJfQ2IOKpKeF 2Z87nu9YFuRz4rEagSaCC7jJKBJNPp7mDjhNGe74GmDi7YEY5YgfMmZopZl9h6BcLOoD ZotDgB2wrW5Bsn+G+wx0zEgCoPHQ3ahRpS9Lw4wPm+WMGavp+KwtZvpe3gY/dWbd+fqE 97Xq6Add88Xt8wSlvbZ/IZDnLY2hn6HAcPfmcO7XF/dCrYYHOl2RI4SA1EHAqsIwTgYS PwbDhfYdHirlEJWvGKf/aB5HrYNWS+et8OsOgd3IVX7OVgVlf/3J3Dep7DaRhgollM7Q rV/w== 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:in-reply-to :references; bh=4vo5h8ohfFheLvmyTEpJJcqtpBW3TwPHJrdpa8cctgQ=; b=Jn6H1/8bnn+gxjZWcFeS/yBD4eESJ8fYzhGZAu/IdmLGz5Bsh50vKRKbLgnY9ZoxP6 ClUk8kb/PLxWD+hQ0kB+MQOKwFlcufm6FLv04wENO62t9DVafPY/7FtGfv7VvLzY1+rN 0f4yNABsyibB+ND6BPIC9ER/FZyfbFzjCt0EWpDBdUAWa0Odp5pmg7zvvQoSPkhlvaHC 5+9qIMa/s+6njB/yiPCqNW7BgEA1d2pwGS3UcLhKj4KYVic+PqmWP2159OyeJJlKfxW4 w4QTB4/hIT0scmDHgnfBO3lm3B1v2pG1eClHGtOuBpZ4Xd+RI2YWhglt4F4tdyZ8/6Hm e7Ig== X-Gm-Message-State: AHQUAub3iBShKwkZUVDA3KlqhSiDyXnWwSjsBY8xtsEV+XvLzTUJtnJw 5dtVDDx1q5j+5NBkOD6zRAR5TJ96OqY= X-Google-Smtp-Source: AHgI3Iar3kF1FqZLoKtY2wI4Rh4MxRtPgBGjizb9uOY64ESogyPbKzi0PSnQB0Tle1ntUnJHYQvw3Q== X-Received: by 2002:a62:5f47:: with SMTP id t68mr5885732pfb.89.1549683542099; Fri, 08 Feb 2019 19:39:02 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:42 -0800 Message-Id: <20190209033847.9014-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::441 Subject: [Qemu-devel] [PATCH v3 07/12] target/arm: Fix arm_cpu_dump_state vs FPSCR 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index f0101d2788..9b426f4271 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -13641,7 +13641,7 @@ void arm_cpu_dump_state(CPUState *cs, FILE *f, fpri= ntf_function cpu_fprintf, i * 2 + 1, (uint32_t)(v >> 32), i, v); } - cpu_fprintf(f, "FPSCR: %08x\n", (int)env->vfp.xregs[ARM_VFP_FPSCR]= ); + cpu_fprintf(f, "FPSCR: %08x\n", vfp_get_fpscr(env)); } } =20 --=20 2.17.2 From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549684213047929.561493900576; Fri, 8 Feb 2019 19:50:13 -0800 (PST) Received: from localhost ([127.0.0.1]:39179 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJeZ-0006M8-5i for importer@patchew.org; Fri, 08 Feb 2019 22:50:07 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42506) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJU4-00070F-Sn for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJTz-0000Ye-VT for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:13 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]:36140) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJTv-0000VU-VT for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:09 -0500 Received: by mail-pl1-x636.google.com with SMTP id g9so2612842plo.3 for ; Fri, 08 Feb 2019 19:39:04 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.39.02 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:39:02 -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:in-reply-to:references; bh=mbI6BmlEcsoQbk9otTO/UpbfLnedk7lNBUH1NdN1wA0=; b=NyCCjsZjpEc0s/hFjnQgtM2DApim9AyROMniCZjo0RUU4nBBC/U1dwDALjxyqZFHkX +zJV66/dxq9NZcLxpRJcxdU8ChXN9Kd9yFrXt7j+Q3jf49ayk0vMc+RgxACxcv9t4/Ly CHXdTZJaP4Y+RvxF9a84KHZfDLPqwv+xDLR/qbEY7iZRvp/go//de6ptOPxTe3yX7uH0 5xix5XuIGiJ0SrQ1HfQdNXMI9aks0t1hX2T8unSRJr0IaPo1Dq2tSG+UDPLybf97e9gM hL3+QWv56o5P1p8SR0kfqffXA1SzWr16aMOuBosboe/MFNqD5wicMWFGV8YoMLgCyPCZ z+8g== 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:in-reply-to :references; bh=mbI6BmlEcsoQbk9otTO/UpbfLnedk7lNBUH1NdN1wA0=; b=WVky45BGwfLtCpmPnzbLM9X5eI2dzke9FJNio37Sc+q9nGWmDRtK2o/xuFOg5hzsWH DjLZE+da7iosrjLEaN+mpQU7pCmiWc4tYehHH32snjHggaS2Cuo1JpQpyoH2WAOnDF6e aCmAmSZzNEa3VaRnNFXrLdjSy+n414X5Lw/OkSTcwzzjNkn4tEGERBwFL0s0Vzj6xsbj 04KFbXBsN+LYBtT6oJEskLYG5+BbTd3RAD8jFsf9hn3SM5TezTTa4qTulyzSNmpEK6JI dPiVp9rprqyNau6aTT5/eRRYPaDOCFp5EF5EVul/72M8wsQYOsKbJd0gqKQG2P2Cp6t/ dG8Q== X-Gm-Message-State: AHQUAuYfGabHIuabHBljklNMW+a4+l+Z3rmEan4FqMf6SYjftYwd6+up vH82V92Ax7xfNhqb9YOLCtWaIvqXh6E= X-Google-Smtp-Source: AHgI3IZ2ygtYDuvBcetDaMcsNyTCKM/pSow5HK7U8xE+jq02onnzX9hnZJrWgNm4GfcrsqxRXsqEaQ== X-Received: by 2002:a17:902:7107:: with SMTP id a7mr26350150pll.290.1549683543235; Fri, 08 Feb 2019 19:39:03 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:43 -0800 Message-Id: <20190209033847.9014-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::636 Subject: [Qemu-devel] [PATCH v3 08/12] target/arm: Split out flags setting from vfp compares 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Minimize the code within a macro by splitting out a helper function. Use deposit32 instead of manual bit manipulation. Signed-off-by: Richard Henderson --- target/arm/helper.c | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 6ac81c2ca2..51be3fa16f 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -12752,31 +12752,40 @@ float64 VFP_HELPER(sqrt, d)(float64 a, CPUARMStat= e *env) return float64_sqrt(a, &env->vfp.fp_status); } =20 +static void softfloat_to_vfp_compare(CPUARMState *env, int cmp) +{ + uint32_t flags; + switch (cmp) { + case float_relation_equal: + flags =3D 0x6; + break; + case float_relation_less: + flags =3D 0x8; + break; + case float_relation_greater: + flags =3D 0x2; + break; + case float_relation_unordered: + flags =3D 0x3; + break; + default: + g_assert_not_reached(); + } + env->vfp.xregs[ARM_VFP_FPSCR] =3D + deposit32(env->vfp.xregs[ARM_VFP_FPSCR], 28, 4, flags); +} + /* XXX: check quiet/signaling case */ #define DO_VFP_cmp(p, type) \ void VFP_HELPER(cmp, p)(type a, type b, CPUARMState *env) \ { \ - uint32_t flags; \ - switch(type ## _compare_quiet(a, b, &env->vfp.fp_status)) { \ - case 0: flags =3D 0x6; break; \ - case -1: flags =3D 0x8; break; \ - case 1: flags =3D 0x2; break; \ - default: case 2: flags =3D 0x3; break; \ - } \ - env->vfp.xregs[ARM_VFP_FPSCR] =3D (flags << 28) \ - | (env->vfp.xregs[ARM_VFP_FPSCR] & 0x0fffffff); \ + softfloat_to_vfp_compare(env, \ + type ## _compare_quiet(a, b, &env->vfp.fp_status)); \ } \ void VFP_HELPER(cmpe, p)(type a, type b, CPUARMState *env) \ { \ - uint32_t flags; \ - switch(type ## _compare(a, b, &env->vfp.fp_status)) { \ - case 0: flags =3D 0x6; break; \ - case -1: flags =3D 0x8; break; \ - case 1: flags =3D 0x2; break; \ - default: case 2: flags =3D 0x3; break; \ - } \ - env->vfp.xregs[ARM_VFP_FPSCR] =3D (flags << 28) \ - | (env->vfp.xregs[ARM_VFP_FPSCR] & 0x0fffffff); \ + softfloat_to_vfp_compare(env, \ + type ## _compare(a, b, &env->vfp.fp_status)); \ } DO_VFP_cmp(s, float32) DO_VFP_cmp(d, float64) --=20 2.17.2 From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549683910387218.0405546449333; Fri, 8 Feb 2019 19:45:10 -0800 (PST) Received: from localhost ([127.0.0.1]:39105 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJZj-0002tW-Co for importer@patchew.org; Fri, 08 Feb 2019 22:45:07 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42538) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJUI-00079t-B9 for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJUB-0000bu-A2 for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:25 -0500 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]:47021) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJU5-0000W4-Fp for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:19 -0500 Received: by mail-pl1-x641.google.com with SMTP id o6so2584385pls.13 for ; Fri, 08 Feb 2019 19:39:05 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.39.03 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:39:03 -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:in-reply-to:references; bh=io0Q8vKcg32ZslzsokBprL4UTtWvNRVBn1H6HUdOh9Q=; b=QvlrwxqpHxMIlTbfeVwY1ExLXe7f7PeexPxZP7h9XqoiYBsqAmmRDya+49OWDH1oIo xWWRU63DyCTbna2LnjPqaUV+31KWXeJkFsGQfdtxYWv0rV5cVqUf4JAjTE//BRfS+zM4 L4zCtlB6XMZoI5q3reoRZLRsjYvyhj1VOJe99ygRuTQP7/fbW+HjLRT7tBM5x1h5CMxp 7Tx1/ryUo5IJkCV1dSMqpbI1tn+AR2Kq7VfgE55kl5Yf6FZDpBxECgChuHS7c52S4rsc R/CR8JAtjMzlS80k+duyMqUeP4wUjzFuliwYX0/zsPTeu0sSWN/cV8aF4uywk9fBAOr2 CJkg== 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:in-reply-to :references; bh=io0Q8vKcg32ZslzsokBprL4UTtWvNRVBn1H6HUdOh9Q=; b=nVXKECcCf6xAfFO3Zlp79gp10zIEjPj/naO/xIC5CAyJj1xnAkFXqFZnazVi1K2otP TLUy5mFD1naPXMMYUtptzSHo2W4eamqe4Z2XOw00Tq7sJq1kwK4RYGDT+2DW+0vkuDE6 +mo+QTtme9Oq+EhkM2jHXUTfhbkAuY1wkEkj2Jc26i+rbeN9j6RYvg8WgIOisJLc2VW/ 237jI/7LbLGc64XEBwfmhWKgXIxTVgJ4jR4jxcwnafbnRE4md0LanHJlWJVoWMNQJSot LpTDpb3G+f9NpaEnO8I5eWE0xydcm1E8treetfWrUCHq8ZgMtaJWKMGG6kZvQJ0UfaY6 RySQ== X-Gm-Message-State: AHQUAubsxORSa4w/lwmaU/LYoU36TBHxVbWsoIPwcpc5AXb7Asyeme4l r2bDgoTSzhmyOchFBU8Ml4RCY/t6nQE= X-Google-Smtp-Source: AHgI3IZ5J4RZ5AXl1uuH7Z1doFc/OUZy6lmEXqazb/7W0pSXnrE/X6HGJcdoI4k4josFTmwrfIoO8A== X-Received: by 2002:a17:902:2969:: with SMTP id g96mr26289085plb.295.1549683544372; Fri, 08 Feb 2019 19:39:04 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:44 -0800 Message-Id: <20190209033847.9014-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::641 Subject: [Qemu-devel] [PATCH v3 09/12] target/arm: Fix set of bits kept in xregs[ARM_VFP_FPSCR] 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Given that we mask bits properly on set, there is no reason to mask them again on get. We failed to clear the exception status bits, 0x9f, which means that the wrong value would be returned on get. Except in the (probably normal) case in which the set clears all of the bits. Simplify the code in set to also clear the RES0 bits. Signed-off-by: Richard Henderson --- target/arm/helper.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 51be3fa16f..af22274bd9 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -12588,7 +12588,7 @@ uint32_t HELPER(vfp_get_fpscr)(CPUARMState *env) int i; uint32_t fpscr; =20 - fpscr =3D (env->vfp.xregs[ARM_VFP_FPSCR] & 0xffc8ffff) + fpscr =3D env->vfp.xregs[ARM_VFP_FPSCR] | (env->vfp.vec_len << 16) | (env->vfp.vec_stride << 20); =20 @@ -12630,7 +12630,7 @@ static inline int vfp_exceptbits_to_host(int target= _bits) void HELPER(vfp_set_fpscr)(CPUARMState *env, uint32_t val) { int i; - uint32_t changed; + uint32_t changed =3D env->vfp.xregs[ARM_VFP_FPSCR]; =20 /* When ARMv8.2-FP16 is not supported, FZ16 is RES0. */ if (!cpu_isar_feature(aa64_fp16, arm_env_get_cpu(env))) { @@ -12639,12 +12639,13 @@ void HELPER(vfp_set_fpscr)(CPUARMState *env, uint= 32_t val) =20 /* * We don't implement trapped exception handling, so the - * trap enable bits are all RAZ/WI (not RES0!) + * trap enable bits, IDE|IXE|UFE|OFE|DZE|IOE are all RAZ/WI (not RES0!) + * + * If we exclude the exception flags, IOC|DZC|OFC|UFC|IXC|IDC + * (which are stored in fp_status), and the other RES0 bits + * in between, then we clear all of the low 16 bits. */ - val &=3D ~(FPCR_IDE | FPCR_IXE | FPCR_UFE | FPCR_OFE | FPCR_DZE | FPCR= _IOE); - - changed =3D env->vfp.xregs[ARM_VFP_FPSCR]; - env->vfp.xregs[ARM_VFP_FPSCR] =3D (val & 0xffc8ffff); + env->vfp.xregs[ARM_VFP_FPSCR] =3D val & 0xffc80000; env->vfp.vec_len =3D (val >> 16) & 7; env->vfp.vec_stride =3D (val >> 20) & 3; =20 --=20 2.17.2 From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549683992106618.0872201322086; Fri, 8 Feb 2019 19:46:32 -0800 (PST) Received: from localhost ([127.0.0.1]:39151 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJb5-0003wO-4X for importer@patchew.org; Fri, 08 Feb 2019 22:46:31 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42567) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJUY-0007PR-5r for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJUS-0000hn-CS for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:43 -0500 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]:34539) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJUN-0000Wm-B5 for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:37 -0500 Received: by mail-pg1-x541.google.com with SMTP id d9so2432743pgl.1 for ; Fri, 08 Feb 2019 19:39:07 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.39.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:39:05 -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:in-reply-to:references; bh=aCH1tSuPlPTrUampigSo2Lvj/9ILp6juR6hIm3KXMeA=; b=dRTA+h+yP4AFsT+GkLCbLkKjpEeHsTfQ9AhrcRAavxuT6ddyBIwxdtkM85j41IvUOX lX3uZx3WhtXc3QAhHJd/5c5G492+CFO7SI9tNVKT/xizhXTlyXcYkJELgHynHqcl5hZL TrBjvzi2A4tB8NbcuL5GlJe79SBhymQHkYB0efxeIqyt/eD3IwG9fdNC+f4sKOkQ9JCu mIil97Fh3SvzVK8ufGPIC3rkjrUNQ6CkahgdtANJM9OJ+sWcUnezJjTfX6Fxg4LPbIWj DNJYOgN/2AViIU/4wtO+cKvB6obucqHZoNHgwAcxN4Vp1QlDnbShAKeDNZF1B71L6qlX vD2w== 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:in-reply-to :references; bh=aCH1tSuPlPTrUampigSo2Lvj/9ILp6juR6hIm3KXMeA=; b=DQwYB3KJNQqYOnf12QFyfB0ZF/4QK4T/ijtkdOAkg+5YstattbGkrGiIuPwonFRK1c rKJ0jA+eFHDcn5fIknXNv7O3LOfqEDtRXT9ErKtE+VeSekt1Yb+y/Y907x2d7BMybLeY hZNaGRel5njEa9Nrq3mBxxvIA5cITexNaYA6eYZfV3RdjLnW64jJWNz229xneh1T2S2k LYqlornGQcU2JWLxpufik/trMEa+Ue2Jn0pshS+M0seicr4O80KNDBmhWtAo4Po+k2NY wgjcH1RIRhw0Ok/N106PcyQkUGkDZQdcH24JclWEwXHt2NSLurz3q+nTOogLe9xhA1EA S0BA== X-Gm-Message-State: AHQUAuaqoTOBxuvwyZRbrL2ZQxaIV2qGiySFwRILRPV4D4VVHgZYoTuw xtHjM2LuQvVrMFVJ7zcpV964ELFSkvQ= X-Google-Smtp-Source: AHgI3Ia2/sxyRmHb/+S3iGLzdS2Qp5jxMJRDGPjBCRH4VW55fSmXluC9DOg7eu14RkDDfajCBG7oQA== X-Received: by 2002:a63:cc41:: with SMTP id q1mr8540399pgi.323.1549683546339; Fri, 08 Feb 2019 19:39:06 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:45 -0800 Message-Id: <20190209033847.9014-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::541 Subject: [Qemu-devel] [PATCH v3 10/12] target/arm: Split out FPSCR.QC to a vector field 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Change the representation of this field such that it is easy to set from vector code. Signed-off-by: Richard Henderson --- target/arm/cpu.h | 5 ++++- target/arm/helper.c | 19 +++++++++++++++---- target/arm/neon_helper.c | 2 +- target/arm/vec_helper.c | 2 +- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 47238e4245..b96463e8f1 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -577,11 +577,13 @@ typedef struct CPUARMState { ARMPredicateReg preg_tmp; #endif =20 - uint32_t xregs[16]; /* We store these fpcsr fields separately for convenience. */ + uint32_t qc[4] QEMU_ALIGNED(16); int vec_len; int vec_stride; =20 + uint32_t xregs[16]; + /* Scratch space for aa32 neon expansion. */ uint32_t scratch[8]; =20 @@ -1427,6 +1429,7 @@ void vfp_set_fpscr(CPUARMState *env, uint32_t val); #define FPCR_FZ16 (1 << 19) /* ARMv8.2+, FP16 flush-to-zero */ #define FPCR_FZ (1 << 24) /* Flush-to-zero enable bit */ #define FPCR_DN (1 << 25) /* Default NaN enable bit */ +#define FPCR_QC (1 << 27) /* Cumulative saturation bit */ =20 static inline uint32_t vfp_get_fpsr(CPUARMState *env) { diff --git a/target/arm/helper.c b/target/arm/helper.c index af22274bd9..7ed9933663 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -12585,8 +12585,7 @@ static inline int vfp_exceptbits_from_host(int host= _bits) =20 uint32_t HELPER(vfp_get_fpscr)(CPUARMState *env) { - int i; - uint32_t fpscr; + uint32_t i, fpscr; =20 fpscr =3D env->vfp.xregs[ARM_VFP_FPSCR] | (env->vfp.vec_len << 16) @@ -12597,8 +12596,11 @@ uint32_t HELPER(vfp_get_fpscr)(CPUARMState *env) /* FZ16 does not generate an input denormal exception. */ i |=3D (get_float_exception_flags(&env->vfp.fp_status_f16) & ~float_flag_input_denormal); - fpscr |=3D vfp_exceptbits_from_host(i); + + i =3D env->vfp.qc[0] | env->vfp.qc[1] | env->vfp.qc[2] | env->vfp.qc[3= ]; + fpscr |=3D i ? FPCR_QC : 0; + return fpscr; } =20 @@ -12645,10 +12647,19 @@ void HELPER(vfp_set_fpscr)(CPUARMState *env, uint= 32_t val) * (which are stored in fp_status), and the other RES0 bits * in between, then we clear all of the low 16 bits. */ - env->vfp.xregs[ARM_VFP_FPSCR] =3D val & 0xffc80000; + env->vfp.xregs[ARM_VFP_FPSCR] =3D val & 0xf7c80000; env->vfp.vec_len =3D (val >> 16) & 7; env->vfp.vec_stride =3D (val >> 20) & 3; =20 + /* + * The bit we set within fpscr_q is arbitrary; the register as a + * whole being zero/non-zero is what counts. + */ + env->vfp.qc[0] =3D val & FPCR_QC; + env->vfp.qc[1] =3D 0; + env->vfp.qc[2] =3D 0; + env->vfp.qc[3] =3D 0; + changed ^=3D val; if (changed & (3 << 22)) { i =3D (val >> 22) & 3; diff --git a/target/arm/neon_helper.c b/target/arm/neon_helper.c index 3249005b62..ed1c6fc41c 100644 --- a/target/arm/neon_helper.c +++ b/target/arm/neon_helper.c @@ -15,7 +15,7 @@ #define SIGNBIT (uint32_t)0x80000000 #define SIGNBIT64 ((uint64_t)1 << 63) =20 -#define SET_QC() env->vfp.xregs[ARM_VFP_FPSCR] |=3D CPSR_Q +#define SET_QC() env->vfp.qc[0] =3D 1 =20 #define NEON_TYPE1(name, type) \ typedef struct \ diff --git a/target/arm/vec_helper.c b/target/arm/vec_helper.c index 37f338732e..65a18af4e0 100644 --- a/target/arm/vec_helper.c +++ b/target/arm/vec_helper.c @@ -36,7 +36,7 @@ #define H4(x) (x) #endif =20 -#define SET_QC() env->vfp.xregs[ARM_VFP_FPSCR] |=3D CPSR_Q +#define SET_QC() env->vfp.qc[0] =3D 1 =20 static void clear_tail(void *vd, uintptr_t opr_sz, uintptr_t max_sz) { --=20 2.17.2 From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549684292833698.4135383507901; Fri, 8 Feb 2019 19:51:32 -0800 (PST) Received: from localhost ([127.0.0.1]:39216 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJfp-000735-PP for importer@patchew.org; Fri, 08 Feb 2019 22:51:25 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42531) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJUD-00074z-3E for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJU7-0000at-3l for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:23 -0500 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]:45148) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJU4-0000X3-VR for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:17 -0500 Received: by mail-pl1-x641.google.com with SMTP id a14so2588494plm.12 for ; Fri, 08 Feb 2019 19:39:08 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.39.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:39:06 -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:in-reply-to:references; bh=ekZakn26RrnuoOdbmnjbqOhwwrv1WMbjn8NMae33G2c=; b=nsEbfiuGYIYkuBLnGMZgr3KJIKCc8VH7iNr3HJrXgpJTN9OEdU5NUPuKlc+Bc8kB9+ 3mNTjcQ92F9yme/ORruuw/LN6fI5r/B5r2mQwEosNUgKCgD5r3J31jNKG+e5Lbqp3gFm K7oGe1+/Yy3BWeVmp0NOHMNHyOI/BM4o9whlnrHXyojB6HCz2RWlJQn6MzGatfXv0RdO n8KPAszVjCrOMt+T+HJ/KcOqQKAV62Cb8nBPMQ1y9T/J/FG0MxM8jZ8xKy5+qxGNPlau 4RDh0ED1zEWt8jkSjnASbJeWH1yA01Isj/+rmJ28P/cQ5a5ESxruDB1Vttf0hbe42xO3 nQpQ== 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:in-reply-to :references; bh=ekZakn26RrnuoOdbmnjbqOhwwrv1WMbjn8NMae33G2c=; b=Ll5l/sbjqfOXTfaBmHDEjIigSLq8L28YXJET3lL3kEZ/26Zl6ppzAobs+C8XIZb5ah 0oRq9nGWGDVp3qMwLS7FBgY6u8wmBKR6thdMOVRUPMGchST4cCsTCsppzSU5lh9u7/pc Blbbyda4A8yC95vCVYOJpGjToUiGVvlvCLnE51n15jzkvRTz4AvtgjnQu/xGhGcDf8gR dfuMSYAL3XmugcrwqI3rfpQWx/M25Mef0i8zoNmy18rccDyUIhvaHwHNKSetsreGlyZQ 0037zyI3yEEp8l3gvq6eKT9oCRMDgyaWjMD5QeVDvwwuzA4aok411RzGfMgy5UOSKfwa 2iGw== X-Gm-Message-State: AHQUAuamqUvhhlYkHzcCSjp92J4Lg51PreLXo8vU4M2vNzIcGq78h7/i lVdJZcIw5cESj4/zssyXks+Ce3fHpyY= X-Google-Smtp-Source: AHgI3IZmtwZjgS/sKfsYvN+vfJoeM5NrTwpExN/GdvYLUdOZzEhDJULK31qlaPzppN2QLByMXax6WQ== X-Received: by 2002:a17:902:a70b:: with SMTP id w11mr26311760plq.84.1549683547636; Fri, 08 Feb 2019 19:39:07 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:46 -0800 Message-Id: <20190209033847.9014-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::641 Subject: [Qemu-devel] [PATCH v3 11/12] target/arm: Use vector operations for saturation 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" For same-sign saturation, we have tcg vector operations. We can compute the QC bit by comparing the saturated value against the unsaturated value. Signed-off-by: Richard Henderson --- target/arm/helper.h | 33 +++++++ target/arm/translate.h | 4 + target/arm/translate-a64.c | 36 ++++---- target/arm/translate.c | 172 +++++++++++++++++++++++++++++++------ target/arm/vec_helper.c | 130 ++++++++++++++++++++++++++++ 5 files changed, 331 insertions(+), 44 deletions(-) diff --git a/target/arm/helper.h b/target/arm/helper.h index 9874c35ea9..923e8e1525 100644 --- a/target/arm/helper.h +++ b/target/arm/helper.h @@ -641,6 +641,39 @@ DEF_HELPER_FLAGS_6(gvec_fmla_idx_s, TCG_CALL_NO_RWG, DEF_HELPER_FLAGS_6(gvec_fmla_idx_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, ptr, i32) =20 +DEF_HELPER_FLAGS_5(gvec_uqadd_b, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_uqadd_h, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_uqadd_s, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_uqadd_d, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_sqadd_b, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_sqadd_h, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_sqadd_s, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_sqadd_d, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_uqsub_b, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_uqsub_h, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_uqsub_s, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_uqsub_d, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_sqsub_b, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_sqsub_h, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_sqsub_s, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_5(gvec_sqsub_d, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, i32) + #ifdef TARGET_AARCH64 #include "helper-a64.h" #include "helper-sve.h" diff --git a/target/arm/translate.h b/target/arm/translate.h index 17748ddfb9..f25fe75685 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -214,6 +214,10 @@ extern const GVecGen2i ssra_op[4]; extern const GVecGen2i usra_op[4]; extern const GVecGen2i sri_op[4]; extern const GVecGen2i sli_op[4]; +extern const GVecGen4 uqadd_op[4]; +extern const GVecGen4 sqadd_op[4]; +extern const GVecGen4 uqsub_op[4]; +extern const GVecGen4 sqsub_op[4]; void gen_cmtst_i64(TCGv_i64 d, TCGv_i64 a, TCGv_i64 b); =20 /* diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index fd5ceb6613..af8e4fd4be 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -10948,6 +10948,22 @@ static void disas_simd_3same_int(DisasContext *s, = uint32_t insn) } =20 switch (opcode) { + case 0x01: /* SQADD, UQADD */ + tcg_gen_gvec_4(vec_full_reg_offset(s, rd), + offsetof(CPUARMState, vfp.qc), + vec_full_reg_offset(s, rn), + vec_full_reg_offset(s, rm), + is_q ? 16 : 8, vec_full_reg_size(s), + (u ? uqadd_op : sqadd_op) + size); + return; + case 0x05: /* SQSUB, UQSUB */ + tcg_gen_gvec_4(vec_full_reg_offset(s, rd), + offsetof(CPUARMState, vfp.qc), + vec_full_reg_offset(s, rn), + vec_full_reg_offset(s, rm), + is_q ? 16 : 8, vec_full_reg_size(s), + (u ? uqsub_op : sqsub_op) + size); + return; case 0x0c: /* SMAX, UMAX */ if (u) { gen_gvec_fn3(s, is_q, rd, rn, rm, tcg_gen_gvec_umax, size); @@ -11043,16 +11059,6 @@ static void disas_simd_3same_int(DisasContext *s, = uint32_t insn) genfn =3D fns[size][u]; break; } - case 0x1: /* SQADD, UQADD */ - { - static NeonGenTwoOpEnvFn * const fns[3][2] =3D { - { gen_helper_neon_qadd_s8, gen_helper_neon_qadd_u8 }, - { gen_helper_neon_qadd_s16, gen_helper_neon_qadd_u16 }, - { gen_helper_neon_qadd_s32, gen_helper_neon_qadd_u32 }, - }; - genenvfn =3D fns[size][u]; - break; - } case 0x2: /* SRHADD, URHADD */ { static NeonGenTwoOpFn * const fns[3][2] =3D { @@ -11073,16 +11079,6 @@ static void disas_simd_3same_int(DisasContext *s, = uint32_t insn) genfn =3D fns[size][u]; break; } - case 0x5: /* SQSUB, UQSUB */ - { - static NeonGenTwoOpEnvFn * const fns[3][2] =3D { - { gen_helper_neon_qsub_s8, gen_helper_neon_qsub_u8 }, - { gen_helper_neon_qsub_s16, gen_helper_neon_qsub_u16 }, - { gen_helper_neon_qsub_s32, gen_helper_neon_qsub_u32 }, - }; - genenvfn =3D fns[size][u]; - break; - } case 0x8: /* SSHL, USHL */ { static NeonGenTwoOpFn * const fns[3][2] =3D { diff --git a/target/arm/translate.c b/target/arm/translate.c index 9b426f4271..dac737f6ca 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -6148,6 +6148,142 @@ const GVecGen3 cmtst_op[4] =3D { .vece =3D MO_64 }, }; =20 +static void gen_uqadd_vec(unsigned vece, TCGv_vec t, TCGv_vec sat, + TCGv_vec a, TCGv_vec b) +{ + TCGv_vec x =3D tcg_temp_new_vec_matching(t); + tcg_gen_add_vec(vece, x, a, b); + tcg_gen_usadd_vec(vece, t, a, b); + tcg_gen_cmp_vec(TCG_COND_NE, vece, x, x, t); + tcg_gen_or_vec(vece, sat, sat, x); + tcg_temp_free_vec(x); +} + +const GVecGen4 uqadd_op[4] =3D { + { .fniv =3D gen_uqadd_vec, + .fno =3D gen_helper_gvec_uqadd_b, + .opc =3D INDEX_op_usadd_vec, + .write_aofs =3D true, + .vece =3D MO_8 }, + { .fniv =3D gen_uqadd_vec, + .fno =3D gen_helper_gvec_uqadd_h, + .opc =3D INDEX_op_usadd_vec, + .write_aofs =3D true, + .vece =3D MO_16 }, + { .fniv =3D gen_uqadd_vec, + .fno =3D gen_helper_gvec_uqadd_s, + .opc =3D INDEX_op_usadd_vec, + .write_aofs =3D true, + .vece =3D MO_32 }, + { .fniv =3D gen_uqadd_vec, + .fno =3D gen_helper_gvec_uqadd_d, + .opc =3D INDEX_op_usadd_vec, + .write_aofs =3D true, + .vece =3D MO_64 }, +}; + +static void gen_sqadd_vec(unsigned vece, TCGv_vec t, TCGv_vec sat, + TCGv_vec a, TCGv_vec b) +{ + TCGv_vec x =3D tcg_temp_new_vec_matching(t); + tcg_gen_add_vec(vece, x, a, b); + tcg_gen_ssadd_vec(vece, t, a, b); + tcg_gen_cmp_vec(TCG_COND_NE, vece, x, x, t); + tcg_gen_or_vec(vece, sat, sat, x); + tcg_temp_free_vec(x); +} + +const GVecGen4 sqadd_op[4] =3D { + { .fniv =3D gen_sqadd_vec, + .fno =3D gen_helper_gvec_sqadd_b, + .opc =3D INDEX_op_ssadd_vec, + .write_aofs =3D true, + .vece =3D MO_8 }, + { .fniv =3D gen_sqadd_vec, + .fno =3D gen_helper_gvec_sqadd_h, + .opc =3D INDEX_op_ssadd_vec, + .write_aofs =3D true, + .vece =3D MO_16 }, + { .fniv =3D gen_sqadd_vec, + .fno =3D gen_helper_gvec_sqadd_s, + .opc =3D INDEX_op_ssadd_vec, + .write_aofs =3D true, + .vece =3D MO_32 }, + { .fniv =3D gen_sqadd_vec, + .fno =3D gen_helper_gvec_sqadd_d, + .opc =3D INDEX_op_ssadd_vec, + .write_aofs =3D true, + .vece =3D MO_64 }, +}; + +static void gen_uqsub_vec(unsigned vece, TCGv_vec t, TCGv_vec sat, + TCGv_vec a, TCGv_vec b) +{ + TCGv_vec x =3D tcg_temp_new_vec_matching(t); + tcg_gen_sub_vec(vece, x, a, b); + tcg_gen_ussub_vec(vece, t, a, b); + tcg_gen_cmp_vec(TCG_COND_NE, vece, x, x, t); + tcg_gen_or_vec(vece, sat, sat, x); + tcg_temp_free_vec(x); +} + +const GVecGen4 uqsub_op[4] =3D { + { .fniv =3D gen_uqsub_vec, + .fno =3D gen_helper_gvec_uqsub_b, + .opc =3D INDEX_op_ussub_vec, + .write_aofs =3D true, + .vece =3D MO_8 }, + { .fniv =3D gen_uqsub_vec, + .fno =3D gen_helper_gvec_uqsub_h, + .opc =3D INDEX_op_ussub_vec, + .write_aofs =3D true, + .vece =3D MO_16 }, + { .fniv =3D gen_uqsub_vec, + .fno =3D gen_helper_gvec_uqsub_s, + .opc =3D INDEX_op_ussub_vec, + .write_aofs =3D true, + .vece =3D MO_32 }, + { .fniv =3D gen_uqsub_vec, + .fno =3D gen_helper_gvec_uqsub_d, + .opc =3D INDEX_op_ussub_vec, + .write_aofs =3D true, + .vece =3D MO_64 }, +}; + +static void gen_sqsub_vec(unsigned vece, TCGv_vec t, TCGv_vec sat, + TCGv_vec a, TCGv_vec b) +{ + TCGv_vec x =3D tcg_temp_new_vec_matching(t); + tcg_gen_sub_vec(vece, x, a, b); + tcg_gen_sssub_vec(vece, t, a, b); + tcg_gen_cmp_vec(TCG_COND_NE, vece, x, x, t); + tcg_gen_or_vec(vece, sat, sat, x); + tcg_temp_free_vec(x); +} + +const GVecGen4 sqsub_op[4] =3D { + { .fniv =3D gen_sqsub_vec, + .fno =3D gen_helper_gvec_sqsub_b, + .opc =3D INDEX_op_sssub_vec, + .write_aofs =3D true, + .vece =3D MO_8 }, + { .fniv =3D gen_sqsub_vec, + .fno =3D gen_helper_gvec_sqsub_h, + .opc =3D INDEX_op_sssub_vec, + .write_aofs =3D true, + .vece =3D MO_16 }, + { .fniv =3D gen_sqsub_vec, + .fno =3D gen_helper_gvec_sqsub_s, + .opc =3D INDEX_op_sssub_vec, + .write_aofs =3D true, + .vece =3D MO_32 }, + { .fniv =3D gen_sqsub_vec, + .fno =3D gen_helper_gvec_sqsub_d, + .opc =3D INDEX_op_sssub_vec, + .write_aofs =3D true, + .vece =3D MO_64 }, +}; + /* Translate a NEON data processing instruction. Return nonzero if the instruction is invalid. We process data in a mixture of 32-bit and 64-bit chunks. @@ -6331,6 +6467,18 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) } return 0; =20 + case NEON_3R_VQADD: + tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc), + rn_ofs, rm_ofs, vec_size, vec_size, + (u ? uqadd_op : sqadd_op) + size); + break; + + case NEON_3R_VQSUB: + tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc), + rn_ofs, rm_ofs, vec_size, vec_size, + (u ? uqsub_op : sqsub_op) + size); + break; + case NEON_3R_VMUL: /* VMUL */ if (u) { /* Polynomial case allows only P8 and is handled below. */ @@ -6395,24 +6543,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) neon_load_reg64(cpu_V0, rn + pass); neon_load_reg64(cpu_V1, rm + pass); switch (op) { - case NEON_3R_VQADD: - if (u) { - gen_helper_neon_qadd_u64(cpu_V0, cpu_env, - cpu_V0, cpu_V1); - } else { - gen_helper_neon_qadd_s64(cpu_V0, cpu_env, - cpu_V0, cpu_V1); - } - break; - case NEON_3R_VQSUB: - if (u) { - gen_helper_neon_qsub_u64(cpu_V0, cpu_env, - cpu_V0, cpu_V1); - } else { - gen_helper_neon_qsub_s64(cpu_V0, cpu_env, - cpu_V0, cpu_V1); - } - break; case NEON_3R_VSHL: if (u) { gen_helper_neon_shl_u64(cpu_V0, cpu_V1, cpu_V0); @@ -6528,18 +6658,12 @@ static int disas_neon_data_insn(DisasContext *s, ui= nt32_t insn) case NEON_3R_VHADD: GEN_NEON_INTEGER_OP(hadd); break; - case NEON_3R_VQADD: - GEN_NEON_INTEGER_OP_ENV(qadd); - break; case NEON_3R_VRHADD: GEN_NEON_INTEGER_OP(rhadd); break; case NEON_3R_VHSUB: GEN_NEON_INTEGER_OP(hsub); break; - case NEON_3R_VQSUB: - GEN_NEON_INTEGER_OP_ENV(qsub); - break; case NEON_3R_VSHL: GEN_NEON_INTEGER_OP(shl); break; diff --git a/target/arm/vec_helper.c b/target/arm/vec_helper.c index 65a18af4e0..10f17e4b5c 100644 --- a/target/arm/vec_helper.c +++ b/target/arm/vec_helper.c @@ -766,3 +766,133 @@ DO_FMLA_IDX(gvec_fmla_idx_s, float32, H4) DO_FMLA_IDX(gvec_fmla_idx_d, float64, ) =20 #undef DO_FMLA_IDX + +#define DO_SAT(NAME, WTYPE, TYPEN, TYPEM, OP, MIN, MAX) \ +void HELPER(NAME)(void *vd, void *vq, void *vn, void *vm, uint32_t desc) = \ +{ = \ + intptr_t i, oprsz =3D simd_oprsz(desc); = \ + TYPEN *d =3D vd, *n =3D vn; TYPEM *m =3D vm; = \ + bool q =3D false; = \ + for (i =3D 0; i < oprsz / sizeof(TYPEN); i++) { = \ + WTYPE dd =3D (WTYPE)n[i] OP m[i]; = \ + if (dd < MIN) { = \ + dd =3D MIN; = \ + q =3D true; = \ + } else if (dd > MAX) { = \ + dd =3D MAX; = \ + q =3D true; = \ + } = \ + d[i] =3D dd; = \ + } = \ + if (q) { = \ + uint32_t *qc =3D vq; = \ + qc[0] =3D 1; = \ + } = \ + clear_tail(d, oprsz, simd_maxsz(desc)); = \ +} + +DO_SAT(gvec_uqadd_b, int, uint8_t, uint8_t, +, 0, UINT8_MAX) +DO_SAT(gvec_uqadd_h, int, uint16_t, uint16_t, +, 0, UINT16_MAX) +DO_SAT(gvec_uqadd_s, int64_t, uint32_t, uint32_t, +, 0, UINT32_MAX) + +DO_SAT(gvec_sqadd_b, int, int8_t, int8_t, +, INT8_MIN, INT8_MAX) +DO_SAT(gvec_sqadd_h, int, int16_t, int16_t, +, INT16_MIN, INT16_MAX) +DO_SAT(gvec_sqadd_s, int64_t, int32_t, int32_t, +, INT32_MIN, INT32_MAX) + +DO_SAT(gvec_uqsub_b, int, uint8_t, uint8_t, -, 0, UINT8_MAX) +DO_SAT(gvec_uqsub_h, int, uint16_t, uint16_t, -, 0, UINT16_MAX) +DO_SAT(gvec_uqsub_s, int64_t, uint32_t, uint32_t, -, 0, UINT32_MAX) + +DO_SAT(gvec_sqsub_b, int, int8_t, int8_t, -, INT8_MIN, INT8_MAX) +DO_SAT(gvec_sqsub_h, int, int16_t, int16_t, -, INT16_MIN, INT16_MAX) +DO_SAT(gvec_sqsub_s, int64_t, int32_t, int32_t, -, INT32_MIN, INT32_MAX) + +#undef DO_SAT + +void HELPER(gvec_uqadd_d)(void *vd, void *vq, void *vn, + void *vm, uint32_t desc) +{ + intptr_t i, oprsz =3D simd_oprsz(desc); + uint64_t *d =3D vd, *n =3D vn, *m =3D vm; + bool q =3D false; + + for (i =3D 0; i < oprsz / 8; i++) { + uint64_t nn =3D n[i], mm =3D m[i], dd =3D nn + mm; + if (dd < nn) { + dd =3D UINT64_MAX; + q =3D true; + } + d[i] =3D dd; + } + if (q) { + uint32_t *qc =3D vq; + qc[0] =3D 1; + } + clear_tail(d, oprsz, simd_maxsz(desc)); +} + +void HELPER(gvec_uqsub_d)(void *vd, void *vq, void *vn, + void *vm, uint32_t desc) +{ + intptr_t i, oprsz =3D simd_oprsz(desc); + uint64_t *d =3D vd, *n =3D vn, *m =3D vm; + bool q =3D false; + + for (i =3D 0; i < oprsz / 8; i++) { + uint64_t nn =3D n[i], mm =3D m[i], dd =3D nn - mm; + if (nn < mm) { + dd =3D 0; + q =3D true; + } + d[i] =3D dd; + } + if (q) { + uint32_t *qc =3D vq; + qc[0] =3D 1; + } + clear_tail(d, oprsz, simd_maxsz(desc)); +} + +void HELPER(gvec_sqadd_d)(void *vd, void *vq, void *vn, + void *vm, uint32_t desc) +{ + intptr_t i, oprsz =3D simd_oprsz(desc); + int64_t *d =3D vd, *n =3D vn, *m =3D vm; + bool q =3D false; + + for (i =3D 0; i < oprsz / 8; i++) { + int64_t nn =3D n[i], mm =3D m[i], dd =3D nn + mm; + if (((dd ^ nn) & ~(nn ^ mm)) & INT64_MIN) { + dd =3D (nn >> 63) ^ ~INT64_MIN; + q =3D true; + } + d[i] =3D dd; + } + if (q) { + uint32_t *qc =3D vq; + qc[0] =3D 1; + } + clear_tail(d, oprsz, simd_maxsz(desc)); +} + +void HELPER(gvec_sqsub_d)(void *vd, void *vq, void *vn, + void *vm, uint32_t desc) +{ + intptr_t i, oprsz =3D simd_oprsz(desc); + int64_t *d =3D vd, *n =3D vn, *m =3D vm; + bool q =3D false; + + for (i =3D 0; i < oprsz / 8; i++) { + int64_t nn =3D n[i], mm =3D m[i], dd =3D nn - mm; + if (((dd ^ nn) & (nn ^ mm)) & INT64_MIN) { + dd =3D (nn >> 63) ^ ~INT64_MIN; + q =3D true; + } + d[i] =3D dd; + } + if (q) { + uint32_t *qc =3D vq; + qc[0] =3D 1; + } + clear_tail(d, oprsz, simd_maxsz(desc)); +} --=20 2.17.2 From nobody Fri Apr 26 21:50:54 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1549684063183263.882836230223; Fri, 8 Feb 2019 19:47:43 -0800 (PST) Received: from localhost ([127.0.0.1]:39155 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJcC-0004lP-8y for importer@patchew.org; Fri, 08 Feb 2019 22:47:40 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42600) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gsJUd-0007T7-62 for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gsJUc-0000l3-Hl for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:51 -0500 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]:40942) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gsJUZ-0000XT-A0 for qemu-devel@nongnu.org; Fri, 08 Feb 2019 22:39:49 -0500 Received: by mail-pg1-x52d.google.com with SMTP id z10so2416782pgp.7 for ; Fri, 08 Feb 2019 19:39:10 -0800 (PST) Received: from cloudburst.twiddle.net (97-126-115-157.tukw.qwest.net. [97.126.115.157]) by smtp.gmail.com with ESMTPSA id s84sm6340737pfi.15.2019.02.08.19.39.07 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 08 Feb 2019 19:39:08 -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:in-reply-to:references; bh=kQWArjQHskJ/tjeNnuX4QiSXd8geE+U1rcDuP7WV9uc=; b=luQxjNXvFA02lvS0818nQYhdZ9qfh2NSb0ihpYh7aDMrOD+VPLSGLqYvXhyXVGCnNq vhG24FX+1NhKcgT1eJVsfOoj+GfOCXH0C+8GceCitiQ0nm9t2uP4GZPdn0LQt4T8f2dU QzndpLSv7NWP27GcJTkFJhjkOZvSX2l1uop8hwAs0xsPABJiy4cQB/91zygkaKbi8wCp 4A/wyXE1ze0/jMjRYqhbqJbwNhx6FNIUlh8Do1wT6SBTKf3T1AU/oUMZ8Je1bbQYncOX PItG55fx/SJScRnWT/HZjlJW5PLdIGW23ikXNdjrNf2c+iXcwglmatiTV9NvKQNtPqER bbyg== 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:in-reply-to :references; bh=kQWArjQHskJ/tjeNnuX4QiSXd8geE+U1rcDuP7WV9uc=; b=n3c/zlNdePNziFQaafPTBHBEXKiXXujVdtxdAV/Ovz5N78zSnUo6h6Vlm2ilyHe7F3 BBfONiDTG66c/qa4vCTewrRB2toHEIF4jrAIEh/6mtnBAQqc/QktRggOAqL6pHPqpZs0 I6PdRYixsWoNyn5N0VTCt2H8WJ6N//Yvb+PXKqmZAZCwjhuBp2WPYUufZVxkDzCDOYpo zRnwQuQViylPxvQHmbjqRw+HEhwLSKUfn3vBirCoTGdcAv4e0eMBkBpFhWAK/q6DAG3u u2qwtIL20PryIwqfatjvfnXVjUL40e7jtv/fGKdWmvtV5Ezf6QIOo4pNWIbQHaCJKI3V 3hMw== X-Gm-Message-State: AHQUAub5Y2To2lNLmPsysAzYwgNVqbTnWqwH9isC3TXGfHvPxf/euscu aL9749S9nu0h+FyoQjHEJu2I9S/KW0E= X-Google-Smtp-Source: AHgI3IbdggetxX5vxZP/YVuMcPzOzhAZuYiimklGrINJ+3YYwBSn/UyQfOKy2wh3jRB0obCZ7bmJtQ== X-Received: by 2002:a63:484c:: with SMTP id x12mr23630289pgk.375.1549683548952; Fri, 08 Feb 2019 19:39:08 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 8 Feb 2019 19:38:47 -0800 Message-Id: <20190209033847.9014-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190209033847.9014-1-richard.henderson@linaro.org> References: <20190209033847.9014-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::52d Subject: [Qemu-devel] [PATCH v3 12/12] target/arm: Add missing clear_tail calls 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Fortunately, the functions affected are so far only called from SVE, so there is no tail to be cleared. But as we convert more of AdvSIMD to gvec, this will matter. Signed-off-by: Richard Henderson --- target/arm/vec_helper.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/arm/vec_helper.c b/target/arm/vec_helper.c index 10f17e4b5c..dfc635cf9a 100644 --- a/target/arm/vec_helper.c +++ b/target/arm/vec_helper.c @@ -638,6 +638,7 @@ void HELPER(NAME)(void *vd, void *vn, void *stat, uint3= 2_t desc) \ for (i =3D 0; i < oprsz / sizeof(TYPE); i++) { \ d[i] =3D FUNC(n[i], stat); \ } \ + clear_tail(d, oprsz, simd_maxsz(desc)); \ } =20 DO_2OP(gvec_frecpe_h, helper_recpe_f16, float16) @@ -688,6 +689,7 @@ void HELPER(NAME)(void *vd, void *vn, void *vm, void *s= tat, uint32_t desc) \ for (i =3D 0; i < oprsz / sizeof(TYPE); i++) { = \ d[i] =3D FUNC(n[i], m[i], stat); = \ } = \ + clear_tail(d, oprsz, simd_maxsz(desc)); = \ } =20 DO_3OP(gvec_fadd_h, float16_add, float16) --=20 2.17.2