From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.53 as permitted sender) client-ip=209.85.208.53; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f53.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.53 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301823; cv=none; d=zohomail.com; s=zohoarc; b=Jgx3W1wJB/h4Cif3JZwDY2pr/0hEfaY0TqOorpKcpWJ6AmsAP0UoMHtUstkXr1pSXPK5jDvV1duQrBjI0DQKc+Eqr1kSxTvVh7HAQHpjYJJJXuRofGDvnwIPrTBQvt2oPFUkD9OPTd6aIKktpoUfApN94xAL28i8fGWf5HsitOk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301823; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Q7nq5o9TxMl2TCgRvlizm2HmF2paab+oiwWUX3N4H7A=; b=Btz6mP4sJsYTf4gMvOQmjc2i4OSuHN5xs+dYVwpYATlHRJ0efuvo/hZihqCwmQcSN4NjzL6vnftrJYY9c4vN4E0CgFDZOfISLIukrI392ckmYvJdOJIvRhnlLq613OLe2SyAbfYeMLXX5Z6QwJCOWxFTB0Da0eJzfNQu+FkyjHE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.53 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) by mx.zohomail.com with SMTPS id 1615301823808279.87511988647816; Tue, 9 Mar 2021 06:57:03 -0800 (PST) Received: by mail-ed1-f53.google.com with SMTP id b7so20713992edz.8 for ; Tue, 09 Mar 2021 06:57:03 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id u17sm9327450edr.0.2021.03.09.06.56.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Q7nq5o9TxMl2TCgRvlizm2HmF2paab+oiwWUX3N4H7A=; b=la8h6iCd9VB+k0iDSpGqkGWO4679nXGMm0UmmDaX56+wNFU+XwS+YrbET8yi4xFuUB zvyoIY8r6ee/H6qO4hA2+5WHyhicL41sKx8IT0KcbFzPURdXei3QCmULMZQyYZ4l+oLz vou8vZk3xpl2i3KrpiEh5lP8gwxbwIDeJWBftfURuf8ZJAAcKwwVRlMBn6nX32G6602U f5APyKRp4xE8UfhakLUBSzwj7bY9APLJTpbTPS8GVmyDKosq11c02+PkBzX/l6NyR5/6 7/DEOQEHq46nzEsBbc5W2RN2zvFX+hbC7l5MBrsKKul9e5Ryi97UtKaYEmqpUeDYUx09 Zs0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Q7nq5o9TxMl2TCgRvlizm2HmF2paab+oiwWUX3N4H7A=; b=EY4XflBjS/UW/y/N2rdP1taA8tfIJnDTVTU1Kc1TArp6plyIpcO8vo40VRxI2pZN+U OeZON47O4yHcFyCqMgZA1G9AeW2Yc5+TxBLj2b5LoSLpYEl/bbDW8BZB/nuxTrmV1e4W +oLIm8NakQMFRdM90fqdTS9mVnwLBLM4CcELplLw59L01rhQ27l3HjNoOvESzvnUFV8O 0jctp2VpUFdnjjV+R3kBXz0mDicjy5QkOC5LnoZsrfqUzadiBpGkRcINX08bI7yjAehJ 3Vdh4pXJwKOjeiSHVl0VvWZh9DF1fRLCR6ctDys/qwDOJg1zl//6o8L/eML7OlpNVWmp AvzA== X-Gm-Message-State: AOAM530Ju4PXR7LjqQ1PeDZ9qgcd+a2i0z7pv4YPePtpsvaE4WRTxQno hF1I/Caz4afIbQWnWnL8eRg= X-Google-Smtp-Source: ABdhPJzgq5dfCmpVZ+sAET/BHlNwKapInHphKGcCPvYIUejcsqUCaj2+5lGzYQ1fLEdIRLFolKnXNQ== X-Received: by 2002:aa7:c78e:: with SMTP id n14mr4495605eds.31.1615301820489; Tue, 09 Mar 2021 06:57:00 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 01/22] target/mips/tx79: Move MFHI1 / MFLO1 opcodes to decodetree Date: Tue, 9 Mar 2021 15:56:32 +0100 Message-Id: <20210309145653.743937-2-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce decodetree structure to decode the tx79 opcodes. Start it by moving the existing MFHI1 and MFLO1 opcodes. Remove unnecessary comments. As the TX79 share opcodes with the TX19/TX39/TX49 CPUs, we introduce the decode_ext_txx9() dispatcher where we will add the other decoders later. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-9-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/translate.h | 4 ++++ target/mips/tx79.decode | 25 ++++++++++++++++++++++++ target/mips/translate.c | 15 +++------------ target/mips/tx79_translate.c | 37 ++++++++++++++++++++++++++++++++++++ target/mips/txx9_translate.c | 20 +++++++++++++++++++ target/mips/meson.build | 5 +++++ 6 files changed, 94 insertions(+), 12 deletions(-) create mode 100644 target/mips/tx79.decode create mode 100644 target/mips/tx79_translate.c create mode 100644 target/mips/txx9_translate.c diff --git a/target/mips/translate.h b/target/mips/translate.h index a807b3d2566..e4f2f26de89 100644 --- a/target/mips/translate.h +++ b/target/mips/translate.h @@ -185,5 +185,9 @@ bool decode_ase_mxu(DisasContext *ctx, uint32_t insn); /* decodetree generated */ bool decode_isa_rel6(DisasContext *ctx, uint32_t insn); bool decode_ase_msa(DisasContext *ctx, uint32_t insn); +bool decode_ext_txx9(DisasContext *ctx, uint32_t insn); +#if defined(TARGET_MIPS64) +bool decode_ext_tx79(DisasContext *ctx, uint32_t insn); +#endif =20 #endif diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode new file mode 100644 index 00000000000..2e287ebbf36 --- /dev/null +++ b/target/mips/tx79.decode @@ -0,0 +1,25 @@ +# Toshiba C790's instruction set +# +# Copyright (C) 2021 Philippe Mathieu-Daud=C3=A9 +# +# SPDX-License-Identifier: LGPL-2.1-or-later +# +# Toshiba Appendix B C790-Specific Instruction Set Details + +########################################################################### +# Named attribute sets. These are used to make nice(er) names +# when creating helpers common to those for the individual +# instruction patterns. + +&rtype rs rt rd sa + +########################################################################### +# Named instruction formats. These are generally used to +# reduce the amount of duplication between instruction patterns. + +@rd ...... .......... rd:5 ..... ...... &rtype rs=3D0 rt= =3D0 sa=3D0 + +########################################################################### + +MFHI1 011100 0000000000 ..... 00000 010000 @rd +MFLO1 011100 0000000000 ..... 00000 010010 @rd diff --git a/target/mips/translate.c b/target/mips/translate.c index 9b08785f2b8..aa35d0f680e 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -1360,9 +1360,7 @@ enum { MMI_OPC_PLZCW =3D 0x04 | MMI_OPC_CLASS_MMI, MMI_OPC_CLASS_MMI0 =3D 0x08 | MMI_OPC_CLASS_MMI, MMI_OPC_CLASS_MMI2 =3D 0x09 | MMI_OPC_CLASS_MMI, - MMI_OPC_MFHI1 =3D 0x10 | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= MFHI */ MMI_OPC_MTHI1 =3D 0x11 | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= MTHI */ - MMI_OPC_MFLO1 =3D 0x12 | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= MFLO */ MMI_OPC_MTLO1 =3D 0x13 | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= MTLO */ MMI_OPC_MULT1 =3D 0x18 | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= MULT */ MMI_OPC_MULTU1 =3D 0x19 | MMI_OPC_CLASS_MMI, /* Same min. as OPC_M= ULTU */ @@ -3469,12 +3467,6 @@ static void gen_shift(DisasContext *ctx, uint32_t op= c, static void gen_HILO1_tx79(DisasContext *ctx, uint32_t opc, int reg) { switch (opc) { - case MMI_OPC_MFHI1: - gen_store_gpr(cpu_HI[1], reg); - break; - case MMI_OPC_MFLO1: - gen_store_gpr(cpu_LO[1], reg); - break; case MMI_OPC_MTHI1: gen_load_gpr(cpu_HI[1], reg); break; @@ -25120,10 +25112,6 @@ static void decode_mmi(CPUMIPSState *env, DisasCon= text *ctx) case MMI_OPC_MTHI1: gen_HILO1_tx79(ctx, opc, rs); break; - case MMI_OPC_MFLO1: - case MMI_OPC_MFHI1: - gen_HILO1_tx79(ctx, opc, rd); - break; case MMI_OPC_PLZCW: /* TODO: MMI_OPC_PLZCW */ case MMI_OPC_PMFHL: /* TODO: MMI_OPC_PMFHL */ case MMI_OPC_PMTHL: /* TODO: MMI_OPC_PMTHL */ @@ -26095,6 +26083,9 @@ static void decode_opc(CPUMIPSState *env, DisasCont= ext *ctx) if (cpu_supports_isa(env, ISA_MIPS_R6) && decode_isa_rel6(ctx, ctx->op= code)) { return; } + if (cpu_supports_isa(env, INSN_R5900) && decode_ext_txx9(ctx, ctx->opc= ode)) { + return; + } =20 if (decode_opc_legacy(env, ctx)) { return; diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c new file mode 100644 index 00000000000..22bd6033e55 --- /dev/null +++ b/target/mips/tx79_translate.c @@ -0,0 +1,37 @@ +/* + * Toshiba TX79-specific instructions translation routines + * + * Copyright (c) 2018 Fredrik Noring + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "tcg/tcg-op.h" +#include "exec/helper-gen.h" +#include "translate.h" + +/* Include the auto-generated decoder. */ +#include "decode-tx79.c.inc" + +bool decode_ext_tx79(DisasContext *ctx, uint32_t insn) +{ + if (TARGET_LONG_BITS =3D=3D 64 && decode_tx79(ctx, insn)) { + return true; + } + return false; +} + +static bool trans_MFHI1(DisasContext *ctx, arg_rtype *a) +{ + gen_store_gpr(cpu_HI[1], a->rd); + + return true; +} + +static bool trans_MFLO1(DisasContext *ctx, arg_rtype *a) +{ + gen_store_gpr(cpu_LO[1], a->rd); + + return true; +} diff --git a/target/mips/txx9_translate.c b/target/mips/txx9_translate.c new file mode 100644 index 00000000000..8a2c0b766bd --- /dev/null +++ b/target/mips/txx9_translate.c @@ -0,0 +1,20 @@ +/* + * Toshiba TXx9 instructions translation routines + * + * Copyright (c) 2021 Philippe Mathieu-Daud=C3=A9 + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "translate.h" + +bool decode_ext_txx9(DisasContext *ctx, uint32_t insn) +{ +#if defined(TARGET_MIPS64) + if (decode_ext_tx79(ctx, insn)) { + return true; + } +#endif + return false; +} diff --git a/target/mips/meson.build b/target/mips/meson.build index 4a951e522d4..3b131c4a7f6 100644 --- a/target/mips/meson.build +++ b/target/mips/meson.build @@ -3,6 +3,7 @@ decodetree.process('mips64r6.decode', extra_args: '--static-decode=3Ddec= ode_mips64r6'), decodetree.process('msa32.decode', extra_args: '--static-decode=3Ddecode= _msa32'), decodetree.process('msa64.decode', extra_args: '--static-decode=3Ddecode= _msa64'), + decodetree.process('tx79.decode', extra_args: '--static-decode=3Ddecode_= tx79'), ] =20 mips_ss =3D ss.source_set() @@ -23,6 +24,10 @@ 'tlb_helper.c', 'translate.c', 'translate_addr_const.c', + 'txx9_translate.c', +)) +mips_ss.add(when: ['CONFIG_TCG', 'TARGET_MIPS64'], if_true: files( + 'tx79_translate.c', )) mips_tcg_ss.add(when: 'TARGET_MIPS64', if_false: files( 'mxu_translate.c', --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.46 as permitted sender) client-ip=209.85.208.46; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f46.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.46 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301827; cv=none; d=zohomail.com; s=zohoarc; b=m4eXnRNsb+UGtKmbPI5W8ZtxCrKIW0XaFYShtSJUJvLeQfwOBJ35s1nfLC/LSl/+y4eCSUYu9UPTws0ND63EtZmtY30ysHbcIQVlX/LnzJukvdY3KABPuR+HHhd21/bG3J7lNw3EoJVXTilRfW4bmiFLo1ILYvUU+MN8cdQcugo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301827; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=r5fiD8J1cTEppASnTHaHX7DmQkr6qX0i8N0ojoebTOk=; b=HPSZ5QjMCgTuZJozcTaoX7VELoXNWffFnnEgaYagJCQ31aRswmXBKS/eI+F/heHPZWK89EDXFHJvKbEE9BxNJf0RrU0VQD9ZFuOHh/QXHUKv2FUIbS6dUmypNLJLB+gr87XWkWBZZx8fAjQlFfmwVtwNkYSXQSoaEc5YX2Vbg9w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.46 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) by mx.zohomail.com with SMTPS id 1615301827409974.5756451335786; Tue, 9 Mar 2021 06:57:07 -0800 (PST) Received: by mail-ed1-f46.google.com with SMTP id d13so20772206edp.4 for ; Tue, 09 Mar 2021 06:57:06 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id yk8sm8443477ejb.123.2021.03.09.06.57.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=r5fiD8J1cTEppASnTHaHX7DmQkr6qX0i8N0ojoebTOk=; b=vHs31r4bJKiYjNl2oZnEQBEsM+VOleMQbha5a8FD99l4s7PeibEZaOQ5IXOG9eAWHo F+YbADOnIjM/pRC7ci5BxHX1YUo9XLO7S9LQ6a6O5g7dFUDqktjMYn8eRcYdRWiMS8dj p/Jw6TXPqEmSwYSYvLL4gbrE6eTreTM5R8H1KlOLJiwQ6zTuqAND3rjsw1Xg0BB2F2TU BjXrv31/3ndIKF/VEkhwGPcSrkThKfX/2Q2vraZ3i/PXSgoIGUU2P0/4ewB/ViHaoBd+ s+7cJqh2Kbh9cgiovTy2duQ+B4cOA5NpS98NSpnTjjOqxhddNF8xtwOT5k5Nis4O5n38 Uekw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=r5fiD8J1cTEppASnTHaHX7DmQkr6qX0i8N0ojoebTOk=; b=ggxydQtVSF5obgBVY99Jl9+wkUubsTA5AwO5m2RaFRPYVN3oTe4/egfw9wyaFfJAir hNzPvD21+PIECG4NZT4Qucaqsn81aZcfGqqfLfL3/birFZwZa8mfm2NCbhBucPJZk/nU V/wFitLmTXgdYzN1rWBZxNtm/GvpDzD2f1heh7/AW1Y5caW4iT/XVv+RGnNUaMXZAbUW jH0lQobO784ynN3yM3lttoeAcq4SFkDc8HYBZUV2T/u7ALmWoRZh28iLfe2N9kOeIcJ/ 6VFlHW6KB4ZaX+DIoIPge+qaTN98Xk7nFDnO5R1W0VcopLFOTfLc4Yp9A6ef5k9EINRK cE+g== X-Gm-Message-State: AOAM531BLOVt4NGBzAG0r1eGKwjWFIxvxG8OkMX8URreVhVHPcHqGiPR +tXNMXlAgh3gdR5ofatbUWPvbtLIhfg= X-Google-Smtp-Source: ABdhPJwz7kBD2d+s7MWKjTnqXFOShL8oOOjsH4fZqcqnJl52greVTLOjbby4uAS7vPDFil/jl57Tsg== X-Received: by 2002:a05:6402:2695:: with SMTP id w21mr4534663edd.99.1615301825641; Tue, 09 Mar 2021 06:57:05 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 02/22] target/mips/tx79: Move MTHI1 / MTLO1 opcodes to decodetree Date: Tue, 9 Mar 2021 15:56:33 +0100 Message-Id: <20210309145653.743937-3-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-10-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tx79.decode | 3 +++ target/mips/translate.c | 25 ------------------------- target/mips/tx79_translate.c | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 25 deletions(-) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index 2e287ebbf36..30737da54e4 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -17,9 +17,12 @@ # Named instruction formats. These are generally used to # reduce the amount of duplication between instruction patterns. =20 +@rs ...... rs:5 ..... .......... ...... &rtype rt=3D0 rd= =3D0 sa=3D0 @rd ...... .......... rd:5 ..... ...... &rtype rs=3D0 rt= =3D0 sa=3D0 =20 ########################################################################### =20 MFHI1 011100 0000000000 ..... 00000 010000 @rd +MTHI1 011100 ..... 0000000000 00000 010001 @rs MFLO1 011100 0000000000 ..... 00000 010010 @rd +MTLO1 011100 ..... 0000000000 00000 010011 @rs diff --git a/target/mips/translate.c b/target/mips/translate.c index aa35d0f680e..0131affce70 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -1360,8 +1360,6 @@ enum { MMI_OPC_PLZCW =3D 0x04 | MMI_OPC_CLASS_MMI, MMI_OPC_CLASS_MMI0 =3D 0x08 | MMI_OPC_CLASS_MMI, MMI_OPC_CLASS_MMI2 =3D 0x09 | MMI_OPC_CLASS_MMI, - MMI_OPC_MTHI1 =3D 0x11 | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= MTHI */ - MMI_OPC_MTLO1 =3D 0x13 | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= MTLO */ MMI_OPC_MULT1 =3D 0x18 | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= MULT */ MMI_OPC_MULTU1 =3D 0x19 | MMI_OPC_CLASS_MMI, /* Same min. as OPC_M= ULTU */ MMI_OPC_DIV1 =3D 0x1A | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= DIV */ @@ -3462,25 +3460,6 @@ static void gen_shift(DisasContext *ctx, uint32_t op= c, tcg_temp_free(t1); } =20 -#if defined(TARGET_MIPS64) -/* Copy GPR to and from TX79 HI1/LO1 register. */ -static void gen_HILO1_tx79(DisasContext *ctx, uint32_t opc, int reg) -{ - switch (opc) { - case MMI_OPC_MTHI1: - gen_load_gpr(cpu_HI[1], reg); - break; - case MMI_OPC_MTLO1: - gen_load_gpr(cpu_LO[1], reg); - break; - default: - MIPS_INVAL("mfthilo1 TX79"); - gen_reserved_instruction(ctx); - break; - } -} -#endif - /* Arithmetic on HI/LO registers */ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg) { @@ -25108,10 +25087,6 @@ static void decode_mmi(CPUMIPSState *env, DisasCon= text *ctx) case MMI_OPC_DIVU1: gen_div1_tx79(ctx, opc, rs, rt); break; - case MMI_OPC_MTLO1: - case MMI_OPC_MTHI1: - gen_HILO1_tx79(ctx, opc, rs); - break; case MMI_OPC_PLZCW: /* TODO: MMI_OPC_PLZCW */ case MMI_OPC_PMFHL: /* TODO: MMI_OPC_PMFHL */ case MMI_OPC_PMTHL: /* TODO: MMI_OPC_PMTHL */ diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index 22bd6033e55..905245cece7 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -35,3 +35,17 @@ static bool trans_MFLO1(DisasContext *ctx, arg_rtype *a) =20 return true; } + +static bool trans_MTHI1(DisasContext *ctx, arg_rtype *a) +{ + gen_load_gpr(cpu_HI[1], a->rs); + + return true; +} + +static bool trans_MTLO1(DisasContext *ctx, arg_rtype *a) +{ + gen_load_gpr(cpu_LO[1], a->rs); + + return true; +} --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.42 as permitted sender) client-ip=209.85.218.42; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f42.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301832; cv=none; d=zohomail.com; s=zohoarc; b=Rf7FUYgsWQmgDjHxQMpPo6Bwt51i6tcW+kR34LJwQe7P7qu3YlpO0X0Bzevgo7LP9tEmlPN9oGkwFNIbRk0TQA1FULC4SKa9WC7pN3/DfpFNoNrWAxLn4fF1bsb37EDis8hjWy16SjHEigjWcWwZxfMoYSoLTTlOxg6eOWiPDo4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301832; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=uKIJKMsw/r7XvCdaVtLJUnBMuj2jf66I2sYgK8saVig=; b=aO26y0wFXlZh9a+HhB4XDCEF88rn2CdGec0ZDptln/Djoj+E2JTaXQb8OllbT3T8n0FsLWxtVpHtM/9ehoT2Kyo9ehGgcjkJrz11VJL+HdCSDndeKEDX5EhGV4TCDvVTDa9DXAgVuA5rSem7UYX/1oBRVY6FoXbXuRiKMHOPbPM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by mx.zohomail.com with SMTPS id 1615301832558444.6713727811933; Tue, 9 Mar 2021 06:57:12 -0800 (PST) Received: by mail-ej1-f42.google.com with SMTP id ox4so12866087ejb.11 for ; Tue, 09 Mar 2021 06:57:11 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id p19sm9424103edr.57.2021.03.09.06.57.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uKIJKMsw/r7XvCdaVtLJUnBMuj2jf66I2sYgK8saVig=; b=ambdDhCmaF9SKSTnhDkc/e82xNQxRCkiEDD4rg9X8TqmoyFRcrjzzamqGOUs6oPvW4 pHNGwwAZswnHQIsBmw1scES9d7TWf5MFTdvRej680pQWYz4Uz3XzbSKrxpeSPr3/6Hzb CFdfSuq02nY4CYhL+Fbi475h50MBq9Z7Yxae9MxUZSfPSeUu4RkOl5G5okqWSlestOQU bVKln8fdXyz9WMB5wPufLFX+FQkGm18j8b3WbqOXkBTS7boOHoPYE+Oh47pzxdEBjOVm 3vncbTEo+RLu7ZhzHCm7EO747eq5WUr8ypZhhgfqBaIKNvW3Kw/KFFIqI/WRBipIUdlq xxnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=uKIJKMsw/r7XvCdaVtLJUnBMuj2jf66I2sYgK8saVig=; b=THwqTF11D08PDQQrn/l6VdZMudNxXQ/23HHhqC64e60M3ibPlBRlwo83AHkZzE92Cc zZQJMUw1R5f0UV6bBPwkwoEK9BSNaQ4unYQWfGzhkQf+5UVZDAlVRJfMdAmE7E4B4wmI WjqtzSotucdWZ2XUeRHsFjoRga2H/796vAc1D8Xy+X8pFyOAB/zB00JTH10Lo8vVz0VD azcVI2JdOn7ZeSis/AhYWTWUaaCCdLBIg+HvBM+N9RsFMUE02V90wZQLK1joNDdRikuN dr4RbWt0JpEfnzguZsTee4y2/eWvovXxsE2lIrN42qaqi/7/osmkiiH1B3V7r7UsneH+ IAww== X-Gm-Message-State: AOAM531ur+8C3v1QsBRpIFbW7fV9EWa6DKHdXjuLJj9AOTl0cROPvVKX esQI9YD6WCgrFn0EHwV134EmXpqy4+4= X-Google-Smtp-Source: ABdhPJwpMLJ9r+LHtiDQ+eqJZSi1Atr++SL02vWSIEuRc8Qj1M3JFxs7VqBVlQXp03IsFZu57SdqmQ== X-Received: by 2002:a17:906:cd05:: with SMTP id oz5mr21149057ejb.345.1615301830755; Tue, 09 Mar 2021 06:57:10 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 03/22] target/mips/translate: Make gen_rdhwr() public Date: Tue, 9 Mar 2021 15:56:34 +0100 Message-Id: <20210309145653.743937-4-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) We will use gen_rdhwr() outside of translate.c, make it public. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-28-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/translate.h | 2 ++ target/mips/translate.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/target/mips/translate.h b/target/mips/translate.h index e4f2f26de89..2b3c7a69ec6 100644 --- a/target/mips/translate.h +++ b/target/mips/translate.h @@ -148,6 +148,8 @@ void gen_op_addr_add(DisasContext *ctx, TCGv ret, TCGv = arg0, TCGv arg1); bool gen_lsa(DisasContext *ctx, int rd, int rt, int rs, int sa); bool gen_dlsa(DisasContext *ctx, int rd, int rt, int rs, int sa); =20 +void gen_rdhwr(DisasContext *ctx, int rt, int rd, int sel); + extern TCGv cpu_gpr[32], cpu_PC; #if defined(TARGET_MIPS64) extern TCGv_i64 cpu_gpr_hi[32]; diff --git a/target/mips/translate.c b/target/mips/translate.c index 0131affce70..0f77c0ebc57 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -12349,7 +12349,7 @@ static void gen_flt3_arith(DisasContext *ctx, uint3= 2_t opc, } } =20 -static void gen_rdhwr(DisasContext *ctx, int rt, int rd, int sel) +void gen_rdhwr(DisasContext *ctx, int rt, int rd, int sel) { TCGv t0; =20 --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.46 as permitted sender) client-ip=209.85.218.46; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f46.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.46 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301837; cv=none; d=zohomail.com; s=zohoarc; b=bZDb3xIpwqKbrdaud5UIhU3r492gL/fXKawQWDKE0jGpSceZG6h+JuxUpLG2I2hKHNIfnGWqsn20Q6Tso/O2N0d8Boq0Ow6GrkodqywrSNNTjInvu63rzNF806X2MrPjNrIC8k/zZ4CY690dJgMis5sGD+Us5P25K32s6rb5zhQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301837; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MSauL6XiWqe7pdli7sYj4+exNHtcFAP8QrNM1PNuIkg=; b=mHPpDNGZf4JdsbnjD2NkUrrPgzPGbniEApyGvn/YbWI2urSQBnU5f4IyuKcC3Xxludk86Rxhh8KD44Axvzt+SlnxqjW7BLvHser5EIds8bkm5DoIP/FQlsgpg6CAdj40HtTjDvVfwzteFPHvG6f/uQk12jUjdC6O8f4naAp6s18= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.46 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) by mx.zohomail.com with SMTPS id 1615301837633781.9337729473506; Tue, 9 Mar 2021 06:57:17 -0800 (PST) Received: by mail-ej1-f46.google.com with SMTP id ci14so28394409ejc.7 for ; Tue, 09 Mar 2021 06:57:16 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id bt14sm9410462edb.92.2021.03.09.06.57.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MSauL6XiWqe7pdli7sYj4+exNHtcFAP8QrNM1PNuIkg=; b=GpM9heVTQTGztz17jWx41Vtlhym5ZfHrYB0PYnftarbK3kcn1wMXkGFDx/a4u5GGAB VFcTWn92TL8+xh28Za5CXZdzOEAWF213QCN1Gs8v5vRH7/W7VADFF2jpartAy+FrvDz3 ohFOIOKz+MwA0VgAxMy8mlor39Ta4nk1pc+cNlMLvlAifLhVpPbxCYZEyTMPQ9/piDSm MkfmK/mbdYTIw0FiQ6pkr9/a/sWKdfsMBi4vjB72jMKH1hWkHUxhsAeTiamBMPz/tcZt aTfpvEPSPiwGyJpaiIOc+MWFXDqb8jzqDzSpo3CKTpUWcKuVE7RXLcdgmiv8qI3bko0l mLYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=MSauL6XiWqe7pdli7sYj4+exNHtcFAP8QrNM1PNuIkg=; b=IQp20I0drlMejYPW9pikbgY+BWbO2VrUQeokt00y+rBLCV+bJ/dxwRrRJRj/yHxGwi O9QH0kRNjaAk1uog4o6xl95SmxI4hIE5JzdIn44Pz1B6UixjGKICLeFth2id9xdUJzja lztkP+g/x2Zutzc7j7W+9jcdoCEN9cSvPOGWqJGeY+3lg6W+1A3/pImOKsbT9UkBzQK/ eRi2BiWbqq7wfXIMAWpO4aWMuNTsSdu76uLxGFwBhI147hsH69SapAGdIPgZR097GrVf wRmH0ReLOKcNG7tI1p63JNEcWjVu+7C2mEWWEQzwBp8QQCzYTjfuf3kPuNgxmwCdqjhv OlZg== X-Gm-Message-State: AOAM5338+vo6nzFmM3ENE2LTOQHcQJmYJW9vIt+0bn/RVNh/nVjNlesx jRWP5ux66BWTQCSCIJ1Kuog= X-Google-Smtp-Source: ABdhPJwg4QWEP05kqjQoXKYj1sy7kGmiJuTvmvz291ryVJ58QQKGiyNivHboB1T9T/OmkSs8Sztw5g== X-Received: by 2002:a17:906:7150:: with SMTP id z16mr20294605ejj.103.1615301835750; Tue, 09 Mar 2021 06:57:15 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 04/22] target/mips/translate: Simplify PCPYH using deposit_i64() Date: Tue, 9 Mar 2021 15:56:35 +0100 Message-Id: <20210309145653.743937-5-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Simplify the PCPYH (Parallel Copy Halfword) instruction by using multiple calls to deposit_i64() which can be optimized by some TCG backends. Suggested-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-11-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/translate.c | 34 ++++------------------------------ 1 file changed, 4 insertions(+), 30 deletions(-) diff --git a/target/mips/translate.c b/target/mips/translate.c index 0f77c0ebc57..9de81b08665 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -24091,36 +24091,10 @@ static void gen_mmi_pcpyh(DisasContext *ctx) tcg_gen_movi_i64(cpu_gpr[rd], 0); tcg_gen_movi_i64(cpu_gpr_hi[rd], 0); } else { - TCGv_i64 t0 =3D tcg_temp_new(); - TCGv_i64 t1 =3D tcg_temp_new(); - uint64_t mask =3D (1ULL << 16) - 1; - - tcg_gen_andi_i64(t0, cpu_gpr[rt], mask); - tcg_gen_movi_i64(t1, 0); - tcg_gen_or_i64(t1, t0, t1); - tcg_gen_shli_i64(t0, t0, 16); - tcg_gen_or_i64(t1, t0, t1); - tcg_gen_shli_i64(t0, t0, 16); - tcg_gen_or_i64(t1, t0, t1); - tcg_gen_shli_i64(t0, t0, 16); - tcg_gen_or_i64(t1, t0, t1); - - tcg_gen_mov_i64(cpu_gpr[rd], t1); - - tcg_gen_andi_i64(t0, cpu_gpr_hi[rt], mask); - tcg_gen_movi_i64(t1, 0); - tcg_gen_or_i64(t1, t0, t1); - tcg_gen_shli_i64(t0, t0, 16); - tcg_gen_or_i64(t1, t0, t1); - tcg_gen_shli_i64(t0, t0, 16); - tcg_gen_or_i64(t1, t0, t1); - tcg_gen_shli_i64(t0, t0, 16); - tcg_gen_or_i64(t1, t0, t1); - - tcg_gen_mov_i64(cpu_gpr_hi[rd], t1); - - tcg_temp_free(t0); - tcg_temp_free(t1); + tcg_gen_deposit_i64(cpu_gpr[rd], cpu_gpr[rt], cpu_gpr[rt], 16, 16); + tcg_gen_deposit_i64(cpu_gpr[rd], cpu_gpr[rd], cpu_gpr[rd], 32, 32); + tcg_gen_deposit_i64(cpu_gpr_hi[rd], cpu_gpr_hi[rt], cpu_gpr_hi[rt]= , 16, 16); + tcg_gen_deposit_i64(cpu_gpr_hi[rd], cpu_gpr_hi[rd], cpu_gpr_hi[rd]= , 32, 32); } } =20 --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.41 as permitted sender) client-ip=209.85.208.41; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f41.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301842; cv=none; d=zohomail.com; s=zohoarc; b=EEpsaVbctz30UoWu1s4v7hK2azd20uRnWT7DNDbULVWn39FB1kfKTqF5qveSnf2HWKIvIDB3sZJ52F8a3qzOltubCPkXb+yxR/xp1HFVysB75Dp4R2KcEVq1QlKvDorDOJbIlnEa3Hh97OA1CWTkQ9tisMQJYWGw4ql4nFmexO8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301842; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XTd3dK5Mj70iaA9wAzBL+3DpQxfmajFVbOdHqCwvUtU=; b=QCKDt4SYMWyj0XRNaspcO81JTvhdEmdl6canQKzRNiwzUtpt/eIua/6yUul7KjUB85k0rQjLMBBO9OGiRD6VZR7YnHRBf1fkRDT8UEZkFzLSZCzctNBAq7v2xjGT3FGrXjkRx48Xku6hxsW6LsSlJk8SQPnu3nCcNcaPqdxKRig= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) by mx.zohomail.com with SMTPS id 161530184267970.44027984246088; Tue, 9 Mar 2021 06:57:22 -0800 (PST) Received: by mail-ed1-f41.google.com with SMTP id v13so20692612edw.9 for ; Tue, 09 Mar 2021 06:57:22 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id a3sm8363431ejv.40.2021.03.09.06.57.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XTd3dK5Mj70iaA9wAzBL+3DpQxfmajFVbOdHqCwvUtU=; b=GFJMRhpclO2wif7QM47XRXh8CYCymLx2CQcNhJLU90ZTBU8v1559gLPIYDlHb0NpV8 R8Lwgjw2BWYrISdz7SL97zcgatj987grZc63JURxe6rXOHqnn4tX9kxOM/AJH3CWamYZ 1QKTiBqfD0uC+VsbSeK/epuF41ZIe/gXLxFc0/97SrKdz32nsRm0rYhvAZWGsxXFJmEz 4P4eG1wSr0MzDbHDiAPhWo2FqQ5ZXCCJ03kJ5s2FNdU5UpQ/mXMSb6Ou7VdkDMfFv0Rq CQ0bD1uF7bIwXMrmIqAd7Qc3CyhC8D889+VdCV7zPywg06ppJAZtJevC8v63QUROsSXK bMJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=XTd3dK5Mj70iaA9wAzBL+3DpQxfmajFVbOdHqCwvUtU=; b=R2QuGxDalZ/Q3/usr5PaJCs/KNZ5pl+IE/+JfBndNj5Hnf0RCXfQoAMGGZ4o6sloHZ HvSNvGW18hfOgSNKHqFdi1jC84qlDW/MpfZX1hechRqpjcsWT0bpa7QS1Y4PCcIngJJF vsx9GykFn8zSMytlb37xfdd17BKnyrUUPOHZ4uBcS72qgKHTeJ2LEba9gIJp8gakAauf bt2mReRF69XE8+B4NfBIB8FOn4IAbyIjTwhmE/p/unOS6CT6dbfNnuZKZ8Tmred9sFJn FKhbpCAaDDVc0IO+yhwddK5bIDP9M4tRW2V6TYsSVMMan0bKhILQHqmal5t45coPxtf4 +v2g== X-Gm-Message-State: AOAM532L+tpH7GSIf7H20aarPU3JAUAyujo6QaRuKq1tG7dts/qx1ngM QBfOdZZjVNPPLBR2pL893Fk= X-Google-Smtp-Source: ABdhPJxkHL1+yKsLZn4Q/aFSgAzqZZl80Gp6XzfdwRl9CZcFX2074VDGSLlINELORPJEAzfpcrm8/A== X-Received: by 2002:a05:6402:30a2:: with SMTP id df2mr4524495edb.29.1615301840906; Tue, 09 Mar 2021 06:57:20 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 05/22] target/mips/tx79: Move PCPYH opcode to decodetree Date: Tue, 9 Mar 2021 15:56:36 +0100 Message-Id: <20210309145653.743937-6-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Move the existing PCPYH opcode (Parallel Copy Halfword) to decodetree. Remove unnecessary code / comments. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-12-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tx79.decode | 5 +++++ target/mips/translate.c | 39 ------------------------------------ target/mips/tx79_translate.c | 22 ++++++++++++++++++++ 3 files changed, 27 insertions(+), 39 deletions(-) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index 30737da54e4..7af35458b0a 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -17,6 +17,7 @@ # Named instruction formats. These are generally used to # reduce the amount of duplication between instruction patterns. =20 +@rt_rd ...... ..... rt:5 rd:5 ..... ...... &rtype rs=3D0 sa= =3D0 @rs ...... rs:5 ..... .......... ...... &rtype rt=3D0 rd= =3D0 sa=3D0 @rd ...... .......... rd:5 ..... ...... &rtype rs=3D0 rt= =3D0 sa=3D0 =20 @@ -26,3 +27,7 @@ MFHI1 011100 0000000000 ..... 00000 010000 @= rd MTHI1 011100 ..... 0000000000 00000 010001 @rs MFLO1 011100 0000000000 ..... 00000 010010 @rd MTLO1 011100 ..... 0000000000 00000 010011 @rs + +# MMI3 + +PCPYH 011100 00000 ..... ..... 11011 101001 @rt_rd diff --git a/target/mips/translate.c b/target/mips/translate.c index 9de81b08665..25adaa75eb5 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -24062,42 +24062,6 @@ static void decode_opc_special(CPUMIPSState *env, = DisasContext *ctx) * PEXTUW */ =20 -/* - * PCPYH rd, rt - * - * Parallel Copy Halfword - * - * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 - * +-----------+---------+---------+---------+---------+-----------+ - * | MMI |0 0 0 0 0| rt | rd | PCPYH | MMI3 | - * +-----------+---------+---------+---------+---------+-----------+ - */ -static void gen_mmi_pcpyh(DisasContext *ctx) -{ - uint32_t pd, rt, rd; - uint32_t opcode; - - opcode =3D ctx->opcode; - - pd =3D extract32(opcode, 21, 5); - rt =3D extract32(opcode, 16, 5); - rd =3D extract32(opcode, 11, 5); - - if (unlikely(pd !=3D 0)) { - gen_reserved_instruction(ctx); - } else if (rd =3D=3D 0) { - /* nop */ - } else if (rt =3D=3D 0) { - tcg_gen_movi_i64(cpu_gpr[rd], 0); - tcg_gen_movi_i64(cpu_gpr_hi[rd], 0); - } else { - tcg_gen_deposit_i64(cpu_gpr[rd], cpu_gpr[rt], cpu_gpr[rt], 16, 16); - tcg_gen_deposit_i64(cpu_gpr[rd], cpu_gpr[rd], cpu_gpr[rd], 32, 32); - tcg_gen_deposit_i64(cpu_gpr_hi[rd], cpu_gpr_hi[rt], cpu_gpr_hi[rt]= , 16, 16); - tcg_gen_deposit_i64(cpu_gpr_hi[rd], cpu_gpr_hi[rd], cpu_gpr_hi[rd]= , 32, 32); - } -} - /* * PCPYLD rd, rs, rt * @@ -25016,9 +24980,6 @@ static void decode_mmi3(CPUMIPSState *env, DisasCon= text *ctx) case MMI_OPC_3_PEXCW: /* TODO: MMI_OPC_3_PEXCW */ gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI3 */ break; - case MMI_OPC_3_PCPYH: - gen_mmi_pcpyh(ctx); - break; case MMI_OPC_3_PCPYUD: gen_mmi_pcpyud(ctx); break; diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index 905245cece7..d58b4fcd7b3 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -49,3 +49,25 @@ static bool trans_MTLO1(DisasContext *ctx, arg_rtype *a) =20 return true; } + +/* Parallel Copy Halfword */ +static bool trans_PCPYH(DisasContext *s, arg_rtype *a) +{ + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + if (a->rt =3D=3D 0) { + tcg_gen_movi_i64(cpu_gpr[a->rd], 0); + tcg_gen_movi_i64(cpu_gpr_hi[a->rd], 0); + return true; + } + + tcg_gen_deposit_i64(cpu_gpr[a->rd], cpu_gpr[a->rt], cpu_gpr[a->rt], 16= , 16); + tcg_gen_deposit_i64(cpu_gpr[a->rd], cpu_gpr[a->rd], cpu_gpr[a->rd], 32= , 32); + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], cpu_gpr_hi[a->rt], cpu_gpr_hi[a= ->rt], 16, 16); + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], cpu_gpr_hi[a->rd], cpu_gpr_hi[a= ->rd], 32, 32); + + return true; +} --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.41 as permitted sender) client-ip=209.85.218.41; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f41.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301848; cv=none; d=zohomail.com; s=zohoarc; b=G70as93WczUBvW9EF+/jGCUYmINjeoZX8LIjiv37NVeTRP53u5aFdw8U1wHb/FetyY4E4WKUBYrVjdeyJ4yWxbMWeK0TyPH9R77Q+EkNfERtDQCszBwTsV3YpmkHq1V56hEep17Dw+4wyOij6C2v1TVtLC6BcOcpKH4CcXC07DY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301848; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jWKBH1PqrL+3zgv6Q7B53kJS5+64dRl5ardIw0ZvjK0=; b=SnhjL6Gt5uaeWYUFjdqpz3NvdvtLfZ++EiuJ6YMBuZlwRsaNptMvRAa4XoBkR69DqPa7D9Wwcvl6QjEk3VOFky+S1zFsdPgFiqdHgbLEjszYOeVmuEJ2wlaSJdMRiZ/HQmgWh1+wlpzgQvCZJB+TZDa9XDqGsn+R4JHLH7IUxns= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by mx.zohomail.com with SMTPS id 1615301848831828.5960384715406; Tue, 9 Mar 2021 06:57:28 -0800 (PST) Received: by mail-ej1-f41.google.com with SMTP id e19so28509414ejt.3 for ; Tue, 09 Mar 2021 06:57:27 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id y2sm8533493ejf.30.2021.03.09.06.57.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jWKBH1PqrL+3zgv6Q7B53kJS5+64dRl5ardIw0ZvjK0=; b=FkK2utIf0O73XOIr98hxPzah5uyLyj0mGKRM+pID9NHQzlC0Y/NQD9Ba4D9gYeG463 IkV74QWgalbnNIZMeA8wtnJqi0aBMnspL1oft+a0lar1H0XAvnE82qoWM3tuCwu/KG+5 aGo2kQUjVkj8Kbp6rb85qlopC5ygoLsJ8CDTqN3J9KNyhXsfPd14WaNTuVorgMrYbPEC gj3zVEoo2Z0/6+J6Ue1lTJfhCe6DhuzP5U1qh/AVenAnNYneklq9DBWHxSMVWR7NGCwG dA9vpRyB6A4gZo1SdwfCwWbCqryxDHdR1IgAWlTV+mfKKsjp450U9+f2+0KvvKBZ6q1w 8Ltw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=jWKBH1PqrL+3zgv6Q7B53kJS5+64dRl5ardIw0ZvjK0=; b=rRSBG3vDsZuYy0BtkLChbIljdXsKfbt4A6v5vVq48n5rs5YzosCGiNJ/FjUo6N3E5t jc+hpGN2orBRb+Cgb7XJSHP4jIBqwtwGxQBnNGjsabtG7nmRo62eSJxVzjX4W4JEccWP bQ45qYwdHiHpKe5fzMq45h9EJPxF7fuUCOMY3fP4mD6SMAGOPBY+KYH58wItauRs2TBr R/xzwxQu2n8UBaGRNAed0/llp940L9HS7zWR2m8mzBMfdUSME7EE64DGmqYa6tmhheqx c9G9gyU6x0fq/CJlIqYcLWZoKWdhTNw9fkGHlBOSJNCS6uHGqNQQIeR2GAR7O3gnHDyt a3hA== X-Gm-Message-State: AOAM531SGuF5c4I87USc2uBEhxKhi0CSsw/YeX/puuGOxt7UhSJh1FSz RVzGd8aRvaNRqWL7H6b/RNA= X-Google-Smtp-Source: ABdhPJx5eX6x6l7/0VZFB0vL2GBw5fD6OcKX2PEJzGTAYROonUuN1luw95L2/wHlFtbHB3uB7aUOmA== X-Received: by 2002:a17:907:78d9:: with SMTP id kv25mr21129374ejc.415.1615301846072; Tue, 09 Mar 2021 06:57:26 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 06/22] target/mips/tx79: Move PCPYLD / PCPYUD opcodes to decodetree Date: Tue, 9 Mar 2021 15:56:37 +0100 Message-Id: <20210309145653.743937-7-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Move PCPYLD (Parallel Copy Lower Doubleword) and PCPYUD (Parallel Copy Upper Doubleword) to decodetree. Remove unnecessary code / comments. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-13-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- v2: Use gen_load_gpr_hi (rth) --- target/mips/tx79.decode | 6 +++ target/mips/translate.c | 80 ------------------------------------ target/mips/tx79_translate.c | 42 +++++++++++++++++++ 3 files changed, 48 insertions(+), 80 deletions(-) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index 7af35458b0a..0f748b53a64 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -17,6 +17,7 @@ # Named instruction formats. These are generally used to # reduce the amount of duplication between instruction patterns. =20 +@rs_rt_rd ...... rs:5 rt:5 rd:5 ..... ...... &rtype sa=3D0 @rt_rd ...... ..... rt:5 rd:5 ..... ...... &rtype rs=3D0 sa= =3D0 @rs ...... rs:5 ..... .......... ...... &rtype rt=3D0 rd= =3D0 sa=3D0 @rd ...... .......... rd:5 ..... ...... &rtype rs=3D0 rt= =3D0 sa=3D0 @@ -28,6 +29,11 @@ MTHI1 011100 ..... 0000000000 00000 010001 = @rs MFLO1 011100 0000000000 ..... 00000 010010 @rd MTLO1 011100 ..... 0000000000 00000 010011 @rs =20 +# MMI2 + +PCPYLD 011100 ..... ..... ..... 01110 001001 @rs_rt_rd + # MMI3 =20 +PCPYUD 011100 ..... ..... ..... 01110 101001 @rs_rt_rd PCPYH 011100 00000 ..... ..... 11011 101001 @rt_rd diff --git a/target/mips/translate.c b/target/mips/translate.c index 25adaa75eb5..00fac4824de 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -24062,80 +24062,6 @@ static void decode_opc_special(CPUMIPSState *env, = DisasContext *ctx) * PEXTUW */ =20 -/* - * PCPYLD rd, rs, rt - * - * Parallel Copy Lower Doubleword - * - * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 - * +-----------+---------+---------+---------+---------+-----------+ - * | MMI | rs | rt | rd | PCPYLD | MMI2 | - * +-----------+---------+---------+---------+---------+-----------+ - */ -static void gen_mmi_pcpyld(DisasContext *ctx) -{ - uint32_t rs, rt, rd; - uint32_t opcode; - - opcode =3D ctx->opcode; - - rs =3D extract32(opcode, 21, 5); - rt =3D extract32(opcode, 16, 5); - rd =3D extract32(opcode, 11, 5); - - if (rd =3D=3D 0) { - /* nop */ - } else { - if (rs =3D=3D 0) { - tcg_gen_movi_i64(cpu_gpr_hi[rd], 0); - } else { - tcg_gen_mov_i64(cpu_gpr_hi[rd], cpu_gpr[rs]); - } - if (rt =3D=3D 0) { - tcg_gen_movi_i64(cpu_gpr[rd], 0); - } else { - if (rd !=3D rt) { - tcg_gen_mov_i64(cpu_gpr[rd], cpu_gpr[rt]); - } - } - } -} - -/* - * PCPYUD rd, rs, rt - * - * Parallel Copy Upper Doubleword - * - * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 - * +-----------+---------+---------+---------+---------+-----------+ - * | MMI | rs | rt | rd | PCPYUD | MMI3 | - * +-----------+---------+---------+---------+---------+-----------+ - */ -static void gen_mmi_pcpyud(DisasContext *ctx) -{ - uint32_t rs, rt, rd; - uint32_t opcode; - - opcode =3D ctx->opcode; - - rs =3D extract32(opcode, 21, 5); - rt =3D extract32(opcode, 16, 5); - rd =3D extract32(opcode, 11, 5); - - if (rd =3D=3D 0) { - /* nop */ - } else { - gen_load_gpr_hi(cpu_gpr[rd], rs); - if (rt =3D=3D 0) { - tcg_gen_movi_i64(cpu_gpr_hi[rd], 0); - } else { - if (rd !=3D rt) { - tcg_gen_mov_i64(cpu_gpr_hi[rd], cpu_gpr_hi[rt]); - } - } - } -} - #endif =20 static void decode_opc_special2_legacy(CPUMIPSState *env, DisasContext *ct= x) @@ -24952,9 +24878,6 @@ static void decode_mmi2(CPUMIPSState *env, DisasCon= text *ctx) case MMI_OPC_2_PROT3W: /* TODO: MMI_OPC_2_PROT3W */ gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI2 */ break; - case MMI_OPC_2_PCPYLD: - gen_mmi_pcpyld(ctx); - break; default: MIPS_INVAL("TX79 MMI class MMI2"); gen_reserved_instruction(ctx); @@ -24980,9 +24903,6 @@ static void decode_mmi3(CPUMIPSState *env, DisasCon= text *ctx) case MMI_OPC_3_PEXCW: /* TODO: MMI_OPC_3_PEXCW */ gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI3 */ break; - case MMI_OPC_3_PCPYUD: - gen_mmi_pcpyud(ctx); - break; default: MIPS_INVAL("TX79 MMI class MMI3"); gen_reserved_instruction(ctx); diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index d58b4fcd7b3..6e90eb64608 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -71,3 +71,45 @@ static bool trans_PCPYH(DisasContext *s, arg_rtype *a) =20 return true; } + +/* Parallel Copy Lower Doubleword */ +static bool trans_PCPYLD(DisasContext *s, arg_rtype *a) +{ + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + if (a->rs =3D=3D 0) { + tcg_gen_movi_i64(cpu_gpr_hi[a->rd], 0); + } else { + tcg_gen_mov_i64(cpu_gpr_hi[a->rd], cpu_gpr[a->rs]); + } + + if (a->rt =3D=3D 0) { + tcg_gen_movi_i64(cpu_gpr[a->rd], 0); + } else if (a->rd !=3D a->rt) { + tcg_gen_mov_i64(cpu_gpr[a->rd], cpu_gpr[a->rt]); + } + + return true; +} + +/* Parallel Copy Upper Doubleword */ +static bool trans_PCPYUD(DisasContext *s, arg_rtype *a) +{ + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + gen_load_gpr_hi(cpu_gpr[a->rd], a->rs); + + if (a->rt =3D=3D 0) { + tcg_gen_movi_i64(cpu_gpr_hi[a->rd], 0); + } else if (a->rd !=3D a->rt) { + tcg_gen_mov_i64(cpu_gpr_hi[a->rd], cpu_gpr_hi[a->rt]); + } + + return true; +} --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) client-ip=209.85.218.54; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f54.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1615301853; cv=none; d=zohomail.com; s=zohoarc; b=frp2LxI1ZavH5vQ3jSA5HpiLhxYfz7gF5Ck3yRtbjUw7znIZs/ZB6mn1l7KPjil8jrmk7ySDRa8DL3GgrdUn2fYGpQQ4bhHmsRN3r+fPR5iL4AZUAccgPZqZMbgNnMKO8h/R0t6tj2H2FF7J1uiI3YYC5gS6+wtJ8TI7hODUOCg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301853; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Q+MEriglVyiDBJTj2DMDIEv2Bpy9qz+33G7wF74pc4A=; b=m0yJG8zIBDYXIJi9RFosJmsRlzy/Qp1YpqeICQF2UMTbSil/RhG5kBMKfIxw4c69waqDgjrF2MMdKf+FFipkJXeauS4OUeVZCX1dIZEkE1EKLIUNwIcFPptLXrWxhrKPdsUSzXUmepkFt30z+VKe2vH1bJWt9hQsHnhDucHiN/U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) by mx.zohomail.com with SMTPS id 1615301853012767.9703375088402; Tue, 9 Mar 2021 06:57:33 -0800 (PST) Received: by mail-ej1-f54.google.com with SMTP id ox4so12868475ejb.11 for ; Tue, 09 Mar 2021 06:57:32 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id n16sm8351192ejy.35.2021.03.09.06.57.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Q+MEriglVyiDBJTj2DMDIEv2Bpy9qz+33G7wF74pc4A=; b=MDS2FJmpKCwdReFTk5XYXu+8T2h4yhfzS43QL65IxL8mCupXfPGLLsIsTF5tU5ylVo rXUtRZiIgt3/79kqkam1JvVZ/p994X1n+EV4/3/v88J3Ie36kzJpSztqNe96vffR5gb6 QKU9M5SO0QOT/mNpzIOC0umlfFyhmWIZEN/ZYpcHmD4Y6PfRmwjsrZkSJ6nmueggGgBe mjsNETwFPyYmZMg2lvqRrDazPJkSDXNx3rPIf+1ujweszQMSZtmw8cdaJA3TIisAGD/5 Pm8a39WmS100roJ34r7iiQRbMJzdZUk1x3gY3w33SbAgJ0/S2Swc/1oJMnqRg1umm3yT RqgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Q+MEriglVyiDBJTj2DMDIEv2Bpy9qz+33G7wF74pc4A=; b=c0Mqnp5kOE4eDBt9Ugy5k+RfmHOuqbq2HlstJW9y4JFfkkxObuI4zQ1Arp/6rUTngk VFGkuisMWTHMX+vagoiTDNNsuvIYNmd6fHJ+4Y4dRi5f9jyCMLJrkkusjNVq185CeeMU 52z9Kc94TqDVsb2J0TTnY71L6vorY0HY5YQkQkEa6DpCB5dC6tJaSz/slWjLZXmxmGGN ZZvAT3nC+pewh4qabmHVEYhFMcj9pOpY63pjBTQzhXozxwzeXPYRGBIvK41Xa2ghoBJr HiQCGOxQ4We30KoJ8SMG+rmOGuk/EwkcfyWqGG9wdabY1lOSl5pr+q2df2oba7PHcR3D Ne7Q== X-Gm-Message-State: AOAM5314aXHxH4cS1VGSOaY2lAy6NS9Vgm58o9uLlD5mksCdC2eRlkCP TsDVraUNY+9BstmlObRb5YE= X-Google-Smtp-Source: ABdhPJydel+qLJT8DHmq8LUB7MB1gqt8ckmQ9T0XCsVaKV7YFsvdc6x0a1bCdCCqUg7G23ZW3NBEOQ== X-Received: by 2002:a17:907:d0b:: with SMTP id gn11mr20890988ejc.463.1615301851112; Tue, 09 Mar 2021 06:57:31 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 07/22] target/mips: Remove 'C790 Multimedia Instructions' dead code Date: Tue, 9 Mar 2021 15:56:38 +0100 Message-Id: <20210309145653.743937-8-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) We have almost 400 lines of code full of /* TODO */ comments which end calling gen_reserved_instruction(). As we are not going to implement them, and all the caller's switch() default cases already call gen_reserved_instruction(), we can remove this altogether. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-14-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/translate.c | 371 ---------------------------------------- 1 file changed, 371 deletions(-) diff --git a/target/mips/translate.c b/target/mips/translate.c index 00fac4824de..dfc3155cb01 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -1357,207 +1357,12 @@ enum { enum { MMI_OPC_MADD =3D 0x00 | MMI_OPC_CLASS_MMI, /* Same as OPC_MADD */ MMI_OPC_MADDU =3D 0x01 | MMI_OPC_CLASS_MMI, /* Same as OPC_MADDU = */ - MMI_OPC_PLZCW =3D 0x04 | MMI_OPC_CLASS_MMI, - MMI_OPC_CLASS_MMI0 =3D 0x08 | MMI_OPC_CLASS_MMI, - MMI_OPC_CLASS_MMI2 =3D 0x09 | MMI_OPC_CLASS_MMI, MMI_OPC_MULT1 =3D 0x18 | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= MULT */ MMI_OPC_MULTU1 =3D 0x19 | MMI_OPC_CLASS_MMI, /* Same min. as OPC_M= ULTU */ MMI_OPC_DIV1 =3D 0x1A | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= DIV */ MMI_OPC_DIVU1 =3D 0x1B | MMI_OPC_CLASS_MMI, /* Same minor as OPC_= DIVU */ MMI_OPC_MADD1 =3D 0x20 | MMI_OPC_CLASS_MMI, MMI_OPC_MADDU1 =3D 0x21 | MMI_OPC_CLASS_MMI, - MMI_OPC_CLASS_MMI1 =3D 0x28 | MMI_OPC_CLASS_MMI, - MMI_OPC_CLASS_MMI3 =3D 0x29 | MMI_OPC_CLASS_MMI, - MMI_OPC_PMFHL =3D 0x30 | MMI_OPC_CLASS_MMI, - MMI_OPC_PMTHL =3D 0x31 | MMI_OPC_CLASS_MMI, - MMI_OPC_PSLLH =3D 0x34 | MMI_OPC_CLASS_MMI, - MMI_OPC_PSRLH =3D 0x36 | MMI_OPC_CLASS_MMI, - MMI_OPC_PSRAH =3D 0x37 | MMI_OPC_CLASS_MMI, - MMI_OPC_PSLLW =3D 0x3C | MMI_OPC_CLASS_MMI, - MMI_OPC_PSRLW =3D 0x3E | MMI_OPC_CLASS_MMI, - MMI_OPC_PSRAW =3D 0x3F | MMI_OPC_CLASS_MMI, -}; - -/* - * MMI instructions with opcode field =3D MMI and bits 5..0 =3D MMI0: - * - * 31 26 10 6 5 0 - * +--------+----------------------+--------+--------+ - * | MMI | |function| MMI0 | - * +--------+----------------------+--------+--------+ - * - * function bits 7..6 - * bits | 0 | 1 | 2 | 3 - * 10..8 | 00 | 01 | 10 | 11 - * -------+-------+-------+-------+------- - * 0 000 | PADDW | PSUBW | PCGTW | PMAXW - * 1 001 | PADDH | PSUBH | PCGTH | PMAXH - * 2 010 | PADDB | PSUBB | PCGTB | * - * 3 011 | * | * | * | * - * 4 100 | PADDSW| PSUBSW| PEXTLW| PPACW - * 5 101 | PADDSH| PSUBSH| PEXTLH| PPACH - * 6 110 | PADDSB| PSUBSB| PEXTLB| PPACB - * 7 111 | * | * | PEXT5 | PPAC5 - */ - -#define MASK_MMI0(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF)) -enum { - MMI_OPC_0_PADDW =3D (0x00 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PSUBW =3D (0x01 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PCGTW =3D (0x02 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PMAXW =3D (0x03 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PADDH =3D (0x04 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PSUBH =3D (0x05 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PCGTH =3D (0x06 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PMAXH =3D (0x07 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PADDB =3D (0x08 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PSUBB =3D (0x09 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PCGTB =3D (0x0A << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PADDSW =3D (0x10 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PSUBSW =3D (0x11 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PEXTLW =3D (0x12 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PPACW =3D (0x13 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PADDSH =3D (0x14 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PSUBSH =3D (0x15 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PEXTLH =3D (0x16 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PPACH =3D (0x17 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PADDSB =3D (0x18 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PSUBSB =3D (0x19 << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PEXTLB =3D (0x1A << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PPACB =3D (0x1B << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PEXT5 =3D (0x1E << 6) | MMI_OPC_CLASS_MMI0, - MMI_OPC_0_PPAC5 =3D (0x1F << 6) | MMI_OPC_CLASS_MMI0, -}; - -/* - * MMI instructions with opcode field =3D MMI and bits 5..0 =3D MMI1: - * - * 31 26 10 6 5 0 - * +--------+----------------------+--------+--------+ - * | MMI | |function| MMI1 | - * +--------+----------------------+--------+--------+ - * - * function bits 7..6 - * bits | 0 | 1 | 2 | 3 - * 10..8 | 00 | 01 | 10 | 11 - * -------+-------+-------+-------+------- - * 0 000 | * | PABSW | PCEQW | PMINW - * 1 001 | PADSBH| PABSH | PCEQH | PMINH - * 2 010 | * | * | PCEQB | * - * 3 011 | * | * | * | * - * 4 100 | PADDUW| PSUBUW| PEXTUW| * - * 5 101 | PADDUH| PSUBUH| PEXTUH| * - * 6 110 | PADDUB| PSUBUB| PEXTUB| QFSRV - * 7 111 | * | * | * | * - */ - -#define MASK_MMI1(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF)) -enum { - MMI_OPC_1_PABSW =3D (0x01 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PCEQW =3D (0x02 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PMINW =3D (0x03 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PADSBH =3D (0x04 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PABSH =3D (0x05 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PCEQH =3D (0x06 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PMINH =3D (0x07 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PCEQB =3D (0x0A << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PADDUW =3D (0x10 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PSUBUW =3D (0x11 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PEXTUW =3D (0x12 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PADDUH =3D (0x14 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PSUBUH =3D (0x15 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PEXTUH =3D (0x16 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PADDUB =3D (0x18 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PSUBUB =3D (0x19 << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_PEXTUB =3D (0x1A << 6) | MMI_OPC_CLASS_MMI1, - MMI_OPC_1_QFSRV =3D (0x1B << 6) | MMI_OPC_CLASS_MMI1, -}; - -/* - * MMI instructions with opcode field =3D MMI and bits 5..0 =3D MMI2: - * - * 31 26 10 6 5 0 - * +--------+----------------------+--------+--------+ - * | MMI | |function| MMI2 | - * +--------+----------------------+--------+--------+ - * - * function bits 7..6 - * bits | 0 | 1 | 2 | 3 - * 10..8 | 00 | 01 | 10 | 11 - * -------+-------+-------+-------+------- - * 0 000 | PMADDW| * | PSLLVW| PSRLVW - * 1 001 | PMSUBW| * | * | * - * 2 010 | PMFHI | PMFLO | PINTH | * - * 3 011 | PMULTW| PDIVW | PCPYLD| * - * 4 100 | PMADDH| PHMADH| PAND | PXOR - * 5 101 | PMSUBH| PHMSBH| * | * - * 6 110 | * | * | PEXEH | PREVH - * 7 111 | PMULTH| PDIVBW| PEXEW | PROT3W - */ - -#define MASK_MMI2(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF)) -enum { - MMI_OPC_2_PMADDW =3D (0x00 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PSLLVW =3D (0x02 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PSRLVW =3D (0x03 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PMSUBW =3D (0x04 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PMFHI =3D (0x08 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PMFLO =3D (0x09 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PINTH =3D (0x0A << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PMULTW =3D (0x0C << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PDIVW =3D (0x0D << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PCPYLD =3D (0x0E << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PMADDH =3D (0x10 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PHMADH =3D (0x11 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PAND =3D (0x12 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PXOR =3D (0x13 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PMSUBH =3D (0x14 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PHMSBH =3D (0x15 << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PEXEH =3D (0x1A << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PREVH =3D (0x1B << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PMULTH =3D (0x1C << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PDIVBW =3D (0x1D << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PEXEW =3D (0x1E << 6) | MMI_OPC_CLASS_MMI2, - MMI_OPC_2_PROT3W =3D (0x1F << 6) | MMI_OPC_CLASS_MMI2, -}; - -/* - * MMI instructions with opcode field =3D MMI and bits 5..0 =3D MMI3: - * - * 31 26 10 6 5 0 - * +--------+----------------------+--------+--------+ - * | MMI | |function| MMI3 | - * +--------+----------------------+--------+--------+ - * - * function bits 7..6 - * bits | 0 | 1 | 2 | 3 - * 10..8 | 00 | 01 | 10 | 11 - * -------+-------+-------+-------+------- - * 0 000 |PMADDUW| * | * | PSRAVW - * 1 001 | * | * | * | * - * 2 010 | PMTHI | PMTLO | PINTEH| * - * 3 011 |PMULTUW| PDIVUW| PCPYUD| * - * 4 100 | * | * | POR | PNOR - * 5 101 | * | * | * | * - * 6 110 | * | * | PEXCH | PCPYH - * 7 111 | * | * | PEXCW | * - */ - -#define MASK_MMI3(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF)) -enum { - MMI_OPC_3_PMADDUW =3D (0x00 << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_PSRAVW =3D (0x03 << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_PMTHI =3D (0x08 << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_PMTLO =3D (0x09 << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_PINTEH =3D (0x0A << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_PMULTUW =3D (0x0C << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_PDIVUW =3D (0x0D << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_PCPYUD =3D (0x0E << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_POR =3D (0x12 << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_PNOR =3D (0x13 << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_PEXCH =3D (0x1A << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_PCPYH =3D (0x1B << 6) | MMI_OPC_CLASS_MMI3, - MMI_OPC_3_PEXCW =3D (0x1E << 6) | MMI_OPC_CLASS_MMI3, }; =20 /* global register indices */ @@ -24042,28 +23847,6 @@ static void decode_opc_special(CPUMIPSState *env, = DisasContext *ctx) } =20 =20 -#if defined(TARGET_MIPS64) - -/* - * - * MMI (MultiMedia Interface) ASE instructions - * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - */ - -/* - * MMI instructions category: data communication - * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * - * PCPYH PEXCH PEXTLB PINTH PPACB PEXT5 PREVH - * PCPYLD PEXCW PEXTLH PINTEH PPACH PPAC5 PROT3W - * PCPYUD PEXEH PEXTLW PPACW - * PEXEW PEXTUB - * PEXTUH - * PEXTUW - */ - -#endif - static void decode_opc_special2_legacy(CPUMIPSState *env, DisasContext *ct= x) { int rs, rt, rd; @@ -24779,137 +24562,6 @@ static void decode_opc_special3_legacy(CPUMIPSSta= te *env, DisasContext *ctx) =20 #if defined(TARGET_MIPS64) =20 -static void decode_mmi0(CPUMIPSState *env, DisasContext *ctx) -{ - uint32_t opc =3D MASK_MMI0(ctx->opcode); - - switch (opc) { - case MMI_OPC_0_PADDW: /* TODO: MMI_OPC_0_PADDW */ - case MMI_OPC_0_PSUBW: /* TODO: MMI_OPC_0_PSUBW */ - case MMI_OPC_0_PCGTW: /* TODO: MMI_OPC_0_PCGTW */ - case MMI_OPC_0_PMAXW: /* TODO: MMI_OPC_0_PMAXW */ - case MMI_OPC_0_PADDH: /* TODO: MMI_OPC_0_PADDH */ - case MMI_OPC_0_PSUBH: /* TODO: MMI_OPC_0_PSUBH */ - case MMI_OPC_0_PCGTH: /* TODO: MMI_OPC_0_PCGTH */ - case MMI_OPC_0_PMAXH: /* TODO: MMI_OPC_0_PMAXH */ - case MMI_OPC_0_PADDB: /* TODO: MMI_OPC_0_PADDB */ - case MMI_OPC_0_PSUBB: /* TODO: MMI_OPC_0_PSUBB */ - case MMI_OPC_0_PCGTB: /* TODO: MMI_OPC_0_PCGTB */ - case MMI_OPC_0_PADDSW: /* TODO: MMI_OPC_0_PADDSW */ - case MMI_OPC_0_PSUBSW: /* TODO: MMI_OPC_0_PSUBSW */ - case MMI_OPC_0_PEXTLW: /* TODO: MMI_OPC_0_PEXTLW */ - case MMI_OPC_0_PPACW: /* TODO: MMI_OPC_0_PPACW */ - case MMI_OPC_0_PADDSH: /* TODO: MMI_OPC_0_PADDSH */ - case MMI_OPC_0_PSUBSH: /* TODO: MMI_OPC_0_PSUBSH */ - case MMI_OPC_0_PEXTLH: /* TODO: MMI_OPC_0_PEXTLH */ - case MMI_OPC_0_PPACH: /* TODO: MMI_OPC_0_PPACH */ - case MMI_OPC_0_PADDSB: /* TODO: MMI_OPC_0_PADDSB */ - case MMI_OPC_0_PSUBSB: /* TODO: MMI_OPC_0_PSUBSB */ - case MMI_OPC_0_PEXTLB: /* TODO: MMI_OPC_0_PEXTLB */ - case MMI_OPC_0_PPACB: /* TODO: MMI_OPC_0_PPACB */ - case MMI_OPC_0_PEXT5: /* TODO: MMI_OPC_0_PEXT5 */ - case MMI_OPC_0_PPAC5: /* TODO: MMI_OPC_0_PPAC5 */ - gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI0 */ - break; - default: - MIPS_INVAL("TX79 MMI class MMI0"); - gen_reserved_instruction(ctx); - break; - } -} - -static void decode_mmi1(CPUMIPSState *env, DisasContext *ctx) -{ - uint32_t opc =3D MASK_MMI1(ctx->opcode); - - switch (opc) { - case MMI_OPC_1_PABSW: /* TODO: MMI_OPC_1_PABSW */ - case MMI_OPC_1_PCEQW: /* TODO: MMI_OPC_1_PCEQW */ - case MMI_OPC_1_PMINW: /* TODO: MMI_OPC_1_PMINW */ - case MMI_OPC_1_PADSBH: /* TODO: MMI_OPC_1_PADSBH */ - case MMI_OPC_1_PABSH: /* TODO: MMI_OPC_1_PABSH */ - case MMI_OPC_1_PCEQH: /* TODO: MMI_OPC_1_PCEQH */ - case MMI_OPC_1_PMINH: /* TODO: MMI_OPC_1_PMINH */ - case MMI_OPC_1_PCEQB: /* TODO: MMI_OPC_1_PCEQB */ - case MMI_OPC_1_PADDUW: /* TODO: MMI_OPC_1_PADDUW */ - case MMI_OPC_1_PSUBUW: /* TODO: MMI_OPC_1_PSUBUW */ - case MMI_OPC_1_PEXTUW: /* TODO: MMI_OPC_1_PEXTUW */ - case MMI_OPC_1_PADDUH: /* TODO: MMI_OPC_1_PADDUH */ - case MMI_OPC_1_PSUBUH: /* TODO: MMI_OPC_1_PSUBUH */ - case MMI_OPC_1_PEXTUH: /* TODO: MMI_OPC_1_PEXTUH */ - case MMI_OPC_1_PADDUB: /* TODO: MMI_OPC_1_PADDUB */ - case MMI_OPC_1_PSUBUB: /* TODO: MMI_OPC_1_PSUBUB */ - case MMI_OPC_1_PEXTUB: /* TODO: MMI_OPC_1_PEXTUB */ - case MMI_OPC_1_QFSRV: /* TODO: MMI_OPC_1_QFSRV */ - gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI1 */ - break; - default: - MIPS_INVAL("TX79 MMI class MMI1"); - gen_reserved_instruction(ctx); - break; - } -} - -static void decode_mmi2(CPUMIPSState *env, DisasContext *ctx) -{ - uint32_t opc =3D MASK_MMI2(ctx->opcode); - - switch (opc) { - case MMI_OPC_2_PMADDW: /* TODO: MMI_OPC_2_PMADDW */ - case MMI_OPC_2_PSLLVW: /* TODO: MMI_OPC_2_PSLLVW */ - case MMI_OPC_2_PSRLVW: /* TODO: MMI_OPC_2_PSRLVW */ - case MMI_OPC_2_PMSUBW: /* TODO: MMI_OPC_2_PMSUBW */ - case MMI_OPC_2_PMFHI: /* TODO: MMI_OPC_2_PMFHI */ - case MMI_OPC_2_PMFLO: /* TODO: MMI_OPC_2_PMFLO */ - case MMI_OPC_2_PINTH: /* TODO: MMI_OPC_2_PINTH */ - case MMI_OPC_2_PMULTW: /* TODO: MMI_OPC_2_PMULTW */ - case MMI_OPC_2_PDIVW: /* TODO: MMI_OPC_2_PDIVW */ - case MMI_OPC_2_PMADDH: /* TODO: MMI_OPC_2_PMADDH */ - case MMI_OPC_2_PHMADH: /* TODO: MMI_OPC_2_PHMADH */ - case MMI_OPC_2_PAND: /* TODO: MMI_OPC_2_PAND */ - case MMI_OPC_2_PXOR: /* TODO: MMI_OPC_2_PXOR */ - case MMI_OPC_2_PMSUBH: /* TODO: MMI_OPC_2_PMSUBH */ - case MMI_OPC_2_PHMSBH: /* TODO: MMI_OPC_2_PHMSBH */ - case MMI_OPC_2_PEXEH: /* TODO: MMI_OPC_2_PEXEH */ - case MMI_OPC_2_PREVH: /* TODO: MMI_OPC_2_PREVH */ - case MMI_OPC_2_PMULTH: /* TODO: MMI_OPC_2_PMULTH */ - case MMI_OPC_2_PDIVBW: /* TODO: MMI_OPC_2_PDIVBW */ - case MMI_OPC_2_PEXEW: /* TODO: MMI_OPC_2_PEXEW */ - case MMI_OPC_2_PROT3W: /* TODO: MMI_OPC_2_PROT3W */ - gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI2 */ - break; - default: - MIPS_INVAL("TX79 MMI class MMI2"); - gen_reserved_instruction(ctx); - break; - } -} - -static void decode_mmi3(CPUMIPSState *env, DisasContext *ctx) -{ - uint32_t opc =3D MASK_MMI3(ctx->opcode); - - switch (opc) { - case MMI_OPC_3_PMADDUW: /* TODO: MMI_OPC_3_PMADDUW */ - case MMI_OPC_3_PSRAVW: /* TODO: MMI_OPC_3_PSRAVW */ - case MMI_OPC_3_PMTHI: /* TODO: MMI_OPC_3_PMTHI */ - case MMI_OPC_3_PMTLO: /* TODO: MMI_OPC_3_PMTLO */ - case MMI_OPC_3_PINTEH: /* TODO: MMI_OPC_3_PINTEH */ - case MMI_OPC_3_PMULTUW: /* TODO: MMI_OPC_3_PMULTUW */ - case MMI_OPC_3_PDIVUW: /* TODO: MMI_OPC_3_PDIVUW */ - case MMI_OPC_3_POR: /* TODO: MMI_OPC_3_POR */ - case MMI_OPC_3_PNOR: /* TODO: MMI_OPC_3_PNOR */ - case MMI_OPC_3_PEXCH: /* TODO: MMI_OPC_3_PEXCH */ - case MMI_OPC_3_PEXCW: /* TODO: MMI_OPC_3_PEXCW */ - gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI3 */ - break; - default: - MIPS_INVAL("TX79 MMI class MMI3"); - gen_reserved_instruction(ctx); - break; - } -} - static void decode_mmi(CPUMIPSState *env, DisasContext *ctx) { uint32_t opc =3D MASK_MMI(ctx->opcode); @@ -24918,18 +24570,6 @@ static void decode_mmi(CPUMIPSState *env, DisasCon= text *ctx) int rd =3D extract32(ctx->opcode, 11, 5); =20 switch (opc) { - case MMI_OPC_CLASS_MMI0: - decode_mmi0(env, ctx); - break; - case MMI_OPC_CLASS_MMI1: - decode_mmi1(env, ctx); - break; - case MMI_OPC_CLASS_MMI2: - decode_mmi2(env, ctx); - break; - case MMI_OPC_CLASS_MMI3: - decode_mmi3(env, ctx); - break; case MMI_OPC_MULT1: case MMI_OPC_MULTU1: case MMI_OPC_MADD: @@ -24942,17 +24582,6 @@ static void decode_mmi(CPUMIPSState *env, DisasCon= text *ctx) case MMI_OPC_DIVU1: gen_div1_tx79(ctx, opc, rs, rt); break; - case MMI_OPC_PLZCW: /* TODO: MMI_OPC_PLZCW */ - case MMI_OPC_PMFHL: /* TODO: MMI_OPC_PMFHL */ - case MMI_OPC_PMTHL: /* TODO: MMI_OPC_PMTHL */ - case MMI_OPC_PSLLH: /* TODO: MMI_OPC_PSLLH */ - case MMI_OPC_PSRLH: /* TODO: MMI_OPC_PSRLH */ - case MMI_OPC_PSRAH: /* TODO: MMI_OPC_PSRAH */ - case MMI_OPC_PSLLW: /* TODO: MMI_OPC_PSLLW */ - case MMI_OPC_PSRLW: /* TODO: MMI_OPC_PSRLW */ - case MMI_OPC_PSRAW: /* TODO: MMI_OPC_PSRAW */ - gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI */ - break; default: MIPS_INVAL("TX79 MMI class"); gen_reserved_instruction(ctx); --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) client-ip=209.85.218.54; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f54.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301858; cv=none; d=zohomail.com; s=zohoarc; b=SMWMVFCILDEmI+aGNdMLgATivjLHrrhJcqBWm9OJtjZJvQbQphao5dEV3oLmikCdIaJoHWa1F8G8f5TqXZXKK2pGh3LkLh9kA6HoCO0LsB/kOlxmIuQiDpZxfPS0kFMCLf6VOkDKxNoUpyGojd1T1dkvjUz15bP3VGcg3/57KFs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301858; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bo6Vt1fxlnqlKvISTco9CxLZNZpwNrlfFNfm1Y5Uk3k=; b=nhlZjLhODBaY+DKbPFwRDLx91hn6jP0YEQbQOKkebcBfpsoEPEwaMxjjRZ/Dkd63ySx5DHA7Ddg6l1nuwoD86ibx0fRwaXlKErZDu1gYr9/sTRIu5K2cND19SYP5wfwjjww1Ri8fqKJBzf08y144UUYsrNsHAWnjRCm/KxUnut0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) by mx.zohomail.com with SMTPS id 1615301858097570.4074000191496; Tue, 9 Mar 2021 06:57:38 -0800 (PST) Received: by mail-ej1-f54.google.com with SMTP id p7so17069690eju.6 for ; Tue, 09 Mar 2021 06:57:37 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id kj3sm8560785ejc.117.2021.03.09.06.57.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bo6Vt1fxlnqlKvISTco9CxLZNZpwNrlfFNfm1Y5Uk3k=; b=tEmxr3Ab702R4FuXtSpR4u8VX8tiw6NeGGoahAfUYFQRS7FfIbpdnBxV0nVqlQSBhv POjsfdRWHnJGHQ/rlyA6J2iP/ZIdI43uy0PS7AxQMO62DcO6PVHSzQ3QAtVtsOTPFcxB LglRf2Vok7EV/dy/ft7GXUGr/+DYunIIP4mWY16lHEYuz3jMoGKWnYvD0IhJZGl26Nwy hB6fgVf1PV4WLVYJ3ew/PhOUa5eF1+iU3LTu/jNyKM3r8sP2ECCpM/G+TCRo7cPlyg98 HQmonb0Rn4yi6Jf3J7jHpmbSfm07aVev2UiHBQBitdIBb3YKvhl3gKaKUwOyx2nXv6gb pmDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=bo6Vt1fxlnqlKvISTco9CxLZNZpwNrlfFNfm1Y5Uk3k=; b=sYVG/NTJ6HMCjCQ9SCVUXiAEHJQ4OHbTxfFgReO3fuUIrg/gdbihiRGjizvN/a17lq aDiyNKXPVWDzRBgbiQudYI2NJxSU1/TjhnuoFjMXYW4vMgV/NDIkcfSh5l3neY22S1yo oYGpC/kPubuofBFjnxc3znP6vL9gej6gnXlmSSl90wt3EDolEdiz0bm3UI2hADx3IfpM cFfRQATHt81HiSyvV4wTpxpKFWGSCjMIL2KYJh0Vyfwzeid2WfCVZE3rFLVi5AsJOzdO jvJ27hJIbT+HhwJHHDlavfFnmVyZLHr/MTFsXLDZJ3U3UeObLW0+EcTuwsTmXt8gklH5 XW9g== X-Gm-Message-State: AOAM531KAsHzcULwQAQyq2TQoLjc17JuNjxqOGyg7cNU/jDwerJ1ribn uGtGYvaRPhUF8z9XBFYUYSU= X-Google-Smtp-Source: ABdhPJw2hITbGO243Ed8z+818uvIeJChMTo7KjsLzAiJ0Gcnb5kJrv6P9t8/WY7gvzVvHEBMA0oRvg== X-Received: by 2002:a17:906:4f10:: with SMTP id t16mr21177797eju.531.1615301856188; Tue, 09 Mar 2021 06:57:36 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 08/22] target/mips/tx79: Salvage instructions description comment Date: Tue, 9 Mar 2021 15:56:39 +0100 Message-Id: <20210309145653.743937-9-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) This comment describing the tx79 opcodes is helpful. As we will implement these instructions in tx79_translate.c, move the comment there. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-15-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/translate.c | 160 ----------------------------- target/mips/tx79_translate.c | 188 +++++++++++++++++++++++++++++++++++ 2 files changed, 188 insertions(+), 160 deletions(-) diff --git a/target/mips/translate.c b/target/mips/translate.c index dfc3155cb01..5fcb859f866 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -1130,166 +1130,6 @@ enum { }; =20 /* - * Overview of the TX79-specific instruction set - * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - * - * The R5900 and the C790 have 128-bit wide GPRs, where the upper 64 bits - * are only used by the specific quadword (128-bit) LQ/SQ load/store - * instructions and certain multimedia instructions (MMIs). These MMIs - * configure the 128-bit data path as two 64-bit, four 32-bit, eight 16-bit - * or sixteen 8-bit paths. - * - * Reference: - * - * The Toshiba TX System RISC TX79 Core Architecture manual, - * https://wiki.qemu.org/File:C790.pdf - * - * Three-Operand Multiply and Multiply-Add (4 instructions) - * -------------------------------------------------------- - * MADD [rd,] rs, rt Multiply/Add - * MADDU [rd,] rs, rt Multiply/Add Unsigned - * MULT [rd,] rs, rt Multiply (3-operand) - * MULTU [rd,] rs, rt Multiply Unsigned (3-operand) - * - * Multiply Instructions for Pipeline 1 (10 instructions) - * ------------------------------------------------------ - * MULT1 [rd,] rs, rt Multiply Pipeline 1 - * MULTU1 [rd,] rs, rt Multiply Unsigned Pipeline 1 - * DIV1 rs, rt Divide Pipeline 1 - * DIVU1 rs, rt Divide Unsigned Pipeline 1 - * MADD1 [rd,] rs, rt Multiply-Add Pipeline 1 - * MADDU1 [rd,] rs, rt Multiply-Add Unsigned Pipeline 1 - * MFHI1 rd Move From HI1 Register - * MFLO1 rd Move From LO1 Register - * MTHI1 rs Move To HI1 Register - * MTLO1 rs Move To LO1 Register - * - * Arithmetic (19 instructions) - * ---------------------------- - * PADDB rd, rs, rt Parallel Add Byte - * PSUBB rd, rs, rt Parallel Subtract Byte - * PADDH rd, rs, rt Parallel Add Halfword - * PSUBH rd, rs, rt Parallel Subtract Halfword - * PADDW rd, rs, rt Parallel Add Word - * PSUBW rd, rs, rt Parallel Subtract Word - * PADSBH rd, rs, rt Parallel Add/Subtract Halfword - * PADDSB rd, rs, rt Parallel Add with Signed Saturation Byte - * PSUBSB rd, rs, rt Parallel Subtract with Signed Saturation Byte - * PADDSH rd, rs, rt Parallel Add with Signed Saturation Halfword - * PSUBSH rd, rs, rt Parallel Subtract with Signed Saturation Half= word - * PADDSW rd, rs, rt Parallel Add with Signed Saturation Word - * PSUBSW rd, rs, rt Parallel Subtract with Signed Saturation Word - * PADDUB rd, rs, rt Parallel Add with Unsigned saturation Byte - * PSUBUB rd, rs, rt Parallel Subtract with Unsigned saturation By= te - * PADDUH rd, rs, rt Parallel Add with Unsigned saturation Halfword - * PSUBUH rd, rs, rt Parallel Subtract with Unsigned saturation Ha= lfword - * PADDUW rd, rs, rt Parallel Add with Unsigned saturation Word - * PSUBUW rd, rs, rt Parallel Subtract with Unsigned saturation Wo= rd - * - * Min/Max (4 instructions) - * ------------------------ - * PMAXH rd, rs, rt Parallel Maximum Halfword - * PMINH rd, rs, rt Parallel Minimum Halfword - * PMAXW rd, rs, rt Parallel Maximum Word - * PMINW rd, rs, rt Parallel Minimum Word - * - * Absolute (2 instructions) - * ------------------------- - * PABSH rd, rt Parallel Absolute Halfword - * PABSW rd, rt Parallel Absolute Word - * - * Logical (4 instructions) - * ------------------------ - * PAND rd, rs, rt Parallel AND - * POR rd, rs, rt Parallel OR - * PXOR rd, rs, rt Parallel XOR - * PNOR rd, rs, rt Parallel NOR - * - * Shift (9 instructions) - * ---------------------- - * PSLLH rd, rt, sa Parallel Shift Left Logical Halfword - * PSRLH rd, rt, sa Parallel Shift Right Logical Halfword - * PSRAH rd, rt, sa Parallel Shift Right Arithmetic Halfword - * PSLLW rd, rt, sa Parallel Shift Left Logical Word - * PSRLW rd, rt, sa Parallel Shift Right Logical Word - * PSRAW rd, rt, sa Parallel Shift Right Arithmetic Word - * PSLLVW rd, rt, rs Parallel Shift Left Logical Variable Word - * PSRLVW rd, rt, rs Parallel Shift Right Logical Variable Word - * PSRAVW rd, rt, rs Parallel Shift Right Arithmetic Variable Word - * - * Compare (6 instructions) - * ------------------------ - * PCGTB rd, rs, rt Parallel Compare for Greater Than Byte - * PCEQB rd, rs, rt Parallel Compare for Equal Byte - * PCGTH rd, rs, rt Parallel Compare for Greater Than Halfword - * PCEQH rd, rs, rt Parallel Compare for Equal Halfword - * PCGTW rd, rs, rt Parallel Compare for Greater Than Word - * PCEQW rd, rs, rt Parallel Compare for Equal Word - * - * LZC (1 instruction) - * ------------------- - * PLZCW rd, rs Parallel Leading Zero or One Count Word - * - * Quadword Load and Store (2 instructions) - * ---------------------------------------- - * LQ rt, offset(base) Load Quadword - * SQ rt, offset(base) Store Quadword - * - * Multiply and Divide (19 instructions) - * ------------------------------------- - * PMULTW rd, rs, rt Parallel Multiply Word - * PMULTUW rd, rs, rt Parallel Multiply Unsigned Word - * PDIVW rs, rt Parallel Divide Word - * PDIVUW rs, rt Parallel Divide Unsigned Word - * PMADDW rd, rs, rt Parallel Multiply-Add Word - * PMADDUW rd, rs, rt Parallel Multiply-Add Unsigned Word - * PMSUBW rd, rs, rt Parallel Multiply-Subtract Word - * PMULTH rd, rs, rt Parallel Multiply Halfword - * PMADDH rd, rs, rt Parallel Multiply-Add Halfword - * PMSUBH rd, rs, rt Parallel Multiply-Subtract Halfword - * PHMADH rd, rs, rt Parallel Horizontal Multiply-Add Halfword - * PHMSBH rd, rs, rt Parallel Horizontal Multiply-Subtract Halfword - * PDIVBW rs, rt Parallel Divide Broadcast Word - * PMFHI rd Parallel Move From HI Register - * PMFLO rd Parallel Move From LO Register - * PMTHI rs Parallel Move To HI Register - * PMTLO rs Parallel Move To LO Register - * PMFHL rd Parallel Move From HI/LO Register - * PMTHL rs Parallel Move To HI/LO Register - * - * Pack/Extend (11 instructions) - * ----------------------------- - * PPAC5 rd, rt Parallel Pack to 5 bits - * PPACB rd, rs, rt Parallel Pack to Byte - * PPACH rd, rs, rt Parallel Pack to Halfword - * PPACW rd, rs, rt Parallel Pack to Word - * PEXT5 rd, rt Parallel Extend Upper from 5 bits - * PEXTUB rd, rs, rt Parallel Extend Upper from Byte - * PEXTLB rd, rs, rt Parallel Extend Lower from Byte - * PEXTUH rd, rs, rt Parallel Extend Upper from Halfword - * PEXTLH rd, rs, rt Parallel Extend Lower from Halfword - * PEXTUW rd, rs, rt Parallel Extend Upper from Word - * PEXTLW rd, rs, rt Parallel Extend Lower from Word - * - * Others (16 instructions) - * ------------------------ - * PCPYH rd, rt Parallel Copy Halfword - * PCPYLD rd, rs, rt Parallel Copy Lower Doubleword - * PCPYUD rd, rs, rt Parallel Copy Upper Doubleword - * PREVH rd, rt Parallel Reverse Halfword - * PINTH rd, rs, rt Parallel Interleave Halfword - * PINTEH rd, rs, rt Parallel Interleave Even Halfword - * PEXEH rd, rt Parallel Exchange Even Halfword - * PEXCH rd, rt Parallel Exchange Center Halfword - * PEXEW rd, rt Parallel Exchange Even Word - * PEXCW rd, rt Parallel Exchange Center Word - * QFSRV rd, rs, rt Quadword Funnel Shift Right Variable - * MFSA rd Move from Shift Amount Register - * MTSA rs Move to Shift Amount Register - * MTSAB rs, immediate Move Byte Count to Shift Amount Register - * MTSAH rs, immediate Move Halfword Count to Shift Amount Register - * PROT3W rd, rt Parallel Rotate 3 Words - * * MMI (MultiMedia Instruction) encodings * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index 6e90eb64608..ad83774b977 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -14,6 +14,22 @@ /* Include the auto-generated decoder. */ #include "decode-tx79.c.inc" =20 +/* + * Overview of the TX79-specific instruction set + * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + * + * The R5900 and the C790 have 128-bit wide GPRs, where the upper 64 bits + * are only used by the specific quadword (128-bit) LQ/SQ load/store + * instructions and certain multimedia instructions (MMIs). These MMIs + * configure the 128-bit data path as two 64-bit, four 32-bit, eight 16-bit + * or sixteen 8-bit paths. + * + * Reference: + * + * The Toshiba TX System RISC TX79 Core Architecture manual, + * https://wiki.qemu.org/File:C790.pdf + */ + bool decode_ext_tx79(DisasContext *ctx, uint32_t insn) { if (TARGET_LONG_BITS =3D=3D 64 && decode_tx79(ctx, insn)) { @@ -22,6 +38,30 @@ bool decode_ext_tx79(DisasContext *ctx, uint32_t insn) return false; } =20 +/* + * Three-Operand Multiply and Multiply-Add (4 instructions) + * -------------------------------------------------------- + * MADD [rd,] rs, rt Multiply/Add + * MADDU [rd,] rs, rt Multiply/Add Unsigned + * MULT [rd,] rs, rt Multiply (3-operand) + * MULTU [rd,] rs, rt Multiply Unsigned (3-operand) + */ + +/* + * Multiply Instructions for Pipeline 1 (10 instructions) + * ------------------------------------------------------ + * MULT1 [rd,] rs, rt Multiply Pipeline 1 + * MULTU1 [rd,] rs, rt Multiply Unsigned Pipeline 1 + * DIV1 rs, rt Divide Pipeline 1 + * DIVU1 rs, rt Divide Unsigned Pipeline 1 + * MADD1 [rd,] rs, rt Multiply-Add Pipeline 1 + * MADDU1 [rd,] rs, rt Multiply-Add Unsigned Pipeline 1 + * MFHI1 rd Move From HI1 Register + * MFLO1 rd Move From LO1 Register + * MTHI1 rs Move To HI1 Register + * MTLO1 rs Move To LO1 Register + */ + static bool trans_MFHI1(DisasContext *ctx, arg_rtype *a) { gen_store_gpr(cpu_HI[1], a->rd); @@ -50,6 +90,154 @@ static bool trans_MTLO1(DisasContext *ctx, arg_rtype *a) return true; } =20 +/* + * Arithmetic (19 instructions) + * ---------------------------- + * PADDB rd, rs, rt Parallel Add Byte + * PSUBB rd, rs, rt Parallel Subtract Byte + * PADDH rd, rs, rt Parallel Add Halfword + * PSUBH rd, rs, rt Parallel Subtract Halfword + * PADDW rd, rs, rt Parallel Add Word + * PSUBW rd, rs, rt Parallel Subtract Word + * PADSBH rd, rs, rt Parallel Add/Subtract Halfword + * PADDSB rd, rs, rt Parallel Add with Signed Saturation Byte + * PSUBSB rd, rs, rt Parallel Subtract with Signed Saturation Byte + * PADDSH rd, rs, rt Parallel Add with Signed Saturation Halfword + * PSUBSH rd, rs, rt Parallel Subtract with Signed Saturation Half= word + * PADDSW rd, rs, rt Parallel Add with Signed Saturation Word + * PSUBSW rd, rs, rt Parallel Subtract with Signed Saturation Word + * PADDUB rd, rs, rt Parallel Add with Unsigned saturation Byte + * PSUBUB rd, rs, rt Parallel Subtract with Unsigned saturation By= te + * PADDUH rd, rs, rt Parallel Add with Unsigned saturation Halfword + * PSUBUH rd, rs, rt Parallel Subtract with Unsigned saturation Ha= lfword + * PADDUW rd, rs, rt Parallel Add with Unsigned saturation Word + * PSUBUW rd, rs, rt Parallel Subtract with Unsigned saturation Wo= rd + */ + +/* + * Min/Max (4 instructions) + * ------------------------ + * PMAXH rd, rs, rt Parallel Maximum Halfword + * PMINH rd, rs, rt Parallel Minimum Halfword + * PMAXW rd, rs, rt Parallel Maximum Word + * PMINW rd, rs, rt Parallel Minimum Word + */ + +/* + * Absolute (2 instructions) + * ------------------------- + * PABSH rd, rt Parallel Absolute Halfword + * PABSW rd, rt Parallel Absolute Word + */ + +/* + * Logical (4 instructions) + * ------------------------ + * PAND rd, rs, rt Parallel AND + * POR rd, rs, rt Parallel OR + * PXOR rd, rs, rt Parallel XOR + * PNOR rd, rs, rt Parallel NOR + */ + +/* + * Shift (9 instructions) + * ---------------------- + * PSLLH rd, rt, sa Parallel Shift Left Logical Halfword + * PSRLH rd, rt, sa Parallel Shift Right Logical Halfword + * PSRAH rd, rt, sa Parallel Shift Right Arithmetic Halfword + * PSLLW rd, rt, sa Parallel Shift Left Logical Word + * PSRLW rd, rt, sa Parallel Shift Right Logical Word + * PSRAW rd, rt, sa Parallel Shift Right Arithmetic Word + * PSLLVW rd, rt, rs Parallel Shift Left Logical Variable Word + * PSRLVW rd, rt, rs Parallel Shift Right Logical Variable Word + * PSRAVW rd, rt, rs Parallel Shift Right Arithmetic Variable Word + */ + +/* + * Compare (6 instructions) + * ------------------------ + * PCGTB rd, rs, rt Parallel Compare for Greater Than Byte + * PCEQB rd, rs, rt Parallel Compare for Equal Byte + * PCGTH rd, rs, rt Parallel Compare for Greater Than Halfword + * PCEQH rd, rs, rt Parallel Compare for Equal Halfword + * PCGTW rd, rs, rt Parallel Compare for Greater Than Word + * PCEQW rd, rs, rt Parallel Compare for Equal Word + */ + +/* + * LZC (1 instruction) + * ------------------- + * PLZCW rd, rs Parallel Leading Zero or One Count Word + */ + +/* + * Quadword Load and Store (2 instructions) + * ---------------------------------------- + * LQ rt, offset(base) Load Quadword + * SQ rt, offset(base) Store Quadword + */ + +/* + * Multiply and Divide (19 instructions) + * ------------------------------------- + * PMULTW rd, rs, rt Parallel Multiply Word + * PMULTUW rd, rs, rt Parallel Multiply Unsigned Word + * PDIVW rs, rt Parallel Divide Word + * PDIVUW rs, rt Parallel Divide Unsigned Word + * PMADDW rd, rs, rt Parallel Multiply-Add Word + * PMADDUW rd, rs, rt Parallel Multiply-Add Unsigned Word + * PMSUBW rd, rs, rt Parallel Multiply-Subtract Word + * PMULTH rd, rs, rt Parallel Multiply Halfword + * PMADDH rd, rs, rt Parallel Multiply-Add Halfword + * PMSUBH rd, rs, rt Parallel Multiply-Subtract Halfword + * PHMADH rd, rs, rt Parallel Horizontal Multiply-Add Halfword + * PHMSBH rd, rs, rt Parallel Horizontal Multiply-Subtract Halfword + * PDIVBW rs, rt Parallel Divide Broadcast Word + * PMFHI rd Parallel Move From HI Register + * PMFLO rd Parallel Move From LO Register + * PMTHI rs Parallel Move To HI Register + * PMTLO rs Parallel Move To LO Register + * PMFHL rd Parallel Move From HI/LO Register + * PMTHL rs Parallel Move To HI/LO Register + */ + +/* + * Pack/Extend (11 instructions) + * ----------------------------- + * PPAC5 rd, rt Parallel Pack to 5 bits + * PPACB rd, rs, rt Parallel Pack to Byte + * PPACH rd, rs, rt Parallel Pack to Halfword + * PPACW rd, rs, rt Parallel Pack to Word + * PEXT5 rd, rt Parallel Extend Upper from 5 bits + * PEXTUB rd, rs, rt Parallel Extend Upper from Byte + * PEXTLB rd, rs, rt Parallel Extend Lower from Byte + * PEXTUH rd, rs, rt Parallel Extend Upper from Halfword + * PEXTLH rd, rs, rt Parallel Extend Lower from Halfword + * PEXTUW rd, rs, rt Parallel Extend Upper from Word + * PEXTLW rd, rs, rt Parallel Extend Lower from Word + */ + +/* + * Others (16 instructions) + * ------------------------ + * PCPYH rd, rt Parallel Copy Halfword + * PCPYLD rd, rs, rt Parallel Copy Lower Doubleword + * PCPYUD rd, rs, rt Parallel Copy Upper Doubleword + * PREVH rd, rt Parallel Reverse Halfword + * PINTH rd, rs, rt Parallel Interleave Halfword + * PINTEH rd, rs, rt Parallel Interleave Even Halfword + * PEXEH rd, rt Parallel Exchange Even Halfword + * PEXCH rd, rt Parallel Exchange Center Halfword + * PEXEW rd, rt Parallel Exchange Even Word + * PEXCW rd, rt Parallel Exchange Center Word + * QFSRV rd, rs, rt Quadword Funnel Shift Right Variable + * MFSA rd Move from Shift Amount Register + * MTSA rs Move to Shift Amount Register + * MTSAB rs, immediate Move Byte Count to Shift Amount Register + * MTSAH rs, immediate Move Halfword Count to Shift Amount Register + * PROT3W rd, rt Parallel Rotate 3 Words + */ + /* Parallel Copy Halfword */ static bool trans_PCPYH(DisasContext *s, arg_rtype *a) { --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.50 as permitted sender) client-ip=209.85.218.50; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f50.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.50 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301863; cv=none; d=zohomail.com; s=zohoarc; b=jNFsXxsYGzqBOX6g2+qRLaySrHmkrUTg8X+R0GMblb1W86kyAcFHidJoMDRpzJhZILtwQ2HKzcES54BVJBvD68mkzDi9t+obu0eXRrCQZcna1iUerQ4zJdBF8l02fngbduCXUkXF+IzLT1Eh3j8iGFs8F5c08qQCL4EJm0I10UY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301863; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TwgQwLmGG/mKzezMqUo5xTCL6QtWDIfzWod0O/bvvc0=; b=MXzqZ20LYu35EOLzrIiGc8HMHM7YL3i9Rb8TdnUksXBlxxTDfEW7W/fb+Y2Dq7NxTew4QUwjOTN+GaRy9Afibcrwy5Y6FWWvKsYVqNc0a4dlfkX92pf9xqY9dUaX49v4eRu7ErWIRJAirKLPQZD0a9xbGQldOsjGzyqWC77To7Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.50 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) by mx.zohomail.com with SMTPS id 161530186313794.75271105513696; Tue, 9 Mar 2021 06:57:43 -0800 (PST) Received: by mail-ej1-f50.google.com with SMTP id mj10so28479840ejb.5 for ; Tue, 09 Mar 2021 06:57:42 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id lm24sm8434324ejb.53.2021.03.09.06.57.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TwgQwLmGG/mKzezMqUo5xTCL6QtWDIfzWod0O/bvvc0=; b=WRJGHAraZz/956MZm04rlx+qQWj574QMk7otkPBnwCURxg9Y/8crUF6Ic6JExS4qWC pxfxfYRDByC0DSKbTTTpRGPQMgE/kaiP7mtFAR/tTAllVC/ub2eG9GP2BkhaCeQ8IQNO ORWHm4qJGEPlMnSsnp1ZrovtpWhCGKQOykOcvxdrfH10k22OEnI1iJF6NzxzfnP8JXVV 8Cn9awCuQ+hkIpyUV7IaDHyDoZj+yykooZGeDDxkVHKQ1HB+uAFQAB0eq3Fp39SvBkDU lg+BRxLBK2u++i8XjjQcYSrwDymtq4b7aLxRnTadlSGmUhY5KfOyPRaicpN+iSlcwuCB lgqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=TwgQwLmGG/mKzezMqUo5xTCL6QtWDIfzWod0O/bvvc0=; b=UNdudTRVjEPLxftuuTPTjhum0SAv/3ltl6nZ++tKwwBdFQvLJl33jjgxukbogkJFHd dnFiuDw+zN8ejw7eGUczzj/vQtSpeb3Y+YIUl/0VngHyRWYsJALzMPUaAF4mDKMYL3OO JNYVH5MxXiyr5/wUYznhuvekZKo433M5kF9QQwfiynMZg6TVKU76zELjZ+aWuSVVCq5L aiEtWXiwAU3KkaeMbTECmZbkb9jNVa/sMgCxZi45goXVno4SUnEVe4b74MJ23P2Ssuca vGBPF9do1Nwf8E4QVaqQ/Glk1ciliK8GIezypzO6qnSSFFgJEOgQbO6otPSLukNLdpfE INvw== X-Gm-Message-State: AOAM533YxnUbBFJoEEXkBo0tOGa5hzuXf3yLG615pdSxnEgTC0vvSex0 8R3B890DyUwIambvSbV2tWg= X-Google-Smtp-Source: ABdhPJxex43BfXwlVFcOlwDqLstKQ815v1na1CO7LfA1lZZgynj4eqmUUCH4iKaTrDXrhzMxmaSORg== X-Received: by 2002:a17:906:73d5:: with SMTP id n21mr21270156ejl.8.1615301861353; Tue, 09 Mar 2021 06:57:41 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 09/22] target/mips/tx79: Introduce PAND/POR/PXOR/PNOR opcodes (parallel logic) Date: Tue, 9 Mar 2021 15:56:40 +0100 Message-Id: <20210309145653.743937-10-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the parallel logic opcodes: - PAND (Parallel AND) - POR (Parallel OR) - PXOR (Parallel XOR) - PNOR (Parallel NOR) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-16-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- v2: Use trans_parallel_arith (rth) --- target/mips/tx79.decode | 4 +++ target/mips/tx79_translate.c | 54 ++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index 0f748b53a64..26c80b9bce5 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -32,8 +32,12 @@ MTLO1 011100 ..... 0000000000 00000 010011 = @rs # MMI2 =20 PCPYLD 011100 ..... ..... ..... 01110 001001 @rs_rt_rd +PAND 011100 ..... ..... ..... 10010 001001 @rs_rt_rd +PXOR 011100 ..... ..... ..... 10011 001001 @rs_rt_rd =20 # MMI3 =20 PCPYUD 011100 ..... ..... ..... 01110 101001 @rs_rt_rd +POR 011100 ..... ..... ..... 10010 101001 @rs_rt_rd +PNOR 011100 ..... ..... ..... 10011 101001 @rs_rt_rd PCPYH 011100 00000 ..... ..... 11011 101001 @rt_rd diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index ad83774b977..00364f10d47 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -2,6 +2,7 @@ * Toshiba TX79-specific instructions translation routines * * Copyright (c) 2018 Fredrik Noring + * Copyright (c) 2021 Philippe Mathieu-Daud=C3=A9 * * SPDX-License-Identifier: GPL-2.0-or-later */ @@ -114,6 +115,35 @@ static bool trans_MTLO1(DisasContext *ctx, arg_rtype *= a) * PSUBUW rd, rs, rt Parallel Subtract with Unsigned saturation Wo= rd */ =20 +static bool trans_parallel_arith(DisasContext *ctx, arg_rtype *a, + void (*gen_logic_i64)(TCGv_i64, TCGv_i64,= TCGv_i64)) +{ + TCGv_i64 ax, bx; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + ax =3D tcg_temp_new_i64(); + bx =3D tcg_temp_new_i64(); + + /* Lower half */ + gen_load_gpr(ax, a->rs); + gen_load_gpr(bx, a->rt); + gen_logic_i64(cpu_gpr[a->rd], ax, bx); + + /* Upper half */ + gen_load_gpr_hi(ax, a->rs); + gen_load_gpr_hi(bx, a->rt); + gen_logic_i64(cpu_gpr_hi[a->rd], ax, bx); + + tcg_temp_free(bx); + tcg_temp_free(ax); + + return true; +} + /* * Min/Max (4 instructions) * ------------------------ @@ -139,6 +169,30 @@ static bool trans_MTLO1(DisasContext *ctx, arg_rtype *= a) * PNOR rd, rs, rt Parallel NOR */ =20 +/* Parallel And */ +static bool trans_PAND(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_and_i64); +} + +/* Parallel Or */ +static bool trans_POR(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_or_i64); +} + +/* Parallel Exclusive Or */ +static bool trans_PXOR(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_xor_i64); +} + +/* Parallel Not Or */ +static bool trans_PNOR(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_nor_i64); +} + /* * Shift (9 instructions) * ---------------------- --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) client-ip=209.85.218.54; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f54.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301868; cv=none; d=zohomail.com; s=zohoarc; b=V9JoY+kKdh7JexCGQOjF8U+5elTifo+KzAJqZsf4Bduv0sTwnhBAkAX5gVnbxZqHgBFeUB9K/VUNX8GHSKZryKoout/eG7gkRtgR6LPoaEABxR80yO+aSlJYcsYyc0wuTjXdzNMkL07laBQ8CDecVi4vX3s9YJ6iPtG6YvWXads= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301868; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=B4jnrnWCbwEDPd6F+heQm5VZrEK8h7r64BqI+CzIkH4=; b=abW5+EdyxUuYI4rOPsuLH+ZTWDzVClh1C8fW4DbZrY2HT1OscibQ7iIZ/gNTOXfX1yLkzh7bJkWKH7gO/bsTjejBwUbPlxMfAikMumiwyGpmmrhF326/hPG2lgXOol6tfhZgDmWjU6DXlBxPYmvcBKqkWT65bzQ1E6rMx72jExo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) by mx.zohomail.com with SMTPS id 1615301868328808.5801893857451; Tue, 9 Mar 2021 06:57:48 -0800 (PST) Received: by mail-ej1-f54.google.com with SMTP id ox4so12869832ejb.11 for ; Tue, 09 Mar 2021 06:57:47 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id f3sm8648351ejd.42.2021.03.09.06.57.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=B4jnrnWCbwEDPd6F+heQm5VZrEK8h7r64BqI+CzIkH4=; b=gPdyh+avMoxRy586FFNUirY4PrN7BW6Ksf9c+SYbMw1t9XobUAlvo0MZzLIB3lIW7C 0JseDMSOZh6fl43mjaZspxyhTxxlpZ1gWE4mTtLe7Q3pmSv1nEbVd/VhuyqhG1dgpSE7 Ih++NGzCDvIFD1P43OKTVGeytTI8MVRlG2Bwhbj7eKxW8tLIIik8jcU3JPSMjBa2AGC4 XR+RhwzqZybw8caufgtnhIgBjCC+PfC+gjy6OyBGnHcFuGfDEiIeBkSO6M3TciaML/KE CepkrKQqPXzzNnNFJcGl0TN84rvE3qusKtQE4qVtOXWLH10GiNmI3V9TFLca0eYDN2s7 O3oQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=B4jnrnWCbwEDPd6F+heQm5VZrEK8h7r64BqI+CzIkH4=; b=Jb6YnWSelrQhE5P5bQXyXBaDSAWsC1nQByIj7sipxfefIFJoYbmCq72X7XNbDSuQ9c Lc2Lv5Xn2SQXDVbj1Dq8RYGjU6U9jJtUSeb7d+KRjyqu7JmlrmLeOCLfzLZjZY8LKlIC Ld8+b3PRMi4YPf4V2rpid/grRaDVNKbLyOfpDyE19haR/CTNzQjjSn/139XUS8nfUuur 7UC8wTRRokaYfKECYN73QGn3Op81RtoMq8qA63TSWSnZ+ksnZZgTFHGb6O8V/y69NPKt GzKRerpkubnYO4clEIv63786hopTjjZOOpAkjHM8NIow2cqPH9Os9vMvGVw7w4RO1RHb Zcmg== X-Gm-Message-State: AOAM530EN8AsSxmjgDm9Qtt45S9D8G1ayjok4BrJfgCuAJYt/q693fgi H9YkBJQeKV2Lkqf0wBf2ZUI= X-Google-Smtp-Source: ABdhPJy8wj+XWW/il8WqozFQpHNRNjqO4KwKo38LM6o//v//4WKn0F6CsCCOfxcVwF+HT8/PT0r9mQ== X-Received: by 2002:a17:906:2551:: with SMTP id j17mr20745126ejb.441.1615301866533; Tue, 09 Mar 2021 06:57:46 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 10/22] target/mips/tx79: Introduce PSUB* opcodes (Parallel Subtract) Date: Tue, 9 Mar 2021 15:56:41 +0100 Message-Id: <20210309145653.743937-11-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the 'Parallel Subtract' opcodes: - PSUBB (Parallel Subtract Byte) - PSUBH (Parallel Subtract Halfword) - PSUBW (Parallel Subtract Word) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- v2: Uses tcg_gen_vec_sub{8,16,32}_i64 from tcg/tcg-op-gvec.h (rth) --- target/mips/tx79.decode | 6 ++++++ target/mips/tx79_translate.c | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index 26c80b9bce5..d1c07c7d901 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -29,6 +29,12 @@ MTHI1 011100 ..... 0000000000 00000 010001 = @rs MFLO1 011100 0000000000 ..... 00000 010010 @rd MTLO1 011100 ..... 0000000000 00000 010011 @rs =20 +# MMI0 + +PSUBW 011100 ..... ..... ..... 00001 001000 @rs_rt_rd +PSUBH 011100 ..... ..... ..... 00101 001000 @rs_rt_rd +PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd + # MMI2 =20 PCPYLD 011100 ..... ..... ..... 01110 001001 @rs_rt_rd diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index 00364f10d47..3abd1d92e70 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -9,6 +9,7 @@ =20 #include "qemu/osdep.h" #include "tcg/tcg-op.h" +#include "tcg/tcg-op-gvec.h" #include "exec/helper-gen.h" #include "translate.h" =20 @@ -144,6 +145,24 @@ static bool trans_parallel_arith(DisasContext *ctx, ar= g_rtype *a, return true; } =20 +/* Parallel Subtract Byte */ +static bool trans_PSUBB(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_vec_sub8_i64); +} + +/* Parallel Subtract Halfword */ +static bool trans_PSUBH(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_vec_sub16_i64); +} + +/* Parallel Subtract Word */ +static bool trans_PSUBW(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_vec_sub32_i64); +} + /* * Min/Max (4 instructions) * ------------------------ --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.51 as permitted sender) client-ip=209.85.218.51; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f51.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301873; cv=none; d=zohomail.com; s=zohoarc; b=FpcLXjPA7icGS0h/FWAz/i0kK7RgkT7nBa00Aei7/HY6+WZ4WmrlfhXRoLNntdlWvVz+VFtP95f7oDzturTWt3yRxxYHEBhd9EcoMzSm5m/OrXNKjXe02Y5cOH2vfsOH0f47posFCLNzR6v9sgDojUo48GyaGQwyN3np2fiTfXE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301873; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=AyXaAlW3PTOTDKw2GCNaV+r2g9IJNYZ9Fp9SJUdZdB8=; b=f6paSkjP143WiOc2fvV6uF03LdnMR6A9gg9N3ftCkDHt5NBUVFHMaPAXUfMq3dqaJ8gM75aCPdiHal9JrUekwNNkDb+spWNr8ujLrHYkDUN35J1147iLxTdkzTX9Gd/G7JuiWHV+u52Eu1HSaldhdfJTU6wuUtHGUt4tmVEgBLc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by mx.zohomail.com with SMTPS id 16153018734791022.726981530861; Tue, 9 Mar 2021 06:57:53 -0800 (PST) Received: by mail-ej1-f51.google.com with SMTP id ci14so28397655ejc.7 for ; Tue, 09 Mar 2021 06:57:52 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id o6sm9358367edw.24.2021.03.09.06.57.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=AyXaAlW3PTOTDKw2GCNaV+r2g9IJNYZ9Fp9SJUdZdB8=; b=eS/JfQTwQFEYsErx+QXovFKx0SEbTF4vlfIoHwbjl8QPWzc0p5bpeURqgV/Wq2BuXE 2rjz3g0xKf9n+e9FnYKLKlMHLk8cFoOddtDLkClKjsPckBk3Jq0czhHHlmqBT3KLQz81 LkxsKpj/B3YKBhw3zwr1AyLSC+xcZrYcasOdp2xpMal5J1oQkX7hMQj0tf0fJ94WlvGa t+r4dp3YqGURTO+Qhw/L1jhtgiXAhmFeVR6g8xVqSkMMbECUdDS5viWFTWkqcwvDaOjr IckH4v4fv90RD1PPDTs31Jxe4Z/lpryLL1IL40oHefLPsIBper6msawOrc/tpJwX8hwH ZTOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=AyXaAlW3PTOTDKw2GCNaV+r2g9IJNYZ9Fp9SJUdZdB8=; b=eJKWKFL70+lraYWbWjSsd7O29AGMoQXms8QCYEiFk7R1eXdyry8+Vyn/Pijh/ZAQll 4HMNkkhD2ZqLzG9RH7v+/aozWxMz3dBsKvAk5DwmTnsHPL7//jUA08HAWarklKQ2xiTj VvY8Mi2lnm+OOU4JqNQD9PPdXHqftyXFM9G6yqw79o5cBwh0NNPwhx8Lr7SJdxjPWEQP p5qaPs7YEIF3SJwheUfKYRWQ5tO0P9OMlkVfQQBU/CZGLgRL/0bd7i+Siw13ch/RI+40 kgFXRkJVJR6JreRmzjEyUgaADmYmnsi9uGNuP0zGdQBRfJgaA65l4TRD3mbrKb2WaOrb Qthw== X-Gm-Message-State: AOAM530l6ATfLglB49ikI9mBu9bWwDqh9TuzXJgxjh7z/tSuI9QECF4i zXy1kmt3vXiJhEC5UN9d35s= X-Google-Smtp-Source: ABdhPJyfFZptmwXJD7Fz5ZIThFG9ZTOPVGkdxj/AxCrD4JzD3LMHPi8e8oO8Nh30LcAOvavOKGedUA== X-Received: by 2002:a17:906:11d1:: with SMTP id o17mr20713843eja.517.1615301871645; Tue, 09 Mar 2021 06:57:51 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 11/22] target/mips/tx79: Introduce PEXTUW (Parallel Extend Upper from Word) Date: Tue, 9 Mar 2021 15:56:42 +0100 Message-Id: <20210309145653.743937-12-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the PEXTUW opcode (Parallel Extend Upper from Word). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- v2: Introduce gen_pextw (rth) --- target/mips/tx79.decode | 4 ++++ target/mips/tx79_translate.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index d1c07c7d901..ead5f8281e5 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -35,6 +35,10 @@ PSUBW 011100 ..... ..... ..... 00001 001000 = @rs_rt_rd PSUBH 011100 ..... ..... ..... 00101 001000 @rs_rt_rd PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd =20 +# MMI1 + +PEXTUW 011100 ..... ..... ..... 10010 101000 @rs_rt_rd + # MMI2 =20 PCPYLD 011100 ..... ..... ..... 01110 001001 @rs_rt_rd diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index 3abd1d92e70..68c56affc4c 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -290,6 +290,36 @@ static bool trans_PNOR(DisasContext *ctx, arg_rtype *a) * PEXTLW rd, rs, rt Parallel Extend Lower from Word */ =20 +static void gen_pextw(TCGv_i64 dl, TCGv_i64 dh, TCGv_i64 a, TCGv_i64 b) +{ + tcg_gen_deposit_i64(dl, b, a, 32, 32); + tcg_gen_shri_i64(b, b, 32); + tcg_gen_deposit_i64(dh, a, b, 0, 32); +} + +/* Parallel Extend Upper from Word */ +static bool trans_PEXTUW(DisasContext *ctx, arg_rtype *a) +{ + TCGv_i64 ax, bx; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + ax =3D tcg_temp_new_i64(); + bx =3D tcg_temp_new_i64(); + + gen_load_gpr_hi(ax, a->rs); + gen_load_gpr_hi(bx, a->rt); + gen_pextw(cpu_gpr[a->rd], cpu_gpr_hi[a->rd], ax, bx); + + tcg_temp_free(bx); + tcg_temp_free(ax); + + return true; +} + /* * Others (16 instructions) * ------------------------ --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.42 as permitted sender) client-ip=209.85.218.42; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f42.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301878; cv=none; d=zohomail.com; s=zohoarc; b=FiI54HvASVbnNiXpW735msbK1QKagoH1Zt4ZBthLmkXsirT6JZ/06ZL1XZPngmBjPr0ILOmPZ4WI5LdDHc5OngRYKXR70YXGPd8X1qPvI94gShSOVetXDitrgCW48+2J2Mti5TmydiXGaHgunClCbl+j/v234izTjek6u45pdQY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301878; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=QOhpnrF1XVp829jjkXzuMvSRqzxbno4iUbDwXPyc+ek=; b=ISxslh5RhfTNHFL1/Qr0khZXVa/i3Vegh5acaNEXbxQcjg89bbsTAqn2ADisErrZx2hYfoYxuGphs467B6ob3WPmsQ2WwCc2fZX+SfBJsN/yi5ELJh1NuautRBD8AyVGlcEtbVqZMx22//1vAcVJXZXEo3JQ0whrmBYb0Midsa0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by mx.zohomail.com with SMTPS id 1615301878889563.5275019638747; Tue, 9 Mar 2021 06:57:58 -0800 (PST) Received: by mail-ej1-f42.google.com with SMTP id mm21so28413671ejb.12 for ; Tue, 09 Mar 2021 06:57:58 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id h13sm9439857edz.71.2021.03.09.06.57.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:57:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QOhpnrF1XVp829jjkXzuMvSRqzxbno4iUbDwXPyc+ek=; b=Shb2d8hHigh3WWhJYFupMaJyEc/gJhOFAwJBM95zIzFnq5ElK3hNkrXsnhcfmb5eky /oHYwVb6SmjUwV/ScC0ei+SF8Pt1coCZpLW9fkmbBZ3Ctu3TjSGiKV23Qma0vE5tFPCe qRywlV7OVuhMdy1yWtbnHAVExLlED7RI3h0gwnLFrC0b967CT3q72O2SwqngJwPxkUs9 dbmKyimXw+SaSBMPHzpQFVhMvo2JVXRRGv1GVUQ0rtL4MPL7cW8G14SlqsGmGgoR4BOz 23Me0TvUAKLjoZG+Isc5F0YPLo1r/sMbMUG1PNhe3Dk20S8QOykyTPwW+FqbXqppz2TE GFlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=QOhpnrF1XVp829jjkXzuMvSRqzxbno4iUbDwXPyc+ek=; b=RBvD3AIbGlVbO4mVub5AHJYE2UfTK7tWMm9c7jqiPSzxnbjE20wuY7yY+wj2sgVOog rYJkHPuqmfdVCahGM/+yMZ/zacsgso88iaOS60tYYXTs+2Zee0J2Mr9wFJ8fs9qp4Oc4 sZdws7qIPHyKNOWTsV6UPwiqKvpSJQIG2Ye3WfmrlbDAsF1429rNcWC8PiWp/cHAB7UY zpcEqy8f+lMY6GP0gsxTky7a9GNtYdiWf/Q9bExP9Jk7wPyf6auezKwYq1Msum58Dh7g IRJE3Sc7G06NQIlH/Y7byThgn3RXgvcBG4Y3VQcID+355noaGMP/oKivR8LJEXKau8ky ATWw== X-Gm-Message-State: AOAM530Hxf5+OZ0HtRy4P5iIz77NwQNOZ89LzUC0aJ61fkgydMvunoK3 OY2yuIB1emcpl4jmIOVdw6U= X-Google-Smtp-Source: ABdhPJx8ElgFvDx5JTD22RjDIhPfyrPzWW193uAHMGJGiVzOZdGTp8otaPdyty/nlwD2lirVWZJFGQ== X-Received: by 2002:a17:906:add7:: with SMTP id lb23mr20596390ejb.273.1615301876888; Tue, 09 Mar 2021 06:57:56 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 12/22] target/mips/tx79: Introduce PEXTL[BHW] opcodes (Parallel Extend Lower) Date: Tue, 9 Mar 2021 15:56:43 +0100 Message-Id: <20210309145653.743937-13-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the 'Parallel Extend Lower' opcodes: - PEXTLB (Parallel Extend Upper from Byte) - PEXTLH (Parallel Extend Upper from Halfword) - PEXTLW (Parallel Extend Upper from Word) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- v2: Uses gen_pextw, still unoptimized, see: https://www.mail-archive.com/qemu-devel@nongnu.org/msg782796.html --- target/mips/tx79.decode | 3 ++ target/mips/tx79_translate.c | 75 ++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index ead5f8281e5..98f21d33e3f 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -34,6 +34,9 @@ MTLO1 011100 ..... 0000000000 00000 010011 @= rs PSUBW 011100 ..... ..... ..... 00001 001000 @rs_rt_rd PSUBH 011100 ..... ..... ..... 00101 001000 @rs_rt_rd PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd +PEXTLW 011100 ..... ..... ..... 10010 001000 @rs_rt_rd +PEXTLH 011100 ..... ..... ..... 10110 001000 @rs_rt_rd +PEXTLB 011100 ..... ..... ..... 11010 001000 @rs_rt_rd =20 # MMI1 =20 diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index 68c56affc4c..c4656a4c21d 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -297,6 +297,81 @@ static void gen_pextw(TCGv_i64 dl, TCGv_i64 dh, TCGv_i= 64 a, TCGv_i64 b) tcg_gen_deposit_i64(dh, a, b, 0, 32); } =20 +static bool trans_PEXTLx(DisasContext *ctx, arg_rtype *a, unsigned wlen) +{ + TCGv_i64 ax, bx; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + ax =3D tcg_temp_new_i64(); + bx =3D tcg_temp_new_i64(); + + gen_load_gpr(ax, a->rs); + gen_load_gpr(bx, a->rt); + + /* Lower half */ + for (int i =3D 0; i < 64 / (2 * wlen); i++) { + tcg_gen_deposit_i64(cpu_gpr[a->rd], + cpu_gpr[a->rd], bx, 2 * wlen * i, wlen); + tcg_gen_deposit_i64(cpu_gpr[a->rd], + cpu_gpr[a->rd], ax, 2 * wlen * i + wlen, wlen); + tcg_gen_shri_i64(bx, bx, wlen); + tcg_gen_shri_i64(ax, ax, wlen); + } + /* Upper half */ + for (int i =3D 0; i < 64 / (2 * wlen); i++) { + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], + cpu_gpr_hi[a->rd], bx, 2 * wlen * i, wlen); + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], + cpu_gpr_hi[a->rd], ax, 2 * wlen * i + wlen, wl= en); + tcg_gen_shri_i64(bx, bx, wlen); + tcg_gen_shri_i64(ax, ax, wlen); + } + + tcg_temp_free(bx); + tcg_temp_free(ax); + + return true; +} + +/* Parallel Extend Lower from Byte */ +static bool trans_PEXTLB(DisasContext *ctx, arg_rtype *a) +{ + return trans_PEXTLx(ctx, a, 8); +} + +/* Parallel Extend Lower from Halfword */ +static bool trans_PEXTLH(DisasContext *ctx, arg_rtype *a) +{ + return trans_PEXTLx(ctx, a, 16); +} + +/* Parallel Extend Lower from Word */ +static bool trans_PEXTLW(DisasContext *ctx, arg_rtype *a) +{ + TCGv_i64 ax, bx; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + ax =3D tcg_temp_new_i64(); + bx =3D tcg_temp_new_i64(); + + gen_load_gpr(ax, a->rs); + gen_load_gpr(bx, a->rt); + gen_pextw(cpu_gpr[a->rd], cpu_gpr_hi[a->rd], ax, bx); + + tcg_temp_free(bx); + tcg_temp_free(ax); + + return true; +} + /* Parallel Extend Upper from Word */ static bool trans_PEXTUW(DisasContext *ctx, arg_rtype *a) { --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.51 as permitted sender) client-ip=209.85.218.51; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f51.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301883; cv=none; d=zohomail.com; s=zohoarc; b=ZC8gI7d2NgS6kJPO41eFRsLyNR9SVrJ+FQl4r+XdioEeF6ewoxZKULU0462E3NU4LOygu490g/G67piMPHvZBVMIfmDuZ+spmfKBIdhwm9wBaFecqSEHqxuwbMx2FFtEIhf9uE+Q+l3k8UsX2zcNU3xIxoOiGxo1sXYYGw8e780= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301883; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KiD91N4cl6AAk7p2Aqg/9eZRSUZMrKmMXWieEDLSTqc=; b=VpMXbMAeTS7Qvr77rs8r+kTLxQ/SiftZCnUalMpjKyk06M+PQMSsHpXHizfTQ3bWlqwXChq7+9cMZtepHhM+s7zpHqy34aB/Y/SMWnvOvLMoL4Jm1YxKmDU6MPK+hcP1GV5DJ5qTAkDknqLWUF+W0gMb1u5T9Rj0maqVxSaSlnc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by mx.zohomail.com with SMTPS id 161530188369662.73726802449153; Tue, 9 Mar 2021 06:58:03 -0800 (PST) Received: by mail-ej1-f51.google.com with SMTP id p8so28464449ejb.10 for ; Tue, 09 Mar 2021 06:58:03 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id x10sm8140987ejd.69.2021.03.09.06.58.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:58:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KiD91N4cl6AAk7p2Aqg/9eZRSUZMrKmMXWieEDLSTqc=; b=Zf7zMLnzlnsv5rXxnmr6uxlSgseGSfmpGk0vLcH832Fvp+vVyhjLym1WCgNBGXQV0U TuQk5sIqUShtnAMu1rWvxsbGh4TYwUuM7TO94XOBuQW51odf4jwGoOrPgzxl8w3w1zRn aa3oKWZ2CRDBdIXsaBXhg/f3dpbOeABZt8c/CUYUzus+VwUllyjWx3kx0ozbA3gWU8pl ETHw8g9ZPGK/ACBkqKjcNqOkiY9dJDUD3/jUDgU0FPuhNvLrEXgVwOpd0CkIAH7zW1y7 yfs9AAKqb+XBN6WRbPezEljszRqih547EOVXa5lTualyQjrDz8KuwjsAfuF5C7eMSkFy lRCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=KiD91N4cl6AAk7p2Aqg/9eZRSUZMrKmMXWieEDLSTqc=; b=MurG7tqRtaZS5EK4WGPG/muvpdqivPEJo/+OXh+rQgnTRR3PLwPitMy10I8g1sjHzT F4IDIvik+Vve2ZrZMrHf6MipKNnXd8LpKiTp4mM3TLFob0mUPR7FXgJspw6ipyFbvisF 5eWIyDdhqXd7D+lRcGtOItcnr+mDnlUPmd4H6ldqdjtuvi7852BinXe/VJSCB9CChpn2 D0tJeUFLT9UgG0p4MRglWtIFK1QZL/NQ9RaQTkzYGNlcp9YULZ2yolY7YlQd1G+1zN8M J6ChkLR+TLDxZPr3cHIWGeEIDrHvcj7wnd1heHkECBLRjX8KD29dZEBkxgT8XI+/eRec B7cA== X-Gm-Message-State: AOAM532x2HeEGf2fl1OZb/OQD6PgD+L2XAbzlQ0YC6lw4FzMJduu6h/b pOFeILkiT9cnaQV/Z6558Kw= X-Google-Smtp-Source: ABdhPJzz4mdBv5zMzUr8MNeHkIvxTo88KHklY1+rOrUICV3+FhheXKVEvl3w0WDEHYHjFmmHllKgcQ== X-Received: by 2002:a17:906:1a44:: with SMTP id j4mr21107824ejf.401.1615301881930; Tue, 09 Mar 2021 06:58:01 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 13/22] target/mips/tx79: Introduce PCEQ* opcodes (Parallel Compare for Equal) Date: Tue, 9 Mar 2021 15:56:44 +0100 Message-Id: <20210309145653.743937-14-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the 'Parallel Compare for Equal' opcodes: - PCEQB (Parallel Compare for Equal Byte) - PCEQH (Parallel Compare for Equal Halfword) - PCEQW (Parallel Compare for Equal Word) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- v2: unoptimized, see: https://www.mail-archive.com/qemu-devel@nongnu.org/msg782827.html --- target/mips/tx79.decode | 3 ++ target/mips/tx79_translate.c | 66 ++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index 98f21d33e3f..cfe721755ca 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -40,6 +40,9 @@ PEXTLB 011100 ..... ..... ..... 11010 001000 @= rs_rt_rd =20 # MMI1 =20 +PCEQW 011100 ..... ..... ..... 00010 101000 @rs_rt_rd +PCEQH 011100 ..... ..... ..... 00110 101000 @rs_rt_rd +PCEQB 011100 ..... ..... ..... 01010 101000 @rs_rt_rd PEXTUW 011100 ..... ..... ..... 10010 101000 @rs_rt_rd =20 # MMI2 diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index c4656a4c21d..8dd510c2719 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -237,6 +237,72 @@ static bool trans_PNOR(DisasContext *ctx, arg_rtype *a) * PCEQW rd, rs, rt Parallel Compare for Equal Word */ =20 +static bool trans_parallel_compare(DisasContext *ctx, arg_rtype *a, + TCGCond cond, unsigned wlen) +{ + TCGv_i64 c0, c1, ax, bx, t0, t1, t2; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + c0 =3D tcg_const_tl(0); + c1 =3D tcg_const_tl(0xffffffff); + ax =3D tcg_temp_new_i64(); + bx =3D tcg_temp_new_i64(); + t0 =3D tcg_temp_new_i64(); + t1 =3D tcg_temp_new_i64(); + t2 =3D tcg_temp_new_i64(); + + /* Lower half */ + gen_load_gpr(ax, a->rs); + gen_load_gpr(bx, a->rt); + for (int i =3D 0; i < (64 / wlen); i++) { + tcg_gen_sextract_i64(t0, ax, wlen * i, wlen); + tcg_gen_sextract_i64(t1, bx, wlen * i, wlen); + tcg_gen_movcond_i64(cond, t2, t1, t0, c1, c0); + tcg_gen_deposit_i64(cpu_gpr[a->rd], cpu_gpr[a->rd], t2, wlen * i, = wlen); + } + /* Upper half */ + gen_load_gpr_hi(ax, a->rs); + gen_load_gpr_hi(bx, a->rt); + for (int i =3D 0; i < (64 / wlen); i++) { + tcg_gen_sextract_i64(t0, ax, wlen * i, wlen); + tcg_gen_sextract_i64(t1, bx, wlen * i, wlen); + tcg_gen_movcond_i64(cond, t2, t1, t0, c1, c0); + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], cpu_gpr_hi[a->rd], t2, wlen= * i, wlen); + } + + tcg_temp_free(t2); + tcg_temp_free(t1); + tcg_temp_free(t0); + tcg_temp_free(bx); + tcg_temp_free(ax); + tcg_temp_free(c1); + tcg_temp_free(c0); + + return true; +} + +/* Parallel Compare for Equal Byte */ +static bool trans_PCEQB(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_EQ, 8); +} + +/* Parallel Compare for Equal Halfword */ +static bool trans_PCEQH(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_EQ, 16); +} + +/* Parallel Compare for Equal Word */ +static bool trans_PCEQW(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_EQ, 32); +} + /* * LZC (1 instruction) * ------------------- --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.41 as permitted sender) client-ip=209.85.218.41; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f41.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301888; cv=none; d=zohomail.com; s=zohoarc; b=QFCQ0/Euds84AsJiUycsxj8UyHcSySE8rF97/dahF2VPmjtdh0K98nH/T4XHxeId4bqNvn8Y+hBvZflRD5+rLIFCwuVkoZiZ7z4vS/IOVV+cLrof9N/K+s4Koot/S1efPtjLE+SYjc0aNCSURrSeYKVYzKQiKE2TZXOpvIWKlcA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301888; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ojzk+UxSXUhcgOZdi1Uf7LIU+cGA5mYtHqo7d+CsWTY=; b=LTmW+N62+c2knoyYDfH1110EPZXVzz/wJn6j67dxxVTdMZJmrDborb6nf7r59Po8zdLFXOH9vcKyPB1rnsSnHf276cMXg/AJaHQuTT7EUhoZE1O8POsUPjAe8Ae2SlBC4sOUNxAFfxzPIw5tZjvCoY8HuoOZGa2jizaXLIFsF6c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by mx.zohomail.com with SMTPS id 1615301888798647.5067218948657; Tue, 9 Mar 2021 06:58:08 -0800 (PST) Received: by mail-ej1-f41.google.com with SMTP id c10so28423907ejx.9 for ; Tue, 09 Mar 2021 06:58:08 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id a26sm10120226edm.15.2021.03.09.06.58.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:58:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ojzk+UxSXUhcgOZdi1Uf7LIU+cGA5mYtHqo7d+CsWTY=; b=KnAaUUH71gOXJL/zitcQflMHbqrUPrumv4DKfTbSx+vBIXV/ZFARk/SsTBfvMOvqT0 dxtMEgF+B6O8/NnrK3my8s5yg99+z1oFN1v/XdVtI+1SwVE9j6ynQFGEFEq4cSbyyzdH pVNYCgF5JgxDp/wsnDvugXSKGvKNM9iMwwO7nBrW9zT1uMO0l/hSAAx2NhewhS1klIla gyBLQrNa8jmhoS+WUOPs02MjtjIH6loEJTUpzQ33jCPlBNkbJnEfXNlADHN49jL2zpMt HzmPnw9eqrva9ZWKxQbeCjF9HtDPT4ykQ7nIS45wmepu+eCEuKLM7wyIb20T+5bcS9Fu iKEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ojzk+UxSXUhcgOZdi1Uf7LIU+cGA5mYtHqo7d+CsWTY=; b=reM3bj/dHtwtuADO8F+HDnXwYBhk/QXtY4bk5P0Y4Qc4JIjObeYLPetGsXVmp5dZpX l4N4EFLppejSV3fydV9BEWg/3eJUk7VkEz17r+ZSke0TQHafDSS+Vk7P83Pu8SlOir+M uh0/i/pP5gefq7HQu1Lrb0PHXHXzs8BTVAlBentUv3Nr8E+xzM8w+NC/DOAWt4+4HI7U MPt7T30JTH7KnwQj2jxt5YVHiwSjNuVRgFAXJAuOg3iKRSh5/2jXd9Cu04GIe5Tko/Fy pZ5CJL9nVurD68Mh6ecO0PRLQ1U6Dhkd9t3BEZOUC3tPh40vtSjRKlW1sqOOimO+pN8M 2bpw== X-Gm-Message-State: AOAM532NimdqFjzM8dT55btQ1YNJwONRmdOuZvinldWogkqVkqe+oVFB Ow3Dz8ziygVrVT+DhMgxiM8= X-Google-Smtp-Source: ABdhPJwBGxPTRPbcYvNTnWf8f3FmrCm5XzX4DMdt0g2lsxSiSuSNawLz3rdAi1YZO8tG6BKJcaZQ4Q== X-Received: by 2002:a17:906:b6cc:: with SMTP id ec12mr20614724ejb.520.1615301886997; Tue, 09 Mar 2021 06:58:06 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 14/22] target/mips/tx79: Introduce PCGT* (Parallel Compare for Greater Than) Date: Tue, 9 Mar 2021 15:56:45 +0100 Message-Id: <20210309145653.743937-15-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the 'Parallel Compare for Greater Than' opcodes: - PCGTB (Parallel Compare for Greater Than Byte) - PCGTH (Parallel Compare for Greater Than Halfword) - PCGTW (Parallel Compare for Greater Than Word) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210214175912.732946-21-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/mips/tx79.decode | 3 +++ target/mips/tx79_translate.c | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index cfe721755ca..63fbe9694bb 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -32,8 +32,11 @@ MTLO1 011100 ..... 0000000000 00000 010011 = @rs # MMI0 =20 PSUBW 011100 ..... ..... ..... 00001 001000 @rs_rt_rd +PCGTW 011100 ..... ..... ..... 00010 001000 @rs_rt_rd PSUBH 011100 ..... ..... ..... 00101 001000 @rs_rt_rd +PCGTH 011100 ..... ..... ..... 00110 001000 @rs_rt_rd PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd +PCGTB 011100 ..... ..... ..... 01010 001000 @rs_rt_rd PEXTLW 011100 ..... ..... ..... 10010 001000 @rs_rt_rd PEXTLH 011100 ..... ..... ..... 10110 001000 @rs_rt_rd PEXTLB 011100 ..... ..... ..... 11010 001000 @rs_rt_rd diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index 8dd510c2719..f0e3d8c0b66 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -285,18 +285,36 @@ static bool trans_parallel_compare(DisasContext *ctx,= arg_rtype *a, return true; } =20 +/* Parallel Compare for Greater Than Byte */ +static bool trans_PCGTB(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_GE, 8); +} + /* Parallel Compare for Equal Byte */ static bool trans_PCEQB(DisasContext *ctx, arg_rtype *a) { return trans_parallel_compare(ctx, a, TCG_COND_EQ, 8); } =20 +/* Parallel Compare for Greater Than Halfword */ +static bool trans_PCGTH(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_GE, 16); +} + /* Parallel Compare for Equal Halfword */ static bool trans_PCEQH(DisasContext *ctx, arg_rtype *a) { return trans_parallel_compare(ctx, a, TCG_COND_EQ, 16); } =20 +/* Parallel Compare for Greater Than Word */ +static bool trans_PCGTW(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_GE, 32); +} + /* Parallel Compare for Equal Word */ static bool trans_PCEQW(DisasContext *ctx, arg_rtype *a) { --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.54 as permitted sender) client-ip=209.85.208.54; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f54.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1615301893; cv=none; d=zohomail.com; s=zohoarc; b=fKZLjIljKVfT5a3cGyJGVDp+WvnGsOaAPSzOoWduOFpqKCPPAchUlw8WCzIDhDqNL0JFq67UabTA7fheVb0sntnF43/DMfB8fRxfKWIcvpIcSoLgcMSNPGa+ONXixPlPPLcvECM0UXnynTEiALZREPYVoHblcBW5jDsaMDlQU08= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301893; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EFev0xpBsV5H5TKF4K6fxj2ixqQb9yQhNMoCl0p0/v8=; b=dbDXzdzdbiPe6qvRq0dN2Wfj3pfOP+2rNBSmSZClTz68mwRfIseesAMfkMjaqncS09sFQhrl2Qjp608UPPaol2LHPbnl61iefaLh1e61QMRDxQWUGkFnKWGEAPNeTloFuSVxPDXRsjbw7J5iYXW85y2BuU5fCyNJu1zmoRpIH+A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by mx.zohomail.com with SMTPS id 16153018938841011.0788751573217; Tue, 9 Mar 2021 06:58:13 -0800 (PST) Received: by mail-ed1-f54.google.com with SMTP id bd6so20664627edb.10 for ; Tue, 09 Mar 2021 06:58:13 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id i10sm8423791ejv.106.2021.03.09.06.58.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:58:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EFev0xpBsV5H5TKF4K6fxj2ixqQb9yQhNMoCl0p0/v8=; b=I681143VIsStlXfYkV9JPISQ4nRaqietwcD8V5lpA+aFcUQguaKpe2zYphjy/yVGme PHYkWMJ+i+T5EGfslpz9wQBCKNFnfCDMqoDGe7ZZuke/GELJzp7XEOXEUPBJTkS5Y+d9 cSIPXsc7RprBOdJu0FA1EnAWkscq+OA5BbceYOHJhkb9w1D6/or5rNUBcKzzj4RcLtcx fUCJkw9iuu1i6MllR6tPe4AWkJwe4Ln0M4Rqx05DL5foGyKexSodbBII7SAM7sJO9yZW DcwUZY2UCRWz3yN+TADU/ZOQooRBbsrK24/kD9BbTlETCLfZe6T1q9oF5WFjRRfc/UVS Y0fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=EFev0xpBsV5H5TKF4K6fxj2ixqQb9yQhNMoCl0p0/v8=; b=HoHqzgA3tMF+X2GZ913HchrJr4nliwLLJPYc1VHi+MZegsexZWpO1PqQTuUMu/GSXW 8FfoEnF55XuCw1w5TS6leYbhtLEO+GZYdh92IWGnV3BBNSL4kJDAP1pbe81T1tTg5n5y 2FMAkduWDVGlUssJVflBUR1ADO1JdrZE714GHlnjXGM5aVnQo6kO0U0L5Yxd05+4D3+z V1YX3DilV0gIXd3nP0IaAY9CunPTBm02cHHXP+GPiV4HzB61SwHsSCGmENX4abqDbze9 4AeBVSDp2cLCd61In7lJdIgTT4l27BAfr+nPTxHtZjMw7GfBe9QtIH95aVcreCGzGTUU 7fpg== X-Gm-Message-State: AOAM530WRlpJTb7tkbb6h0YaEzAQ9b5lUt8Z2JC39/N+uLGHCxwt/k+2 CqDT9y7MojhDZn+v3dX0eC0= X-Google-Smtp-Source: ABdhPJx9Hb4Ys6P1Iqys9ELgg8PQn8E51C716rG5BZ25UFdVvjqxHUsZy4mkXH0Ml2ya9aCJuN8bmw== X-Received: by 2002:a05:6402:2076:: with SMTP id bd22mr4501726edb.378.1615301892093; Tue, 09 Mar 2021 06:58:12 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 15/22] target/mips/tx79: Introduce PPACW opcode (Parallel Pack to Word) Date: Tue, 9 Mar 2021 15:56:46 +0100 Message-Id: <20210309145653.743937-16-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the PPACW opcode (Parallel Pack to Word). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-22-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tx79.decode | 1 + target/mips/tx79_translate.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index 63fbe9694bb..653910371d2 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -38,6 +38,7 @@ PCGTH 011100 ..... ..... ..... 00110 001000 @= rs_rt_rd PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd PCGTB 011100 ..... ..... ..... 01010 001000 @rs_rt_rd PEXTLW 011100 ..... ..... ..... 10010 001000 @rs_rt_rd +PPACW 011100 ..... ..... ..... 10011 001000 @rs_rt_rd PEXTLH 011100 ..... ..... ..... 10110 001000 @rs_rt_rd PEXTLB 011100 ..... ..... ..... 11010 001000 @rs_rt_rd =20 diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index f0e3d8c0b66..90c33d26a9f 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -374,6 +374,36 @@ static bool trans_PCEQW(DisasContext *ctx, arg_rtype *= a) * PEXTLW rd, rs, rt Parallel Extend Lower from Word */ =20 +/* Parallel Pack to Word */ +static bool trans_PPACW(DisasContext *ctx, arg_rtype *a) +{ + TCGv_i64 a0, b0, t0; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + a0 =3D tcg_temp_new_i64(); + b0 =3D tcg_temp_new_i64(); + t0 =3D tcg_temp_new_i64(); + + gen_load_gpr(a0, a->rs); + gen_load_gpr(b0, a->rt); + + gen_load_gpr_hi(t0, a->rt); /* b1 */ + tcg_gen_deposit_i64(cpu_gpr[a->rd], b0, t0, 32, 32); + + gen_load_gpr_hi(t0, a->rs); /* a1 */ + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], a0, t0, 32, 32); + + tcg_temp_free(t0); + tcg_temp_free(b0); + tcg_temp_free(a0); + + return true; +} + static void gen_pextw(TCGv_i64 dl, TCGv_i64 dh, TCGv_i64 a, TCGv_i64 b) { tcg_gen_deposit_i64(dl, b, a, 32, 32); --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.54 as permitted sender) client-ip=209.85.208.54; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f54.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301898; cv=none; d=zohomail.com; s=zohoarc; b=ZLhQudN/wjr9BNTIT24BoHxAG76EOfR2NJY070UTJUQZCS/kfxzfqp51kJI1+2sgTRuxnUjhv15B7l+2ZPUPGknZhtpWZn//OMipnZs9iKjUZQ6g00oi0O5MbZCU5Eqe0D6J7yO2ECGMU3gPwC6LXqseUnvvEZEaWYjZPYJdBVQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301898; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=OxqjLVKnzec0kFVuN+C9Om0vprT+bKPUVJ8CMXW3FNM=; b=jVB+7pGLL0wqEVS88nQFGaq0wM1ztKNuUdBmgjx1BAfnB+yn+V24+ECRnMhwbcqAeaYld/qSaFZiA8vewtEXH1jYcJSlwTN6zucauPQOq1EgOW5tmIXwSitbgZ3mDcq7yHxblyLtaIu+ZNFLkNzBNqfNrY/FO5O1HgNzgdvS9x0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by mx.zohomail.com with SMTPS id 1615301898943768.5842608381087; Tue, 9 Mar 2021 06:58:18 -0800 (PST) Received: by mail-ed1-f54.google.com with SMTP id dm26so20647083edb.12 for ; Tue, 09 Mar 2021 06:58:18 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id si3sm8380527ejb.90.2021.03.09.06.58.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:58:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OxqjLVKnzec0kFVuN+C9Om0vprT+bKPUVJ8CMXW3FNM=; b=QpKNjGXe911Mi+x/3irf3KSKDIkD7PyKAn2b2CeXsZ9edk1zkBZCDFPnfSGaHt006E wcFyW4GN7Mv7avUJDZuuB6qcIYhVDacCkvWH6/yMuVO2pkYfGaO9pNk6e9i6OZ9+WsPw uNmrLpZhfSCIRPycLxD88woCkqmQ7crnCopO98veMLydru/kZMf2B9FbLcit7aGTcoFe uYoAMbnN2pHJvJfKl8TY0ZQN6ME1mG1mLQiRWqUr7Pr/dwNoHeY8Mb1fDYYpbnOcY4Sq XEghP9581LQHowvZqmnU1qqkkmTxJxJFaeThkZ+9KWN9qtemgI0bdiVKMM+h1keWQvAU GMDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=OxqjLVKnzec0kFVuN+C9Om0vprT+bKPUVJ8CMXW3FNM=; b=NPZZ8qWhur1JvU9x3NQeJYmYyiwfYhFAQe50ueaPkolGbtMVOvQFCMZlN3JgP7Gtx8 hFB+RLwYtb/Oz/tJMgb4ZKegQn2nM/wvuVB5gz+AN89mLET0g5/JQHwsI5+LLpZbhtro fY5eUbsUEH1eZKCUZzm7Wkb0aOT9m3DTXXzDDL6dExR7ei28Vbi4G6Tcj2cvmNbA44MN llIQcKe6LEagWIBb2FIAjMoJeOkNkTBwNV8Cpy2NMorBdwUL47+FrPQr9o4KxSsO34F8 v2AVt1eh2t7jUrXguBtz94bN0ebQG5qwsHNfmnQeqpJIjklUNplFnIwHJpMvv2HGv3rB a8GQ== X-Gm-Message-State: AOAM533pNPDbkgj8ixNmi+fGOtsqRqBuAQyF2852rm0yRndEMUZIPs/9 FQW42YOFEIl/5jMzKs/WtSg= X-Google-Smtp-Source: ABdhPJyqlaMVWKk+R5+wuhITC+yE1uA8+K3aHDLDzwE1yHmrAxpkjOCEpeWGSa2PSUA70tK4dQze5A== X-Received: by 2002:aa7:d9c8:: with SMTP id v8mr4471222eds.9.1615301897257; Tue, 09 Mar 2021 06:58:17 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 16/22] target/mips/tx79: Introduce PINTEH (Parallel Interleave Even Halfword) Date: Tue, 9 Mar 2021 15:56:47 +0100 Message-Id: <20210309145653.743937-17-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the PINTEH opcode (Parallel Interleave Even Halfword). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- v2: Use trans_parallel_arith (rth) --- target/mips/tx79.decode | 1 + target/mips/tx79_translate.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index 653910371d2..fbd2be569ad 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -57,6 +57,7 @@ PXOR 011100 ..... ..... ..... 10011 001001 @= rs_rt_rd =20 # MMI3 =20 +PINTEH 011100 ..... ..... ..... 01010 101001 @rs_rt_rd PCPYUD 011100 ..... ..... ..... 01110 101001 @rs_rt_rd POR 011100 ..... ..... ..... 10010 101001 @rs_rt_rd PNOR 011100 ..... ..... ..... 10011 101001 @rs_rt_rd diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index 90c33d26a9f..7c7879face0 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -593,3 +593,25 @@ static bool trans_PCPYUD(DisasContext *s, arg_rtype *a) =20 return true; } + +static void gen_vec_pinteh(TCGv_i64 d, TCGv_i64 a, TCGv_i64 b) +{ + TCGv_i64 x, y, mask =3D tcg_constant_i64(0x0000ffff0000ffffull); + + x =3D tcg_temp_new_i64(); + y =3D tcg_temp_new_i64(); + + tcg_gen_shli_i64(x, a, 8); + tcg_gen_and_i64(x, x, mask); + tcg_gen_and_i64(y, b, mask); + tcg_gen_or_i64(d, x, y); + + tcg_temp_free(y); + tcg_temp_free(x); +} + +/* Parallel Interleave Even Halfword */ +static bool trans_PINTEH(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, gen_vec_pinteh); +} --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.49 as permitted sender) client-ip=209.85.208.49; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f49.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301904; cv=none; d=zohomail.com; s=zohoarc; b=YjrjPQHlHFFEq2Pbnbwfe2Et2YnjruO1ji/YWiNeYltbwxLfqyzYlNQdyuXoG1aCVVui+odsO1wEkcXA8bPiViTos+v7ZtTYH47MpfOr+PKCfwSqExL9NLAalCmfrnoDR01e0TLULelyED7BOTqr/vCnr6fH1oDtNOLF/ANZsuA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301904; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8smUmlgkKy5kU6GHKPn53J5syMPm8er0j9E7+m5z5Ww=; b=boW1VNE/5UrqDPoHXVboXeBelIQ1Xs1DCJlUKrkPxzAiPR9MrT7nIpsbHT1XesSocK60X5RzeJbAx2zPwB8x99hWLaJUNFKJU8J+poqK4HXKVw3PFYJsSuru8T++xo3WE8e7jzgoETIFasRYbnJOtdYXA+iH2lvb+VBTV7yYkBY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) by mx.zohomail.com with SMTPS id 1615301904078575.0636071938941; Tue, 9 Mar 2021 06:58:24 -0800 (PST) Received: by mail-ed1-f49.google.com with SMTP id v13so20698442edw.9 for ; Tue, 09 Mar 2021 06:58:23 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id y11sm8343050ejd.72.2021.03.09.06.58.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:58:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8smUmlgkKy5kU6GHKPn53J5syMPm8er0j9E7+m5z5Ww=; b=fVBFUw9Z2u+YrohjbQkqB4bUIqAkkjoQD0GojIVEl3NKoBNMABv6D71ts8Rn2moREp iDnbky9qRMcd9KyHk37xMC6NAQ6cPY+nfL6i+mJg+AbRhXSSKVsI8nTbVK8sw7ves5HL yWEVNszLhkjbVaatsIlG3aAfj9H422rPonIQuMCXmPtOGtW3rNVJ0Q0ELG6vXQ5pZN11 7WHUuWlQEXN5ayUWAkbIxDJDlKwlD7M4tRZkxjkQ9EbvDI31M51NHSp1DdIHHagzcG5j imHVQVl2i+/xvndipZX4kUpE/ULygP8z3M3NL0cjIEcAdcL1GIoIJa2z/tfE1UTpWkBS 77aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=8smUmlgkKy5kU6GHKPn53J5syMPm8er0j9E7+m5z5Ww=; b=SamR+K/jUbM0plMvabgGaI1zc5bLHkghxeMrT1nCWe5y5O0nJ+1uk64LfFPliXMAe6 6PLDt0b4rRlWsxkEVbxhLsQT9+oe//FY7DrfdcUqvbIVLl8QflecPh+3ZBfJCl91sHyJ blLgGh14eDrvogHFUZS2RqP9DD2PuRb58KEXHESrbSf51BwuoWJ9USpordfxWhOdOCW+ vpcS9YH1/a8S8dduE/zhrGwnpmLOS7fsETf/Z67l9Y3H0mEjXgilt/5MWqki4iorr1Bx mN4AXYyiHmevlssoxcrT5bCNeJdU9am4JVPclsJq+hSCGN3lSGI6naln2/bNfAKeUwas KCig== X-Gm-Message-State: AOAM531wzcPpBaI6PXOaBZi8L0Ovd75aE3fohxcuSbQBcKu9vUMy6hXz 7J1E5/m/9HCC48MBwkKGozo= X-Google-Smtp-Source: ABdhPJwuF0p5MTbapzJj8Q6be+KuJK8aXiT13e+6tD/iMaHC02uQk2h7Nr8lrrMaaOhWp98hgmsIkQ== X-Received: by 2002:aa7:c5c4:: with SMTP id h4mr4361172eds.375.1615301902331; Tue, 09 Mar 2021 06:58:22 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 17/22] target/mips/tx79: Introduce PEXE[HW] opcodes (Parallel Exchange Even) Date: Tue, 9 Mar 2021 15:56:48 +0100 Message-Id: <20210309145653.743937-18-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the PEXEH (Parallel Exchange Even Halfword) and PEXEW (Parallel Exchange Even Word) opcodes. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- v2: unoptimized, see: https://www.mail-archive.com/qemu-devel@nongnu.org/msg782831.html --- target/mips/tx79.decode | 2 ++ target/mips/tx79_translate.c | 70 ++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index fbd2be569ad..0ea9fc95568 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -54,6 +54,8 @@ PEXTUW 011100 ..... ..... ..... 10010 101000 @= rs_rt_rd PCPYLD 011100 ..... ..... ..... 01110 001001 @rs_rt_rd PAND 011100 ..... ..... ..... 10010 001001 @rs_rt_rd PXOR 011100 ..... ..... ..... 10011 001001 @rs_rt_rd +PEXEH 011100 00000 ..... ..... 11010 001001 @rt_rd +PEXEW 011100 00000 ..... ..... 11110 001001 @rt_rd =20 # MMI3 =20 diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index 7c7879face0..b23e0a1b048 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -615,3 +615,73 @@ static bool trans_PINTEH(DisasContext *ctx, arg_rtype = *a) { return trans_parallel_arith(ctx, a, gen_vec_pinteh); } + +/* Parallel Exchange Even Halfword */ +static bool trans_PEXEH(DisasContext *ctx, arg_rtype *a) +{ + TCGv_i64 ax; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + if (a->rt =3D=3D 0) { + tcg_gen_movi_i64(cpu_gpr[a->rd], 0); + tcg_gen_movi_i64(cpu_gpr_hi[a->rd], 0); + return true; + } + + ax =3D tcg_temp_new_i64(); + + /* Lower half */ + tcg_gen_mov_i64(ax, cpu_gpr[a->rt]); + if (a->rd !=3D a->rt) { + tcg_gen_mov_i64(cpu_gpr[a->rd], cpu_gpr[a->rt]); + } + tcg_gen_deposit_i64(cpu_gpr[a->rd], cpu_gpr[a->rd], ax, 32, 16); + tcg_gen_shri_i64(ax, ax, 32); + tcg_gen_deposit_i64(cpu_gpr[a->rd], cpu_gpr[a->rd], ax, 0, 16); + + /* Upper half */ + tcg_gen_mov_i64(ax, cpu_gpr_hi[a->rt]); + if (a->rd !=3D a->rt) { + tcg_gen_mov_i64(cpu_gpr_hi[a->rd], cpu_gpr_hi[a->rt]); + } + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], cpu_gpr_hi[a->rd], ax, 32, 16); + tcg_gen_shri_i64(ax, ax, 32); + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], cpu_gpr_hi[a->rd], ax, 0, 16); + + tcg_temp_free(ax); + + return true; +} + +/* Parallel Exchange Even Word */ +static bool trans_PEXEW(DisasContext *ctx, arg_rtype *a) +{ + TCGv_i64 ah, al; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + if (a->rt =3D=3D 0) { + tcg_gen_movi_i64(cpu_gpr[a->rd], 0); + tcg_gen_movi_i64(cpu_gpr_hi[a->rd], 0); + return true; + } + + ah =3D tcg_temp_new_i64(); + al =3D tcg_temp_new_i64(); + + gen_load_gpr(ah, a->rt); + gen_load_gpr_hi(al, a->rt); + + tcg_gen_deposit_i64(cpu_gpr[a->rd], ah, al, 0, 32); + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], al, ah, 0, 32); + + tcg_temp_free(al); + tcg_temp_free(ah); + + return true; +} --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.52 as permitted sender) client-ip=209.85.208.52; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f52.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301910; cv=none; d=zohomail.com; s=zohoarc; b=WSvQAlZb6D5nwiS1i9l/cXAqxwZQ1HRuG0kQe6SpKWZhGOH8UqnMnPZqiVkuUKn9zNIbI+rj/9lE3NDi6e1k6CSP4NG/ZRlw1T4S8NQTAYcy0/D48A7Gog53TExyhoXN4wlCl68F088yTfOv5Ya0ndMTs2BAGxOK8mNHwyoIQcQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301910; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gHWKjcJBF2z8bEAukiKiBUIE3a11RI/Qsu47KnxKfMQ=; b=alMjaOuRZW7k+3Bp4KsBNsu1LT1eRtdNHyif7D1szCA5D261dhJA/fdRdaRFalZ1nJZoyGoprWQ08M9JN+HQd4IW2BDrpvdH/dBqtJ1a6Aph27vxuCwBqDpoBzXjuheywJlTiFZXR1m6HvlZeYl3a40SgAfBZeubaFLSr0GFDJ8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) by mx.zohomail.com with SMTPS id 1615301910102724.1378051014487; Tue, 9 Mar 2021 06:58:30 -0800 (PST) Received: by mail-ed1-f52.google.com with SMTP id w9so20706377edc.11 for ; Tue, 09 Mar 2021 06:58:28 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id eo22sm8687735ejc.0.2021.03.09.06.58.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:58:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gHWKjcJBF2z8bEAukiKiBUIE3a11RI/Qsu47KnxKfMQ=; b=gtJFlNFjbUvQF3cCQBpni8Jbt3EsR31q6+Yyyv1TguFXDWQ7NWJapzfWE5rZssu+Nt /0qu98tLxiDPx/+Iw1zQKTB7Utzr2bDBzc2qbJ7dwZnz7EZvAeLlFuOriJKoGP+Trm/m J+RghFrj4tfBDe6dJvkFMaHD15PVbcSE21FU3jpanH3xuSbgeMfUFQiyS7hOqH2ZwH5z UdjLJmbB4LwgcLK4BgrPi0ZS+cd/+XRN1qQnbrGVdy2cA3IsJjZyfPVCHZ4q8djkkwng jdqmCKAp+OdXKoa1MhWnTqzM2G39HKFbmDHKhgy/0EdKpuybT1R+M9j7O5uEzRR1E96r tBEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=gHWKjcJBF2z8bEAukiKiBUIE3a11RI/Qsu47KnxKfMQ=; b=P2DCixc24ZujkFLTHyC0aibh4+lSquPBkv2j1Jjy7703mn2H10AZfNqZ2IW4lSE1zN Xr3PlztCfxt224N6YnEbxxRy8/iaK9S4bWhHkfc/3orovSwKKnMgU2PnyajUN3nxFJjg BQpCnmBK77qFDTlqj4iOavrPAoQpb53O/oxtLRCzL+y9C1yqd0cqqK+snQl1TZtJVfqe NvWG3+o60ZVWVodMNqQgLfrS//IwSm14qexgI9NTDei+kSstj3RbQ4KPui6slaGQgas0 BBgAC6rRVQ3N47T48lglf3TVbZbobl5fMB0PZAGNewWCgRcHHhaWKtvs8TkxqNrFFSfI Uu3Q== X-Gm-Message-State: AOAM533+TC1Cy6z1rpynRrBrLH9bNJBIghJSDf2njj8wvgJHDDVWeE+d He4wznj1AXE95XdLP84Pfxk= X-Google-Smtp-Source: ABdhPJxu0uf2nFfJ/mPWPvAtZdEyDTCmOeb1ncstwHXT/aCltrxfxYBqNmNuMtHk+GvtFS7ct3j+jA== X-Received: by 2002:a05:6402:84b:: with SMTP id b11mr4517401edz.56.1615301907286; Tue, 09 Mar 2021 06:58:27 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 18/22] target/mips/tx79: Introduce PROT3W opcode (Parallel Rotate 3 Words) Date: Tue, 9 Mar 2021 15:56:49 +0100 Message-Id: <20210309145653.743937-19-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the PROT3W opcode (Parallel Rotate 3 Words). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-25-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tx79.decode | 1 + target/mips/tx79_translate.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index 0ea9fc95568..79001359242 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -56,6 +56,7 @@ PAND 011100 ..... ..... ..... 10010 001001 @= rs_rt_rd PXOR 011100 ..... ..... ..... 10011 001001 @rs_rt_rd PEXEH 011100 00000 ..... ..... 11010 001001 @rt_rd PEXEW 011100 00000 ..... ..... 11110 001001 @rt_rd +PROT3W 011100 00000 ..... ..... 11111 001001 @rt_rd =20 # MMI3 =20 diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index b23e0a1b048..f1c6546d70c 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -685,3 +685,31 @@ static bool trans_PEXEW(DisasContext *ctx, arg_rtype *= a) =20 return true; } + +/* Parallel Rotate 3 Words Left */ +static bool trans_PROT3W(DisasContext *ctx, arg_rtype *a) +{ + TCGv_i64 ax; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + if (a->rt =3D=3D 0) { + tcg_gen_movi_i64(cpu_gpr[a->rd], 0); + tcg_gen_movi_i64(cpu_gpr_hi[a->rd], 0); + return true; + } + + ax =3D tcg_temp_new_i64(); + + tcg_gen_mov_i64(ax, cpu_gpr_hi[a->rt]); + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], ax, cpu_gpr[a->rt], 0, 32); + + tcg_gen_deposit_i64(cpu_gpr[a->rd], cpu_gpr[a->rt], ax, 0, 32); + tcg_gen_rotri_i64(cpu_gpr[a->rd], cpu_gpr[a->rd], 32); + + tcg_temp_free(ax); + + return true; +} --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.49 as permitted sender) client-ip=209.85.218.49; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f49.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1615301914; cv=none; d=zohomail.com; s=zohoarc; b=QxKQ6ct3wFwN8SZJcLlVSNONM0F5vAs0L369pD26w//iBU39O44rFsWcoa0WxRUFObWEksAABM7Ut3HJBvrgM8oSxO6dx9wILjpZU5ASjMmbqVYo5owR1T8HXh11xBZaD1u8Nwcl5j6mJxGMTfy23GZKWKJhWmoMdMVXLeXSyCs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301914; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vWE4iITGQtw0Zu8anXgs5cqYaPVWJB0Yrp4jvBlh0aA=; b=D3b2MiDtXgkwL18/buoq3NmAxbXlDioN7vDONpBWiwLmWXmvja5ItLhBmrf2QlyVmid3hXkaMhR3q3XBVXV6xfch4hSNQupxly4kdxshU2JGZ3dxVfUPtEpV1XCbisZboICqvH1IYkiTb2N1ciEqsWJXbBXhTsinaS6SXM8rlvg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by mx.zohomail.com with SMTPS id 1615301914331635.1498275769603; Tue, 9 Mar 2021 06:58:34 -0800 (PST) Received: by mail-ej1-f49.google.com with SMTP id lr13so28520691ejb.8 for ; Tue, 09 Mar 2021 06:58:33 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id lu5sm8674820ejb.97.2021.03.09.06.58.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:58:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vWE4iITGQtw0Zu8anXgs5cqYaPVWJB0Yrp4jvBlh0aA=; b=qXriO2HKZXCVcg+DQTQzMW6chrbBJNEYdTAAuOzs30Iy+0OXmKhzsjm/sooHMhFKNf 4X8eSQ741Q0ND7RFSg0406ooDi33PBQj26No+RhrwEEcG794gU9hRfXoEAVXDgpN1N6U Hwc+yBrbPAkua79nizB+v/yDNF+9m5JCVowvRhPaBeNhenwuDAAvLtMSZohxbo9VcVwd 3btIYfZF67QffrCe4npM0ptatcaRfkUz7GR3UPV1GOtdQBxQ0W7OSEr60SuaGYMi6uUy mQUmswmHHgfF6gSJYjGrmFms+Z6s1Te4j69geW/bniwQ7oVAC2wUyHyH9hXgdLIOTC3v MOuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=vWE4iITGQtw0Zu8anXgs5cqYaPVWJB0Yrp4jvBlh0aA=; b=Ii8dLd+1H8AHu8AAbPeHy/joqAdTuIwXQGB83U6WApCK9gI66vAIU1sWgo9axYyTQJ M3BeoRB2shCEo4kDMBtmvIT2/cxTnhOoQQ/2fsW0fNldPIXbMsIIZ9b1K2JdWpQSaIma lOPmyUJtT1+tIZls44ZLtawUs/LAfL4+R6CE1lK8slXM2pModVG/TPv3qeOjnPqYWlbe mX69YnyFjyi5LIe5F28C9RLqPMWERbEzKKi3FC0eZBDmqkbZxs66L+O9V4zXqesrWPKz 9fvfAJd0ORjRNQBGN0yg3RBLOv/7SzWbKGVvObqCs6Gv75UnHnLyhDcr/nF5SxFhhOtB s8UA== X-Gm-Message-State: AOAM532LqpLdwPHwfbXx4BN0BDSX0nRhayRCZ8NcS2A4t0+qDpOg04ev yhFCCL+27P5N32FAdZ6X/oU= X-Google-Smtp-Source: ABdhPJzzbZsylLIDcLe7ZMpato9JJFkRXbQoTCHWrQPgrZXr9CfbvcyDoi4ZhPe7tCHBrUn6QYnJ0w== X-Received: by 2002:a17:906:3899:: with SMTP id q25mr20559042ejd.157.1615301912484; Tue, 09 Mar 2021 06:58:32 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 19/22] target/mips/tx79: Introduce LQ opcode (Load Quadword) Date: Tue, 9 Mar 2021 15:56:50 +0100 Message-Id: <20210309145653.743937-20-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the LQ opcode (Load Quadword) and remove unreachable code. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-26-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tx79.decode | 8 ++++++++ target/mips/translate.c | 16 ++-------------- target/mips/tx79_translate.c | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index 79001359242..b5396f48c2d 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -13,6 +13,8 @@ =20 &rtype rs rt rd sa =20 +&itype base rt offset + ########################################################################### # Named instruction formats. These are generally used to # reduce the amount of duplication between instruction patterns. @@ -22,6 +24,8 @@ @rs ...... rs:5 ..... .......... ...... &rtype rt=3D0 rd= =3D0 sa=3D0 @rd ...... .......... rd:5 ..... ...... &rtype rs=3D0 rt= =3D0 sa=3D0 =20 +@ldst ...... base:5 rt:5 offset:16 &itype + ########################################################################### =20 MFHI1 011100 0000000000 ..... 00000 010000 @rd @@ -65,3 +69,7 @@ PCPYUD 011100 ..... ..... ..... 01110 101001 @= rs_rt_rd POR 011100 ..... ..... ..... 10010 101001 @rs_rt_rd PNOR 011100 ..... ..... ..... 10011 101001 @rs_rt_rd PCPYH 011100 00000 ..... ..... 11011 101001 @rt_rd + +# SPECIAL + +LQ 011110 ..... ..... ................ @ldst diff --git a/target/mips/translate.c b/target/mips/translate.c index 5fcb859f866..0d20a0e3b84 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -1167,7 +1167,6 @@ enum { =20 enum { MMI_OPC_CLASS_MMI =3D 0x1C << 26, /* Same as OPC_SPECIAL2 */ - MMI_OPC_LQ =3D 0x1E << 26, /* Same as OPC_MSA */ MMI_OPC_SQ =3D 0x1F << 26, /* Same as OPC_SPECIAL3 */ }; =20 @@ -24429,11 +24428,6 @@ static void decode_mmi(CPUMIPSState *env, DisasCon= text *ctx) } } =20 -static void gen_mmi_lq(CPUMIPSState *env, DisasContext *ctx) -{ - gen_reserved_instruction(ctx); /* TODO: MMI_OPC_LQ */ -} - static void gen_mmi_sq(DisasContext *ctx, int base, int rt, int offset) { gen_reserved_instruction(ctx); /* TODO: MMI_OPC_SQ */ @@ -25332,14 +25326,8 @@ static bool decode_opc_legacy(CPUMIPSState *env, D= isasContext *ctx) gen_compute_branch(ctx, op, 4, rs, rt, offset, 4); } break; - case OPC_MDMX: /* MMI_OPC_LQ */ - if (ctx->insn_flags & INSN_R5900) { -#if defined(TARGET_MIPS64) - gen_mmi_lq(env, ctx); -#endif - } else { - /* MDMX: Not implemented. */ - } + case OPC_MDMX: + /* MDMX: Not implemented. */ break; case OPC_PCREL: check_insn(ctx, ISA_MIPS_R6); diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index f1c6546d70c..bfa0faab44f 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -334,6 +334,41 @@ static bool trans_PCEQW(DisasContext *ctx, arg_rtype *= a) * SQ rt, offset(base) Store Quadword */ =20 +static bool trans_LQ(DisasContext *ctx, arg_itype *a) +{ + TCGv_i64 t0; + TCGv addr; + + if (a->rt =3D=3D 0) { + /* nop */ + return true; + } + + t0 =3D tcg_temp_new_i64(); + addr =3D tcg_temp_new(); + + gen_base_offset_addr(ctx, addr, a->base, a->offset); + /* + * Clear least-significant four bits of the effective + * address, effectively creating an aligned address. + */ + tcg_gen_andi_tl(addr, addr, ~0xf); + + /* Lower half */ + tcg_gen_qemu_ld_i64(t0, addr, ctx->mem_idx, MO_TEQ); + gen_store_gpr(t0, a->rt); + + /* Upper half */ + tcg_gen_addi_i64(addr, addr, 8); + tcg_gen_qemu_ld_i64(t0, addr, ctx->mem_idx, MO_TEQ); + gen_store_gpr_hi(t0, a->rt); + + tcg_temp_free(t0); + tcg_temp_free(addr); + + return true; +} + /* * Multiply and Divide (19 instructions) * ------------------------------------- --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.42 as permitted sender) client-ip=209.85.218.42; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f42.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301919; cv=none; d=zohomail.com; s=zohoarc; b=FE5SOXe67TtuNxpvCrYDa2B3HJ5Ya8/yEYjjyAtX/Y+suz6XWvuC91tFSnXXqLWUuoLu+vIPaXStJ9heVe0skBVGs+y+6v2ytj/15ZiJYkqrQohkD5SidqCfhyWFJL7jY7KMUPJe1Ja9meOiX34WGgKWSGgTSruepxrFcYLfmDA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301919; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=m3MGQ4XY31DtBdEMuK50sZWhtVgAINu160V8orKG4pU=; b=Y0fCFArngCb63naP2NsTbGgIn4pxJaFMbGPVoJEP/gyvDX4Mns4gPKeFIiH1YqH5A+KCjpqpPAiWad3JAF43jI5fowIs5saJ/vhbNrKz8N+zcWN+XTIYANECFhJOVEPBi20r3soow6yFXUZBMTir3wosxk3yQY2boylHOOZZ2hk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by mx.zohomail.com with SMTPS id 1615301919537256.6202609059842; Tue, 9 Mar 2021 06:58:39 -0800 (PST) Received: by mail-ej1-f42.google.com with SMTP id dx17so28492018ejb.2 for ; Tue, 09 Mar 2021 06:58:38 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id p9sm4867165edu.79.2021.03.09.06.58.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:58:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=m3MGQ4XY31DtBdEMuK50sZWhtVgAINu160V8orKG4pU=; b=TK+IENevz+zxJtxdjoQS7IXqCulWMzT2NZsU4xe4JWmkNMLq0X7wCiXK+UYtfbJHb5 IFJfeVKIyUHm7FE6WazpI0exRVui3zsqZGFAq/RXW8NObDuHsUCpyTPlz6Q1PS4N7E+Y 1JOdzJPL/dSn3tNTFqDjlR51YipF2A8bDjtBbbzI/mjMCMoC4tkhjatEddn5gVRg4tq7 bhJmABelKslubFRC1BnjKrZucM+7K2LBR6XuWoMWeVjGOHxsqaGK9TR+XMS0zHFmEGR5 mgxdmqmCaGEPVvbI1ntdp1B2kmgCllt33iYk9Xp1k1K+StqJBEzMo4txu5SXbNCfiRZI 2r8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=m3MGQ4XY31DtBdEMuK50sZWhtVgAINu160V8orKG4pU=; b=OeBGypR0RNYUH9fpXuHhEtXnzaeQtIfoXxpCubIjsYXsypjr7+179AbuaKNDEbivgR +oRpKz9GWl366evsLKt8JWgcCkL8Y9hg/FMioEHqahIArY5U5P+TMdMLAwOKejmJ3AVc nPb2Dzd+QGIc7Gyz3nyzTNxNaadFm3eETUWMesaZtSPgZpRPtBJng5riV5475x9UvfY4 ApNijzi2g1tMhiJuNj2bsOz5C6RQPVs66u7AVXqutmEfrCYxLMb9G2c9XqZ/5QRlkU/q hhZVsszARPw2hx8l4Ncg7GZ1AIXhhyio7GsIcdBUrj+8xrSKlsg4rxF/LyEc2uECAu5b wnaQ== X-Gm-Message-State: AOAM5329LNlaVzVNaoCf+4MVzp78s6QFYd2lXs+L5WwjheZ7InBe+hmg 5QaSRWggxVp3X5d0c7l/Z9Q= X-Google-Smtp-Source: ABdhPJxtw+AEWb6Yvr+qasg6ACNzJa7BqW29lMCNY1tyFmnnr8650kD985sR2nzEEJy6UmqOpG6lKw== X-Received: by 2002:a17:906:a413:: with SMTP id l19mr4226314ejz.421.1615301917640; Tue, 09 Mar 2021 06:58:37 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 20/22] target/mips/tx79: Introduce SQ opcode (Store Quadword) Date: Tue, 9 Mar 2021 15:56:51 +0100 Message-Id: <20210309145653.743937-21-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Introduce the SQ opcode (Store Quadword). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-27-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tx79.decode | 1 + target/mips/tx79_translate.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index b5396f48c2d..f1cb7ebfa3c 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -73,3 +73,4 @@ PCPYH 011100 00000 ..... ..... 11011 101001 @= rt_rd # SPECIAL =20 LQ 011110 ..... ..... ................ @ldst +SQ 011111 ..... ..... ................ @ldst diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index bfa0faab44f..e32c6218852 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -369,6 +369,33 @@ static bool trans_LQ(DisasContext *ctx, arg_itype *a) return true; } =20 +static bool trans_SQ(DisasContext *ctx, arg_itype *a) +{ + TCGv_i64 t0 =3D tcg_temp_new_i64(); + TCGv addr =3D tcg_temp_new(); + + gen_base_offset_addr(ctx, addr, a->base, a->offset); + /* + * Clear least-significant four bits of the effective + * address, effectively creating an aligned address. + */ + tcg_gen_andi_tl(addr, addr, ~0xf); + + /* Lower half */ + gen_load_gpr(t0, a->rt); + tcg_gen_qemu_st_i64(t0, addr, ctx->mem_idx, MO_TEQ); + + /* Upper half */ + tcg_gen_addi_i64(addr, addr, 8); + gen_load_gpr_hi(t0, a->rt); + tcg_gen_qemu_st_i64(t0, addr, ctx->mem_idx, MO_TEQ); + + tcg_temp_free(addr); + tcg_temp_free(t0); + + return true; +} + /* * Multiply and Divide (19 instructions) * ------------------------------------- --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.41 as permitted sender) client-ip=209.85.208.41; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f41.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1615301924; cv=none; d=zohomail.com; s=zohoarc; b=Vnj254DS4duJlJzXsYTGQrkZZ/19UotoVxaDZs1H+qK0zT6puuvbzrJ22XZ3ZQqmik3aRymQ0lRnxKRe8tiWnZuS5NDbjrK89g8lVRSjJjPNY4DP7a+XYvCHsPZoPFb+6Hk4jtkUr3ukvzHc8bRvzZH3Ku9KCCDyPu2iOP+Iiqk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301924; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=y78UYhzpjwwqyIkKdZskzp+sDvMwTfmnMMTxyxcUqTQ=; b=fveVYLBIznVyte8dbc5AKogI1GP0I1wDmZULyNcNAMHHysF88Zo2RiZtSwpLXjHskKNgW/KeYKt9cIbPQk8IXxxnySu8ylmb20BkIRBxM+q1LOPWUi/9qqfvGTEBkXf4cMo7zdzTX1bQoEdGnV2yOHDGApZIxeTo+w7c6l9St9w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) by mx.zohomail.com with SMTPS id 1615301924529386.29607535012167; Tue, 9 Mar 2021 06:58:44 -0800 (PST) Received: by mail-ed1-f41.google.com with SMTP id p1so20749337edy.2 for ; Tue, 09 Mar 2021 06:58:43 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id s13sm9551481edr.86.2021.03.09.06.58.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:58:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y78UYhzpjwwqyIkKdZskzp+sDvMwTfmnMMTxyxcUqTQ=; b=nmv7vBPk25/FIE3RQwb38P+mL2oTue9Z/aRq236XaEdpff0zBEIb6b40lB7KZ2E2E1 CGEZm02xS0Ys4hh17VibVANImElOHitohM5QyHSWQB434UXMsk5Bo5+DASazXm8TjX2/ y2+qUedMdybuoa2lnc5yTKMg4mF83vABav1w0YzCxFBbxOJm0cfmsMFAxjkBw6HPuWDI 2cwpAIAUSteYk3228bcAdBN4dLKvLn1XoMZbGXfwqCt8MhtJ8o5by6I2/sDZsMPjJlUk 6f8h3MJ3HN06A2sT5rsJLvFD6LEV8yN2MRIKywLISm7cPQRYHnOZ4O36ZHMb6cFL9t9l CWSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=y78UYhzpjwwqyIkKdZskzp+sDvMwTfmnMMTxyxcUqTQ=; b=tTJLfwcbGP0K5lTGX/oSRa72QcRvC4ZAJWbRrn5KdL36jnSotG4ah+KwF/0NcMGBuw +pt8xgFSKgTHbCfb5E6xVT1LvBg8zPXetzTnkSopicYRRJ54hSfo/JL7Ckb2LnYknHGy E1LQ5JKeKQVG1YuiqbcoXzFMoSAxXqH30gtGQEA8uTOlKeSHsNlG1uiC/57e7cBaMqsf wWZPeY6FrGtH6cXtIC5yaUBJgftAzj4i2/t9G5NIoL57tDOKBmmSfZDmjRuGAlFRqMFd vkegT1s8AfSHcONv1vMRDYEd5w9FmM8q/vDEQKSoaBzB7vOg1neNBWUzpIpVjsUXd0wd 8BQA== X-Gm-Message-State: AOAM533mYtYmNXR9CseyiXV0BMsDsgcExL48qCiYSzYyxPq84rod7bV4 v1aTuam5d90yOXprtwQATJQ= X-Google-Smtp-Source: ABdhPJxFU24/zE7Oa6xcLXJkxjK1TuIXdvwz96wPl0C9lHXBjRfDcqP5+3ohxRFKm9aRuv68e5EL4A== X-Received: by 2002:aa7:d4d2:: with SMTP id t18mr4572526edr.342.1615301922732; Tue, 09 Mar 2021 06:58:42 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 21/22] target/mips/tx79: Move RDHWR usermode kludge to trans_SQ() Date: Tue, 9 Mar 2021 15:56:52 +0100 Message-Id: <20210309145653.743937-22-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Now than SQ is properly implemented, we can move the RDHWR kludge required to have usermode working with recent glibc. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- v2: { RDHWR_user } (rth) --- target/mips/tx79.decode | 5 +++- target/mips/translate.c | 56 ------------------------------------ target/mips/tx79_translate.c | 31 ++++++++++++++++++++ 3 files changed, 35 insertions(+), 57 deletions(-) diff --git a/target/mips/tx79.decode b/target/mips/tx79.decode index f1cb7ebfa3c..4e8acb7ab9a 100644 --- a/target/mips/tx79.decode +++ b/target/mips/tx79.decode @@ -73,4 +73,7 @@ PCPYH 011100 00000 ..... ..... 11011 101001 @= rt_rd # SPECIAL =20 LQ 011110 ..... ..... ................ @ldst -SQ 011111 ..... ..... ................ @ldst +{ + RDHWR_user 011111 00000 ..... ..... 00000 111011 @rt_rd + SQ 011111 ..... ..... ................ @ldst +} diff --git a/target/mips/translate.c b/target/mips/translate.c index 0d20a0e3b84..b01022a6ad7 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -1167,7 +1167,6 @@ enum { =20 enum { MMI_OPC_CLASS_MMI =3D 0x1C << 26, /* Same as OPC_SPECIAL2 */ - MMI_OPC_SQ =3D 0x1F << 26, /* Same as OPC_SPECIAL3 */ }; =20 /* @@ -24428,53 +24427,6 @@ static void decode_mmi(CPUMIPSState *env, DisasCon= text *ctx) } } =20 -static void gen_mmi_sq(DisasContext *ctx, int base, int rt, int offset) -{ - gen_reserved_instruction(ctx); /* TODO: MMI_OPC_SQ */ -} - -/* - * The TX79-specific instruction Store Quadword - * - * +--------+-------+-------+------------------------+ - * | 011111 | base | rt | offset | SQ - * +--------+-------+-------+------------------------+ - * 6 5 5 16 - * - * has the same opcode as the Read Hardware Register instruction - * - * +--------+-------+-------+-------+-------+--------+ - * | 011111 | 00000 | rt | rd | 00000 | 111011 | RDHWR - * +--------+-------+-------+-------+-------+--------+ - * 6 5 5 5 5 6 - * - * that is required, trapped and emulated by the Linux kernel. However, all - * RDHWR encodings yield address error exceptions on the TX79 since the SQ - * offset is odd. Therefore all valid SQ instructions can execute normally. - * In user mode, QEMU must verify the upper and lower 11 bits to distingui= sh - * between SQ and RDHWR, as the Linux kernel does. - */ -static void decode_mmi_sq(CPUMIPSState *env, DisasContext *ctx) -{ - int base =3D extract32(ctx->opcode, 21, 5); - int rt =3D extract32(ctx->opcode, 16, 5); - int offset =3D extract32(ctx->opcode, 0, 16); - -#ifdef CONFIG_USER_ONLY - uint32_t op1 =3D MASK_SPECIAL3(ctx->opcode); - uint32_t op2 =3D extract32(ctx->opcode, 6, 5); - - if (base =3D=3D 0 && op2 =3D=3D 0 && op1 =3D=3D OPC_RDHWR) { - int rd =3D extract32(ctx->opcode, 11, 5); - - gen_rdhwr(ctx, rt, rd, 0); - return; - } -#endif - - gen_mmi_sq(ctx, base, rt, offset); -} - #endif =20 static void decode_opc_special3(CPUMIPSState *env, DisasContext *ctx) @@ -24664,15 +24616,7 @@ static bool decode_opc_legacy(CPUMIPSState *env, D= isasContext *ctx) decode_opc_special2_legacy(env, ctx); break; case OPC_SPECIAL3: -#if defined(TARGET_MIPS64) - if (ctx->insn_flags & INSN_R5900) { - decode_mmi_sq(env, ctx); /* MMI_OPC_SQ */ - } else { - decode_opc_special3(env, ctx); - } -#else decode_opc_special3(env, ctx); -#endif break; case OPC_REGIMM: op1 =3D MASK_REGIMM(ctx->opcode); diff --git a/target/mips/tx79_translate.c b/target/mips/tx79_translate.c index e32c6218852..5e69783420a 100644 --- a/target/mips/tx79_translate.c +++ b/target/mips/tx79_translate.c @@ -396,6 +396,37 @@ static bool trans_SQ(DisasContext *ctx, arg_itype *a) return true; } =20 +/* + * The TX79-specific instruction Store Quadword + * + * +--------+-------+-------+------------------------+ + * | 011111 | base | rt | offset | SQ + * +--------+-------+-------+------------------------+ + * 6 5 5 16 + * + * has the same opcode as the Read Hardware Register instruction + * + * +--------+-------+-------+-------+-------+--------+ + * | 011111 | 00000 | rt | rd | 00000 | 111011 | RDHWR + * +--------+-------+-------+-------+-------+--------+ + * 6 5 5 5 5 6 + * + * that is required, trapped and emulated by the Linux kernel. However, all + * RDHWR encodings yield address error exceptions on the TX79 since the SQ + * offset is odd. Therefore all valid SQ instructions can execute normally. + * In user mode, QEMU must verify the upper and lower 11 bits to distingui= sh + * between SQ and RDHWR, as the Linux kernel does. + */ +static bool trans_RDHWR_user(DisasContext *ctx, arg_rtype *a) +{ +#if defined(CONFIG_USER_ONLY) + gen_rdhwr(ctx, a->rt, a->rd, 0); + return true; +#else + return false; +#endif +} + /* * Multiply and Divide (19 instructions) * ------------------------------------- --=20 2.26.2 From nobody Wed Nov 19 07:07:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.49 as permitted sender) client-ip=209.85.208.49; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f49.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615301929; cv=none; d=zohomail.com; s=zohoarc; b=Zhyt849W4Js9jwAczstncgaqdNIEpyEWPaEWgZpWc0tn4RddS/4eU6rlu65+MdhxQtM7uEQBMVx87qo45P/w+wbFuJ43+qkpio4B8wtbGU+l9gMOP+fN1chpC3rhGVcB1d3iBZUw28OMNnf7LTQs/otl0rKUf1Znflk1Ki86I0U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615301929; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3h2ByVuiQYLkvSCliAgbNV57VpJyk3eWoocPDwDsdg8=; b=gsEif239l+TRUkgKEfVljy2rtTc1f0fyV1gyqu/PS0WUErA5gHXThJZHrOQGCA2ntclv1Ms5cYyZd6FWy0HQaQMH+pmGFepcBGQTkoOpXjUS6jIogoZtAuBHPGfS7tRebJmZjKNqMl16J0A5a5CxzJolp0zlEQPKzU2wLYgxCdw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) by mx.zohomail.com with SMTPS id 1615301929661144.1820761944639; Tue, 9 Mar 2021 06:58:49 -0800 (PST) Received: by mail-ed1-f49.google.com with SMTP id p1so20750354edy.2 for ; Tue, 09 Mar 2021 06:58:49 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id s9sm3182962edd.16.2021.03.09.06.58.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 06:58:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3h2ByVuiQYLkvSCliAgbNV57VpJyk3eWoocPDwDsdg8=; b=WMgFyNRI8F55jyD5CEONfpd5j2lKSzvGxrBtoOOeSsD4pdbHnwf0P6TCVo5KTsUCfI Atj7pm9MXY2FFk0XP8onKVt7isdUjE4/KirtBH65TslU2wUhv9yYTWkniTK9WZcBDdqY iKK0afIJOq4f0TtVlL4W4r/kFwSNbZCm95Vfmmut0itIDcoX8zaczBaxy4+ENDocXZDY JpDdxo3DBIryERgv3KE10wZPPUoFs8VrHnO4MC1qkAPxKBSYn2FzO+AYVmqtoUzrOb5l nwJ97UGhSMExOTZN6L1oHG27v6s96q8JXJ17NE2kIUuZhjE+st17Fb89zB95mpFl+FO0 iWtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=3h2ByVuiQYLkvSCliAgbNV57VpJyk3eWoocPDwDsdg8=; b=kwhypLsNBgEsizyW2CsEd1vDvYDnHFjH0sQk9pglKDvSSAysca6r8CRZAwSMY+zWld 5FackeW9bOEUPoWxu9ANpMgVUDsotZ0yOAokBl84yfOVx63wRDgEJuKBKGXNchnnlfuv I1nYvmgtoMDNeyUpVkaY91JelEQzke2Sbn1I8cqnRGjn0k3ESVBS/EqXzbZUpIJE1zos umxm3nS7nWPZeMM4TAMujZVH812LC/4MTpdmZg2THuP945wldHOfWtJbj8wTwA2M3OED Itm7Rk9L6umXm5nUAiJMHrFo2ERREWoC9kkCJViO2gVzTCpyqV7Nl+Lx+H80sx7vbdMd rcsQ== X-Gm-Message-State: AOAM531brK1I2Tk86Ku1KBA2IW5k6CnFRWYUqBHAHxkunKqF4sdnAKXL xY4fQVtxZ+L52LlmppB6rTk= X-Google-Smtp-Source: ABdhPJxRAoG07U3axtmUjYethmyf7yWtTSVEMr2VIG0GMeTEq+3awAlntFDuLQlk600XueskmvzRJA== X-Received: by 2002:aa7:df84:: with SMTP id b4mr4516787edy.240.1615301927879; Tue, 09 Mar 2021 06:58:47 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Aleksandar Rikalo , Jiaxun Yang , Aurelien Jarno , Fredrik Noring , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v2 22/22] target/mips: Reintroduce the R5900 CPU Date: Tue, 9 Mar 2021 15:56:53 +0100 Message-Id: <20210309145653.743937-23-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309145653.743937-1-f4bug@amsat.org> References: <20210309145653.743937-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) Now that we have the minimum prerequisites to support the R5900 CPU, we can reintroduce it. While we are reverting commit 823f2897bdd ("Disable R5900 support"), we effectively cherry-pick commit ed4f49ba9bb ("target/mips: Define the R5900 CPU"). This reverts commit 823f2897bdd78185f3ba33292a25105ba8bad1b5. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-31-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/cpu-defs.c.inc | 59 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/target/mips/cpu-defs.c.inc b/target/mips/cpu-defs.c.inc index e03b2a998cd..1a73b5409f0 100644 --- a/target/mips/cpu-defs.c.inc +++ b/target/mips/cpu-defs.c.inc @@ -411,6 +411,65 @@ const mips_def_t mips_defs[] =3D .insn_flags =3D CPU_MIPS32R5, .mmu_type =3D MMU_TYPE_R4000, }, + { + /* + * The Toshiba TX System RISC TX79 Core Architecture manual + * + * https://wiki.qemu.org/File:C790.pdf + * + * describes the C790 processor that is a follow-up to the R5900. + * There are a few notable differences in that the R5900 FPU + * + * - is not IEEE 754-1985 compliant, + * - does not implement double format, and + * - its machine code is nonstandard. + */ + .name =3D "R5900", + .CP0_PRid =3D 0x00002E00, + /* No L2 cache, icache size 32k, dcache size 32k, uncached coheren= cy. */ + .CP0_Config0 =3D (0x3 << 9) | (0x3 << 6) | (0x2 << CP0C0_K0), + .CP0_Status_rw_bitmask =3D 0xF4C79C1F, +#ifdef CONFIG_USER_ONLY + /* + * R5900 hardware traps to the Linux kernel for IEEE 754-1985 and = LL/SC + * emulation. For user only, QEMU is the kernel, so we emulate the= traps + * by simply emulating the instructions directly. + * + * Note: Config1 is only used internally, the R5900 has only Confi= g0. + */ + .CP0_Config1 =3D (1 << CP0C1_FP) | (47 << CP0C1_MMU), + .CP0_LLAddr_rw_bitmask =3D 0xFFFFFFFF, + .CP0_LLAddr_shift =3D 4, + .CP1_fcr0 =3D (0x38 << FCR0_PRID) | (0x0 << FCR0_REV), + .CP1_fcr31 =3D 0, + .CP1_fcr31_rw_bitmask =3D 0x0183FFFF, +#else + /* + * The R5900 COP1 FPU implements single-precision floating-point + * operations but is not entirely IEEE 754-1985 compatible. In + * particular, + * + * - NaN (not a number) and +/- infinities are not supported; + * - exception mechanisms are not fully supported; + * - denormalized numbers are not supported; + * - rounding towards nearest and +/- infinities are not supported; + * - computed results usually differs in the least significant bit; + * - saturations can differ more than the least significant bit. + * + * Since only rounding towards zero is supported, the two least + * significant bits of FCR31 are hardwired to 01. + * + * FPU emulation is disabled here until it is implemented. + * + * Note: Config1 is only used internally, the R5900 has only Confi= g0. + */ + .CP0_Config1 =3D (47 << CP0C1_MMU), +#endif /* !CONFIG_USER_ONLY */ + .SEGBITS =3D 32, + .PABITS =3D 32, + .insn_flags =3D CPU_MIPS3 | INSN_R5900 | ASE_MMI, + .mmu_type =3D MMU_TYPE_R4000, + }, { /* A generic CPU supporting MIPS32 Release 6 ISA. FIXME: Support IEEE 754-2008 FP. --=20 2.26.2