From nobody Fri Dec 19 17:42:13 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.48 as permitted sender) client-ip=209.85.128.48; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f48.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.48 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1635025769; cv=none; d=zohomail.com; s=zohoarc; b=GJKTDCzGiZF7t5/r0bAMW/6gveBx1uDmj0TIMxNIQy9nGm/atH96A/cRNYlFQXtVsMJg8geYDZyNKzb8YZG3NS7+A5eqpC2nteEnPD2g67MsgTc9TudV6srPPxXys2N8bAfkriU0BAWCnfJMN6ZDSwVFmvRsAARKEt1ijA8NsMg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635025769; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=rRWJ6DnX5aJmnlrbbx5eJIJj5UwX/8+gOkeXTZA3kHs=; b=WopZUWypR66FxCr9D9zC/B6g+P4KSyiXrQNtjUBkqPXfFt7QloZ7ycRxyMmT4RPiTTtg1de1UT3QHn0tNesKLqRXctyie8clWQJOi4viKu5BvENgVGrbRc3Z8r8uEdaNXhCSGr+YEBHlNWwg2lO5e8msRIqATups3mTWHGGvNdk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.48 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by mx.zohomail.com with SMTPS id 1635025769391813.4554168399238; Sat, 23 Oct 2021 14:49:29 -0700 (PDT) Received: by mail-wm1-f48.google.com with SMTP id v127so6552103wme.5 for ; Sat, 23 Oct 2021 14:49:28 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (62.red-83-57-168.dynamicip.rima-tde.net. [83.57.168.62]) by smtp.gmail.com with ESMTPSA id z1sm12187077wre.21.2021.10.23.14.49.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Oct 2021 14:49:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rRWJ6DnX5aJmnlrbbx5eJIJj5UwX/8+gOkeXTZA3kHs=; b=DZmICpnTBpthHOnOOTwIBPFDdUGIqcGVOfLi0+J3/Sc/IrXzPhtpNLMTO1XSEAyRlb Ybo41l6SvXpTgqvYzqd3IXERNqywSqTpguLaQ8De1VzzH7y8ku4JEUZPlArzwxKOx/Yy Nm1g1+T2MYWyGN2c1r82f2ceAbZx3MO3VahOFMXVvao//ecDsdJUaS59t4CkFJlQTH69 YG9xW8H+uAWqYliXa/h0a64OweQDsbmQ58RvxhEt7yRioT8nE6E1w/9Mc5aeJw/4L/+E sMtQGC9dIQ9b1LDgjk2X0rv6yYiZpJ/ubNPBdBQO/BwWMnbNoyyoXWou/t31E/1F7lcs ROLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=rRWJ6DnX5aJmnlrbbx5eJIJj5UwX/8+gOkeXTZA3kHs=; b=Kwanr9RtgwbQvaMds6+JBFAvTU3fPYF36IZpV7LUDXBzPWfAaHfrtNB1PqwX1rUs0N Uf8c7Leu/YFaQBm6haRPb1qdsHSRaXDPgLAIRElP6QOaFHJBn6S/9h+xJAtvq6iUy2xz nRewIfCezKgvEbAc9dvoX4WkhS4P9M8dRSeiCIgjBqajINW/5M15qiYHT6ssJZTGZx7j jFqbE/yyQEoqXMAwOA/DdfKa6KBhVvg8jX2g3BUOCBkXoTvHL5OedL6e3I3B2EIBTfK9 xok4crD10GZBxdqyqR8IILYWX/WBnU0+LGTXhIxnSbphLQm0ON84B+k9WJAPx9viwoeG WmbQ== X-Gm-Message-State: AOAM5310lW1ns3CjtiA3Veq0tNWvyx/6NFhjM8ftbZcVahrLWfJfkpRM At2RS1/zRllh41XKFJjBXQI= X-Google-Smtp-Source: ABdhPJyBygAVnsy2ANdanKrJwkkp2dP1jUxjkKsqoN5IAR1NI8ZrcYj9A4nNVIjC9oBnSlZWM1kXtw== X-Received: by 2002:a05:600c:4f81:: with SMTP id n1mr38335876wmq.63.1635025767732; Sat, 23 Oct 2021 14:49:27 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Aleksandar Rikalo , Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Jiaxun Yang , Luis Pires Subject: [PATCH 17/33] target/mips: Convert MSA FILL opcode to decodetree Date: Sat, 23 Oct 2021 23:47:47 +0200 Message-Id: <20211023214803.522078-18-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211023214803.522078-1-f4bug@amsat.org> References: <20211023214803.522078-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1635025769645100001 Convert the FILL opcode (Vector Fill from GPR) to decodetree. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tcg/msa.decode | 2 ++ target/mips/tcg/msa_translate.c | 40 +++++++++++++++++++++++---------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/target/mips/tcg/msa.decode b/target/mips/tcg/msa.decode index 2997bfa24e3..e97490cf880 100644 --- a/target/mips/tcg/msa.decode +++ b/target/mips/tcg/msa.decode @@ -21,6 +21,7 @@ @ldst ...... sa:s10 ws:5 wd:5 .... df:2 &msa_ldst @bz_v ...... ... .. wt:5 sa:16 &msa_bz df=3D3 @bz ...... ... df:2 wt:5 sa:16 &msa_bz +@2r ...... ........ df:2 ws:5 wd:5 ...... &msa_r wt=3D0 @2rf ...... ......... df:1 ws:5 wd:5 ...... &msa_r wt=3D0 @u5 ...... ... df:2 sa:5 ws:5 wd:5 ...... &msa_ldst @s5 ...... ... df:2 sa:s5 ws:5 wd:5 ...... &msa_ldst @@ -76,6 +77,7 @@ BNZ 010001 111 .. ..... ................ = @bz SRARI 011110 010 ....... ..... ..... 001010 @bit SRLRI 011110 011 ....... ..... ..... 001010 @bit =20 + FILL 011110 11000000 .. ..... ..... 011110 @2r FCLASS 011110 110010000 . ..... ..... 011110 @2rf FTRUNC_S 011110 110010001 . ..... ..... 011110 @2rf FTRUNC_U 011110 110010010 . ..... ..... 011110 @2rf diff --git a/target/mips/tcg/msa_translate.c b/target/mips/tcg/msa_translat= e.c index c6a77381c0e..fc0b80f83ac 100644 --- a/target/mips/tcg/msa_translate.c +++ b/target/mips/tcg/msa_translate.c @@ -53,7 +53,6 @@ enum { OPC_MSA_2R =3D (0x18 << 21) | OPC_MSA_VEC, =20 /* 2R instruction df(bits 17..16) =3D _b, _h, _w, _d */ - OPC_FILL_df =3D (0x00 << 18) | OPC_MSA_2R, OPC_PCNT_df =3D (0x01 << 18) | OPC_MSA_2R, OPC_NLOC_df =3D (0x02 << 18) | OPC_MSA_2R, OPC_NLZC_df =3D (0x03 << 18) | OPC_MSA_2R, @@ -1844,17 +1843,6 @@ static void gen_msa_2r(DisasContext *ctx) TCGv_i32 tws =3D tcg_const_i32(ws); =20 switch (MASK_MSA_2R(ctx->opcode)) { - case OPC_FILL_df: -#if !defined(TARGET_MIPS64) - /* Double format valid only for MIPS64 */ - if (df =3D=3D DF_DOUBLE) { - gen_reserved_instruction(ctx); - break; - } -#endif - gen_helper_msa_fill_df(cpu_env, tcg_constant_i32(df), - twd, tws); /* trs */ - break; case OPC_NLOC_df: switch (df) { case DF_BYTE: @@ -1913,6 +1901,34 @@ static void gen_msa_2r(DisasContext *ctx) tcg_temp_free_i32(tws); } =20 +static bool trans_FILL(DisasContext *ctx, arg_msa_r *a) +{ + TCGv_i32 twd; + TCGv_i32 tws; + TCGv_i32 tdf; + + if (!check_msa_access(ctx)) { + return false; + } + + if (TARGET_LONG_BITS !=3D 64 && a->df =3D=3D DF_DOUBLE) { + /* Double format valid only for MIPS64 */ + gen_reserved_instruction(ctx); + return true; + } + + twd =3D tcg_const_i32(a->wd); + tws =3D tcg_const_i32(a->ws); + tdf =3D tcg_constant_i32(a->df); + + gen_helper_msa_fill_df(cpu_env, tdf, twd, tws); /* trs */ + + tcg_temp_free_i32(twd); + tcg_temp_free_i32(tws); + + return true; +} + static bool trans_msa_2rf(DisasContext *ctx, arg_msa_r *a, void (*gen_msa_2rf)(TCGv_ptr, TCGv_i32, TCGv_i32, TCGv_i32)) --=20 2.31.1