From nobody Wed Nov 19 00:18:03 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.45 as permitted sender) client-ip=209.85.221.45; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f45.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613325621; cv=none; d=zohomail.com; s=zohoarc; b=MwdZ2fzDu+vEfTnYiAbFJwaejFIX6eTPGbYi42LbJRgr02kHPCLNLv81YPoCDnUxGtOIYNRb0/OamHk2YJqHpYnRWkwlBaICPAbyEotVR9dEp0x19sjRg2zCRtd2rzowk3KAI6bBDVOYhLIKglm7+xy8MeXhaws938WXyMJzcgY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613325621; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=qDYzgz4nCnzAeAmRqFLDDh2jFjyyR2cEOET9WBNOhTQ=; b=DdsvcriITiorTr30jWiJm3UXbiCJHLGIExL7HolKsiOVqTOvBRejRWyAkYSapTmzsRIz++SLzW6aWj/wuJOcHFm9UkO4WpEZnSUhOM3bp53+is3VbiLh4LJBKjPeNGBEn/fHgsHEv5cPUccFpGw75w5ulaxPl4CqLbaXUppzLYg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by mx.zohomail.com with SMTPS id 1613325621395724.9244155563719; Sun, 14 Feb 2021 10:00:21 -0800 (PST) Received: by mail-wr1-f45.google.com with SMTP id r21so6077042wrr.9 for ; Sun, 14 Feb 2021 10:00:20 -0800 (PST) Return-Path: Return-Path: Received: from localhost.localdomain (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id o13sm27879362wrs.45.2021.02.14.10.00.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Feb 2021 10:00:19 -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=qDYzgz4nCnzAeAmRqFLDDh2jFjyyR2cEOET9WBNOhTQ=; b=Ch0AW4PVYKP/KtWr0Do6gwKwIwSv9Wwg+SwhS/OX3Fu1AZ8jVVB12lKrWl8KAc1KVO 3TD35mGqC928qz73cB/qEgyEwTfTSPTdztsX6l4eNZaWqpzzJ5TxFqXJCupe9Pkww8CD 1P51Bg6vaFPLBwoY5msk4PPSuLP5Q/qO8D9D+oxPfll5TTEK4sNkZb78v/pbK7XRoe9B fR1778MqjznHWMOG/jrkYET0jeiuC+rQoXkGG5bcq6p0+iVFd5pGLGbS2gA2mll+Rb2u GVoQY5RlqYicCIEv49klHaCsR6cbDGd8kpQ62IAdeHycsbrFeNtZI8v27VU3MwusAtFc aR6A== 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=qDYzgz4nCnzAeAmRqFLDDh2jFjyyR2cEOET9WBNOhTQ=; b=S1DWo+4L7JNF7ThD3LBTyjex0ypT2vZflu7XGhLiY5MstgK1ajIExtukoIkASmm/fk vrrw2eQ1YbYkkH8b9jHzDzM7l2ZN9gXNYR12oI3WrhgXZonKw7yscMQUlNBz6h7EETJ4 6IzOfDKrzI856YbUGOhUWn5RyNd+uk6ESCkC+osDJqm0t+7npZQTZa4ut1WzkwOLm0nW zKoLGKSEdqUyoAOrkHdjFaMcDPEP+ZtzFZfPch5YztcrMiYp1b+yI7EFcHAXDDZdQwKl nWxfS+0TnF01NewtC5D16Bkmg8/x6RKnG8riydpDlOFVuoEWauJX7ys9Lb8S7b49Nfg3 BewA== X-Gm-Message-State: AOAM533abjXCQIwJWxgP76aT/uZFeRX2foQf5SVU0xd+/VTsoN8SNBlR /r5fRcb4K0r5bG1JwRjg5Ak= X-Google-Smtp-Source: ABdhPJxeMmA1LeY4/YyrzsA75YGOh3SPNt4hT32uOhk904Mvvc7kD6tNZplAgmX2YcHpgLi5GqHfTw== X-Received: by 2002:adf:bb54:: with SMTP id x20mr15218449wrg.112.1613325619857; Sun, 14 Feb 2021 10:00:19 -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: Fredrik Noring , Laurent Vivier , Jiaxun Yang , =?UTF-8?q?Alex=20Benn=C3=A9e?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , "Maciej W. Rozycki" , Thomas Huth , Aurelien Jarno , Richard Henderson , Aleksandar Rikalo Subject: [RFC PATCH 13/42] target/mips: Remove 'C790 Multimedia Instructions' dead code Date: Sun, 14 Feb 2021 18:58:43 +0100 Message-Id: <20210214175912.732946-14-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210214175912.732946-1-f4bug@amsat.org> References: <20210214175912.732946-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 --- target/mips/translate.c | 372 ---------------------------------------- 1 file changed, 372 deletions(-) diff --git a/target/mips/translate.c b/target/mips/translate.c index cf5a6a83ae5..22d106405c6 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -1970,207 +1970,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 */ @@ -24713,29 +24518,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 - - #if !defined(TARGET_MIPS64) =20 /* MXU accumulate add/subtract 1-bit pattern 'aptn1' */ @@ -27682,137 +27464,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); @@ -27821,18 +27472,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: @@ -27845,17 +27484,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