From nobody Mon Feb 9 22:04:19 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.51 as permitted sender) client-ip=209.85.221.51; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f51.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1635358185; cv=none; d=zohomail.com; s=zohoarc; b=TnPUgBpAFy9zMFGIogEFVdygkELrnlJBWL6H3HHSOCy6K6uh++IJ7tsAZPIr2eLbgIHV73OujS37KQ5PAYtmC/W1dmtYo2JMbqiQ1yEluPpOC/BJMgW3alyE2OqZ0458QID0eEDa1dLfs4W6H6WPkXFM6nUlA2Sfnem/r8yTF3U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635358185; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=le9K2gTaO/69jgiE6RLCRjCBK6edwyJiYRZxLJ7NX+w=; b=S8Ea5cvBEDIOaWY5mXTK+F1VUDvsp6CNGAZZfGzds5IXaZUEtGhAuVLSFr/PlAPMJPfwdOjK0sJY6a5amQhOOjpD8Rt1fR1CEjPcpe81uyVOdfu2hAgQmVvFr++Ccy+ncC7DsM8bjDr/KmGCFGHsnSzLUw875Tw5+GoybVgDvDE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by mx.zohomail.com with SMTPS id 1635358185376653.1018356396033; Wed, 27 Oct 2021 11:09:45 -0700 (PDT) Received: by mail-wr1-f51.google.com with SMTP id d10so5664579wrb.1 for ; Wed, 27 Oct 2021 11:09:44 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (62.red-83-57-168.dynamicip.rima-tde.net. [83.57.168.62]) by smtp.gmail.com with ESMTPSA id p11sm4687723wmi.0.2021.10.27.11.09.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Oct 2021 11:09:43 -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=le9K2gTaO/69jgiE6RLCRjCBK6edwyJiYRZxLJ7NX+w=; b=mHexwxLg9qzpTPX07AlpBnC3ToUBf1UVK7u2IjCpjsPWfVU7zU/Lv1FHQTPn72wPgm Br4MFzWpHys8SXuW+tvAV1omziRZBNuw2y8VaxpP63Bx1VCPLX92DX47p/hfm96LUMXL djwvOwPjgJ2YzX8qvEoSRSwvXj7g8g/JOXWR8QdUiGX0+XQr2O2ZTStGHk6ZwNkEwRDv P7anMpIYb/X4v+51oqXE6uClfITXPbRLWbVJ1IeVyj4iE4007b4ExNcz16NXFBoM9e2Q pxoupk7WUVhVouuBM/aFgykDR8VOSrCAOJFeBUu4l2+mTDNa8TMJ9XDDhOnKRltVxLu3 u3QA== 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=le9K2gTaO/69jgiE6RLCRjCBK6edwyJiYRZxLJ7NX+w=; b=kYxg+ZaHlBuZzeEQ8Ky+5UpsR9TAxh1tBfX56Qjr3RLEuaBSQy4TOKxDuaG/Nj5LBP VHH5ijIvfkQrLWrb/aRvhgHSHaHA5i4owHwDuLppn/dm3s87IcMiyDrTgDehnOGuwB09 5cy/oulRk+xiZd0QVCNICqcvpofYoXm2KCv8o64ewk3IFFZgE5O7rz9n9c6/uNe8mFgu iiwO7Ez9SWK+9pszicQa2nI0YOIhPcvKrwPsIPrVavMAygD9RXAQMBKfqWgd3YyqE5Qk yFrNJnd61fazHUnBLrWCvyjYO1JOvqa471XSGjg4Fy4bEJ2mbIKE8qAgy9h8QqBESpbF pljg== X-Gm-Message-State: AOAM531p7WOGXZeVbt7CnWXLFzQlxmtAS5gVxeOJIbG7rGQFfJd2aCCa otu6zv6VY+35XDyBYQBNrW4= X-Google-Smtp-Source: ABdhPJyBpqdn7lcvlGOL1SXf7xuqkDtX93wJkdLvm/6OTrLhB1Upj3UUwxzsh1gDft1NPAFVrOj//Q== X-Received: by 2002:a5d:4a46:: with SMTP id v6mr41442313wrs.262.1635358183554; Wed, 27 Oct 2021 11:09:43 -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: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aurelien Jarno , Aleksandar Rikalo , Jiaxun Yang , Richard Henderson Subject: [PATCH v2 28/32] target/mips: Convert CFCMSA opcode to decodetree Date: Wed, 27 Oct 2021 20:07:26 +0200 Message-Id: <20211027180730.1551932-29-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211027180730.1551932-1-f4bug@amsat.org> References: <20211027180730.1551932-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: 1635358186179100001 Convert the CFCMSA (Copy From Control MSA register) opcode to decodetree. Since it overlaps with the SPLATI opcode, use a decodetree overlap group. Reviewed-by: Jiaxun Yang Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tcg/msa.decode | 5 ++++- target/mips/tcg/msa_translate.c | 27 +++++++++++++++++++-------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/target/mips/tcg/msa.decode b/target/mips/tcg/msa.decode index cfa5fa5d688..12358e7a6ba 100644 --- a/target/mips/tcg/msa.decode +++ b/target/mips/tcg/msa.decode @@ -166,7 +166,10 @@ BNZ 010001 111 .. ..... ..............= .. @bz HSUB_U 011110 111.. ..... ..... ..... 010101 @3r =20 SLDI 011110 0000 ...... ..... ..... 011001 @elm_df - SPLATI 011110 0001 ...... ..... ..... 011001 @elm_df + { + CFCMSA 011110 0001111110 ..... ..... 011001 @elm + SPLATI 011110 0001 ...... ..... ..... 011001 @elm_df + } { MOVE_V 011110 0010111110 ..... ..... 011001 @elm COPY_S 011110 0010 ...... ..... ..... 011001 @elm_df diff --git a/target/mips/tcg/msa_translate.c b/target/mips/tcg/msa_translat= e.c index 0655b61801b..56db02f73e7 100644 --- a/target/mips/tcg/msa_translate.c +++ b/target/mips/tcg/msa_translate.c @@ -35,7 +35,6 @@ enum { enum { /* ELM instructions df(bits 21..16) =3D _b, _h, _w, _d */ OPC_CTCMSA =3D (0x0 << 22) | (0x3E << 16) | OPC_MSA_ELM, - OPC_CFCMSA =3D (0x1 << 22) | (0x3E << 16) | OPC_MSA_ELM, }; =20 static const char msaregnames[][6] =3D { @@ -528,7 +527,6 @@ static void gen_msa_elm_3e(DisasContext *ctx) uint8_t source =3D (ctx->opcode >> 11) & 0x1f; uint8_t dest =3D (ctx->opcode >> 6) & 0x1f; TCGv telm =3D tcg_temp_new(); - TCGv_i32 tsr =3D tcg_const_i32(source); TCGv_i32 tdt =3D tcg_const_i32(dest); =20 switch (MASK_MSA_ELM_DF3E(ctx->opcode)) { @@ -536,10 +534,6 @@ static void gen_msa_elm_3e(DisasContext *ctx) gen_load_gpr(telm, source); gen_helper_msa_ctcmsa(cpu_env, telm, tdt); break; - case OPC_CFCMSA: - gen_helper_msa_cfcmsa(telm, cpu_env, tsr); - gen_store_gpr(telm, dest); - break; default: MIPS_INVAL("MSA instruction"); gen_reserved_instruction(ctx); @@ -548,7 +542,24 @@ static void gen_msa_elm_3e(DisasContext *ctx) =20 tcg_temp_free(telm); tcg_temp_free_i32(tdt); - tcg_temp_free_i32(tsr); +} + +static bool trans_CFCMSA(DisasContext *ctx, arg_msa_elm *a) +{ + TCGv telm; + + if (!check_msa_enabled(ctx)) { + return true; + } + + telm =3D tcg_temp_new(); + + gen_helper_msa_cfcmsa(telm, cpu_env, tcg_constant_i32(a->ws)); + gen_store_gpr(telm, a->wd); + + tcg_temp_free(telm); + + return true; } =20 static bool trans_msa_elm_df(DisasContext *ctx, arg_msa_elm_df *a, @@ -636,7 +647,7 @@ static void gen_msa_elm(DisasContext *ctx) uint8_t dfn =3D (ctx->opcode >> 16) & 0x3f; =20 if (dfn =3D=3D 0x3E) { - /* CTCMSA, CFCMSA */ + /* CTCMSA */ gen_msa_elm_3e(ctx); return; } else { --=20 2.31.1