From nobody Wed Nov 5 16:39:43 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail header.i=@amazon.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1535461711437957.4714450869861; Tue, 28 Aug 2018 06:08:31 -0700 (PDT) Received: from localhost ([::1]:38111 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fudjN-0002Pk-Ut for importer@patchew.org; Tue, 28 Aug 2018 09:08:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50691) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fudca-0002kA-MU for qemu-devel@nongnu.org; Tue, 28 Aug 2018 09:01:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fudc5-0000aw-NS for qemu-devel@nongnu.org; Tue, 28 Aug 2018 09:00:58 -0400 Received: from smtp-fw-4101.amazon.com ([72.21.198.25]:52006) by eggs.gnu.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.71) (envelope-from ) id 1fudc5-0000Zw-Hb for qemu-devel@nongnu.org; Tue, 28 Aug 2018 09:00:53 -0400 Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-1a-af6a10df.us-east-1.amazon.com) ([10.124.125.6]) by smtp-border-fw-out-4101.iad4.amazon.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 28 Aug 2018 13:00:52 +0000 Received: from ua08cfde8192f59f8a244.ant.amazon.com (iad7-ws-svc-lb50-vlan3.amazon.com [10.0.93.214]) by email-inbound-relay-1a-af6a10df.us-east-1.amazon.com (8.14.7/8.14.7) with ESMTP id w7SD0nfT074520 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 28 Aug 2018 13:00:51 GMT Received: from ua08cfde8192f59f8a244.ant.amazon.com (localhost [127.0.0.1]) by ua08cfde8192f59f8a244.ant.amazon.com (8.15.2/8.15.2/Debian-3) with ESMTP id w7SD0nRU026511; Tue, 28 Aug 2018 09:00:49 -0400 Received: (from jancraig@localhost) by ua08cfde8192f59f8a244.ant.amazon.com (8.15.2/8.15.2/Submit) id w7SD0n1s026510; Tue, 28 Aug 2018 09:00:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1535461253; x=1566997253; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=xkiekLHKg6pjfg1Lh0qGQJx/svoYk3JzuFLuixnkzLU=; b=hDjO6Hw+Os3O7w22dquYiskuhG8HqJxE3jvwieyGH5a6CBczXDlvnnwQ L0s7XnnEW5KKQGW8SeoSe21qt44MjOgfyf1QGpjkpUjUedimOvqdVrfJo UEkIp49ue7si56kyELb94hpsGfGjFVhQRZbtzG5VslbvGewQBwSRAPIQU s=; X-IronPort-AV: E=Sophos;i="5.53,299,1531785600"; d="scan'208";a="735760467" To: qemu-devel@nongnu.org Date: Tue, 28 Aug 2018 09:00:35 -0400 Message-Id: <20180828130041.26445-3-jancraig@amazon.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180828130041.26445-1-jancraig@amazon.com> References: <20180828130041.26445-1-jancraig@amazon.com> Precedence: Bulk X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 72.21.198.25 Subject: [Qemu-devel] [PATCH v3 2/8] target/mips: Add all MXU opcodes X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Craig Janeczek via Qemu-devel Reply-To: Craig Janeczek Cc: aurelien@aurel32.net, amarkovic@wavecomp.com, Craig Janeczek Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Adds all MXU opcodes to the opcode enum. The MXU opcodes overlap with existing misc and Loongson 2F copcodes. The enums were updated to reflect the multiple possible meanings where applicable. Signed-off-by: Craig Janeczek --- v1 - NA v2 - NA v3 - Initial patch, split out from prior first patch target/mips/translate.c | 190 +++++++++++++++++++++++++++------------- 1 file changed, 128 insertions(+), 62 deletions(-) diff --git a/target/mips/translate.c b/target/mips/translate.c index 416488b383..ae6b16ecd7 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -340,30 +340,80 @@ enum { #define MASK_SPECIAL2(op) MASK_OP_MAJOR(op) | (op & 0x3F) =20 enum { + /* Multiply & xxx operations / MXU */ + OPC_MADD_MXU_S32MADD =3D 0x00 | OPC_SPECIAL2, + OPC_MADDU_MXU_S32MADDU =3D 0x01 | OPC_SPECIAL2, /* Multiply & xxx operations */ - OPC_MADD =3D 0x00 | OPC_SPECIAL2, - OPC_MADDU =3D 0x01 | OPC_SPECIAL2, - OPC_MUL =3D 0x02 | OPC_SPECIAL2, - OPC_MSUB =3D 0x04 | OPC_SPECIAL2, - OPC_MSUBU =3D 0x05 | OPC_SPECIAL2, + OPC_MUL =3D 0x02 | OPC_SPECIAL2, + /* MXU */ + OPC_MXU_D16MAX =3D 0x03 | OPC_SPECIAL2, + /* Multiply & xxx operations / MXU */ + OPC_MSUB_MXU_S32MSUB =3D 0x04 | OPC_SPECIAL2, + OPC_MSUBU_MXU_S32MSUBU =3D 0x05 | OPC_SPECIAL2, + /* MXU */ + OPC_MXU_D16AVG =3D 0x6 | OPC_SPECIAL2, + OPC_MXU_D16CPS =3D 0x7 | OPC_SPECIAL2, + OPC_MXU_D16MUL =3D 0x8 | OPC_SPECIAL2, + OPC_MXU_D16MULF =3D 0x9 | OPC_SPECIAL2, + OPC_MXU_D16MAC =3D 0xA | OPC_SPECIAL2, + OPC_MXU_D16MACF =3D 0xB | OPC_SPECIAL2, + OPC_MXU_D16MADL =3D 0xC | OPC_SPECIAL2, + OPC_MXU_S16MAD =3D 0xD | OPC_SPECIAL2, + OPC_MXU_Q16ADD =3D 0xE | OPC_SPECIAL2, + OPC_MXU_D16MACE =3D 0xF | OPC_SPECIAL2, + /* Loongson 2F / MXU */ + OPC_MULT_G_2F_MXU_S32LDD =3D 0x10 | OPC_SPECIAL2, + OPC_DMULT_G_2F_MXU_S32STD =3D 0x11 | OPC_SPECIAL2, + OPC_MULTU_G_2F_MXU_S32LDDV =3D 0x12 | OPC_SPECIAL2, + OPC_DMULTU_G_2F_MXU_S32STDV =3D 0x13 | OPC_SPECIAL2, + OPC_DIV_G_2F_MXU_S32LDI =3D 0x14 | OPC_SPECIAL2, + OPC_DDIV_G_2F_MXU_S32SDI =3D 0x15 | OPC_SPECIAL2, + OPC_DIVU_G_2F_MXU_S32LDIV =3D 0x16 | OPC_SPECIAL2, + OPC_DDIVU_G_2F_MXU_S32SDIV =3D 0x17 | OPC_SPECIAL2, + /* MXU */ + OPC_MXU_D32ADD =3D 0x18 | OPC_SPECIAL2, + OPC_MXU_D32ACC =3D 0x19 | OPC_SPECIAL2, + OPC_MXU_Q16ACC =3D 0x1B | OPC_SPECIAL2, + /* Loongson 2F / MXU */ + OPC_MOD_G_2F_MXU_Q8ADDE =3D 0x1c | OPC_SPECIAL2, + OPC_DMOD_G_2F_MXU_Q8ACCE =3D 0x1d | OPC_SPECIAL2, /* Loongson 2F */ - OPC_MULT_G_2F =3D 0x10 | OPC_SPECIAL2, - OPC_DMULT_G_2F =3D 0x11 | OPC_SPECIAL2, - OPC_MULTU_G_2F =3D 0x12 | OPC_SPECIAL2, - OPC_DMULTU_G_2F =3D 0x13 | OPC_SPECIAL2, - OPC_DIV_G_2F =3D 0x14 | OPC_SPECIAL2, - OPC_DDIV_G_2F =3D 0x15 | OPC_SPECIAL2, - OPC_DIVU_G_2F =3D 0x16 | OPC_SPECIAL2, - OPC_DDIVU_G_2F =3D 0x17 | OPC_SPECIAL2, - OPC_MOD_G_2F =3D 0x1c | OPC_SPECIAL2, - OPC_DMOD_G_2F =3D 0x1d | OPC_SPECIAL2, OPC_MODU_G_2F =3D 0x1e | OPC_SPECIAL2, OPC_DMODU_G_2F =3D 0x1f | OPC_SPECIAL2, /* Misc */ OPC_CLZ =3D 0x20 | OPC_SPECIAL2, OPC_CLO =3D 0x21 | OPC_SPECIAL2, - OPC_DCLZ =3D 0x24 | OPC_SPECIAL2, - OPC_DCLO =3D 0x25 | OPC_SPECIAL2, + /* MXU */ + OPC_MXU_S8LDD =3D 0x22 | OPC_SPECIAL2, + OPC_MXU_S8STD =3D 0x23 | OPC_SPECIAL2, + /* Misc / MXU */ + OPC_DCLZ_MXU_S8LDI =3D 0x24 | OPC_SPECIAL2, + OPC_DCLO_MXU_S8SDI =3D 0x25 | OPC_SPECIAL2, + /* MXU */ + OPC_MXU_S32EXTR =3D 0x26 | OPC_SPECIAL2, + OPC_MXU_D32SARW =3D 0x27 | OPC_SPECIAL2, + OPC_MXU_LXB =3D 0x28 | OPC_SPECIAL2, + OPC_MXU_S16LDD =3D 0x2A | OPC_SPECIAL2, + OPC_MXU_S16STD =3D 0x2B | OPC_SPECIAL2, + OPC_MXU_S16LDI =3D 0x2C | OPC_SPECIAL2, + OPC_MXU_S16SDI =3D 0x2D | OPC_SPECIAL2, + OPC_MXU_S32M2I =3D 0x2E | OPC_SPECIAL2, + OPC_MXU_S32I2M =3D 0x2F | OPC_SPECIAL2, + OPC_MXU_D32SLL =3D 0x30 | OPC_SPECIAL2, + OPC_MXU_D32SLR =3D 0x31 | OPC_SPECIAL2, + OPC_MXU_D32SARL =3D 0x32 | OPC_SPECIAL2, + OPC_MXU_D32SAR =3D 0x33 | OPC_SPECIAL2, + OPC_MXU_Q16SLL =3D 0x34 | OPC_SPECIAL2, + OPC_MXU_Q16SLR =3D 0x35 | OPC_SPECIAL2, + OPC_MXU_D32SLLV =3D 0x36 | OPC_SPECIAL2, + OPC_MXU_Q16SAR =3D 0x37 | OPC_SPECIAL2, + OPC_MXU_Q8MUL =3D 0x38 | OPC_SPECIAL2, + OPC_MXU_Q8MOVZ =3D 0x39 | OPC_SPECIAL2, + OPC_MXU_Q8MAC =3D 0x3A | OPC_SPECIAL2, + OPC_MXU_Q16SCOP =3D 0x3B | OPC_SPECIAL2, + OPC_MXU_Q8MADL =3D 0x3C | OPC_SPECIAL2, + OPC_MXU_S32SFL =3D 0x3D | OPC_SPECIAL2, + OPC_MXU_Q8SAD =3D 0x3E | OPC_SPECIAL2, /* Special */ OPC_SDBBP =3D 0x3F | OPC_SPECIAL2, }; @@ -3563,7 +3613,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t op= c, tcg_gen_mulu2_i64(cpu_LO[acc], cpu_HI[acc], t0, t1); break; #endif - case OPC_MADD: + case OPC_MADD_MXU_S32MADD: { TCGv_i64 t2 =3D tcg_temp_new_i64(); TCGv_i64 t3 =3D tcg_temp_new_i64(); @@ -3579,7 +3629,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t op= c, tcg_temp_free_i64(t2); } break; - case OPC_MADDU: + case OPC_MADDU_MXU_S32MADDU: { TCGv_i64 t2 =3D tcg_temp_new_i64(); TCGv_i64 t3 =3D tcg_temp_new_i64(); @@ -3597,7 +3647,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t op= c, tcg_temp_free_i64(t2); } break; - case OPC_MSUB: + case OPC_MSUB_MXU_S32MSUB: { TCGv_i64 t2 =3D tcg_temp_new_i64(); TCGv_i64 t3 =3D tcg_temp_new_i64(); @@ -3613,7 +3663,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t op= c, tcg_temp_free_i64(t2); } break; - case OPC_MSUBU: + case OPC_MSUBU_MXU_S32MSUBU: { TCGv_i64 t2 =3D tcg_temp_new_i64(); TCGv_i64 t3 =3D tcg_temp_new_i64(); @@ -3721,7 +3771,7 @@ static void gen_cl (DisasContext *ctx, uint32_t opc, case OPC_CLO: case R6_OPC_CLO: #if defined(TARGET_MIPS64) - case OPC_DCLO: + case OPC_DCLO_MXU_S8SDI: case R6_OPC_DCLO: #endif tcg_gen_not_tl(t0, t0); @@ -3738,9 +3788,9 @@ static void gen_cl (DisasContext *ctx, uint32_t opc, tcg_gen_subi_tl(t0, t0, TARGET_LONG_BITS - 32); break; #if defined(TARGET_MIPS64) - case OPC_DCLO: + case OPC_DCLO_MXU_S8SDI: case R6_OPC_DCLO: - case OPC_DCLZ: + case OPC_DCLZ_MXU_S8LDI: case R6_OPC_DCLZ: tcg_gen_clzi_i64(t0, t0, 64); break; @@ -3761,14 +3811,14 @@ static void gen_loongson_integer(DisasContext *ctx,= uint32_t opc, =20 switch (opc) { case OPC_MULT_G_2E: - case OPC_MULT_G_2F: + case OPC_MULT_G_2F_MXU_S32LDD: case OPC_MULTU_G_2E: - case OPC_MULTU_G_2F: + case OPC_MULTU_G_2F_MXU_S32LDDV: #if defined(TARGET_MIPS64) case OPC_DMULT_G_2E: - case OPC_DMULT_G_2F: + case OPC_DMULT_G_2F_MXU_S32STD: case OPC_DMULTU_G_2E: - case OPC_DMULTU_G_2F: + case OPC_DMULTU_G_2F_MXU_S32STDV: #endif t0 =3D tcg_temp_new(); t1 =3D tcg_temp_new(); @@ -3784,19 +3834,19 @@ static void gen_loongson_integer(DisasContext *ctx,= uint32_t opc, =20 switch (opc) { case OPC_MULT_G_2E: - case OPC_MULT_G_2F: + case OPC_MULT_G_2F_MXU_S32LDD: tcg_gen_mul_tl(cpu_gpr[rd], t0, t1); tcg_gen_ext32s_tl(cpu_gpr[rd], cpu_gpr[rd]); break; case OPC_MULTU_G_2E: - case OPC_MULTU_G_2F: + case OPC_MULTU_G_2F_MXU_S32LDDV: tcg_gen_ext32u_tl(t0, t0); tcg_gen_ext32u_tl(t1, t1); tcg_gen_mul_tl(cpu_gpr[rd], t0, t1); tcg_gen_ext32s_tl(cpu_gpr[rd], cpu_gpr[rd]); break; case OPC_DIV_G_2E: - case OPC_DIV_G_2F: + case OPC_DIV_G_2F_MXU_S32LDI: { TCGLabel *l1 =3D gen_new_label(); TCGLabel *l2 =3D gen_new_label(); @@ -3818,7 +3868,7 @@ static void gen_loongson_integer(DisasContext *ctx, u= int32_t opc, } break; case OPC_DIVU_G_2E: - case OPC_DIVU_G_2F: + case OPC_DIVU_G_2F_MXU_S32LDIV: { TCGLabel *l1 =3D gen_new_label(); TCGLabel *l2 =3D gen_new_label(); @@ -3834,7 +3884,7 @@ static void gen_loongson_integer(DisasContext *ctx, u= int32_t opc, } break; case OPC_MOD_G_2E: - case OPC_MOD_G_2F: + case OPC_MOD_G_2F_MXU_Q8ADDE: { TCGLabel *l1 =3D gen_new_label(); TCGLabel *l2 =3D gen_new_label(); @@ -3871,15 +3921,15 @@ static void gen_loongson_integer(DisasContext *ctx,= uint32_t opc, break; #if defined(TARGET_MIPS64) case OPC_DMULT_G_2E: - case OPC_DMULT_G_2F: + case OPC_DMULT_G_2F_MXU_S32STD: tcg_gen_mul_tl(cpu_gpr[rd], t0, t1); break; case OPC_DMULTU_G_2E: - case OPC_DMULTU_G_2F: + case OPC_DMULTU_G_2F_MXU_S32STDV: tcg_gen_mul_tl(cpu_gpr[rd], t0, t1); break; case OPC_DDIV_G_2E: - case OPC_DDIV_G_2F: + case OPC_DDIV_G_2F_MXU_S32SDI: { TCGLabel *l1 =3D gen_new_label(); TCGLabel *l2 =3D gen_new_label(); @@ -3898,7 +3948,7 @@ static void gen_loongson_integer(DisasContext *ctx, u= int32_t opc, } break; case OPC_DDIVU_G_2E: - case OPC_DDIVU_G_2F: + case OPC_DDIVU_G_2F_MXU_S32SDIV: { TCGLabel *l1 =3D gen_new_label(); TCGLabel *l2 =3D gen_new_label(); @@ -3911,7 +3961,7 @@ static void gen_loongson_integer(DisasContext *ctx, u= int32_t opc, } break; case OPC_DMOD_G_2E: - case OPC_DMOD_G_2F: + case OPC_DMOD_G_2F_MXU_Q8ACCE: { TCGLabel *l1 =3D gen_new_label(); TCGLabel *l2 =3D gen_new_label(); @@ -13541,16 +13591,32 @@ static void gen_pool32axf (CPUMIPSState *env, Dis= asContext *ctx, int rt, int rs) case 0x2a: switch (minor & 3) { case MADD_ACC: - gen_muldiv(ctx, OPC_MADD, (ctx->opcode >> 14) & 3, rs, rt); + gen_muldiv(ctx, + OPC_MADD_MXU_S32MADD, + (ctx->opcode >> 14) & 3, + rs, + rt); break; case MADDU_ACC: - gen_muldiv(ctx, OPC_MADDU, (ctx->opcode >> 14) & 3, rs, rt); + gen_muldiv(ctx, + OPC_MADDU_MXU_S32MADDU, + (ctx->opcode >> 14) & 3, + rs, + rt); break; case MSUB_ACC: - gen_muldiv(ctx, OPC_MSUB, (ctx->opcode >> 14) & 3, rs, rt); + gen_muldiv(ctx, + OPC_MSUB_MXU_S32MSUB, + (ctx->opcode >> 14) & 3, + rs, + rt); break; case MSUBU_ACC: - gen_muldiv(ctx, OPC_MSUBU, (ctx->opcode >> 14) & 3, rs, rt); + gen_muldiv(ctx, + OPC_MSUBU_MXU_S32MSUBU, + (ctx->opcode >> 14) & 3, + rs, + rt); break; default: goto pool32axf_invalid; @@ -13618,19 +13684,19 @@ static void gen_pool32axf (CPUMIPSState *env, Dis= asContext *ctx, int rt, int rs) break; case MADD: check_insn_opc_removed(ctx, ISA_MIPS32R6); - mips32_op =3D OPC_MADD; + mips32_op =3D OPC_MADD_MXU_S32MADD; goto do_mul; case MADDU: check_insn_opc_removed(ctx, ISA_MIPS32R6); - mips32_op =3D OPC_MADDU; + mips32_op =3D OPC_MADDU_MXU_S32MADDU; goto do_mul; case MSUB: check_insn_opc_removed(ctx, ISA_MIPS32R6); - mips32_op =3D OPC_MSUB; + mips32_op =3D OPC_MSUB_MXU_S32MSUB; goto do_mul; case MSUBU: check_insn_opc_removed(ctx, ISA_MIPS32R6); - mips32_op =3D OPC_MSUBU; + mips32_op =3D OPC_MSUBU_MXU_S32MSUBU; do_mul: check_insn(ctx, ISA_MIPS32); gen_muldiv(ctx, mips32_op, 0, rs, rt); @@ -17809,21 +17875,21 @@ static void decode_opc_special2_legacy(CPUMIPSSta= te *env, DisasContext *ctx) =20 op1 =3D MASK_SPECIAL2(ctx->opcode); switch (op1) { - case OPC_MADD: /* Multiply and add/sub */ - case OPC_MADDU: - case OPC_MSUB: - case OPC_MSUBU: + case OPC_MADD_MXU_S32MADD: /* Multiply and add/sub */ + case OPC_MADDU_MXU_S32MADDU: + case OPC_MSUB_MXU_S32MSUB: + case OPC_MSUBU_MXU_S32MSUBU: check_insn(ctx, ISA_MIPS32); gen_muldiv(ctx, op1, rd & 3, rs, rt); break; case OPC_MUL: gen_arith(ctx, op1, rd, rs, rt); break; - case OPC_DIV_G_2F: - case OPC_DIVU_G_2F: - case OPC_MULT_G_2F: - case OPC_MULTU_G_2F: - case OPC_MOD_G_2F: + case OPC_DIV_G_2F_MXU_S32LDI: + case OPC_DIVU_G_2F_MXU_S32LDIV: + case OPC_MULT_G_2F_MXU_S32LDD: + case OPC_MULTU_G_2F_MXU_S32LDDV: + case OPC_MOD_G_2F_MXU_Q8ADDE: case OPC_MODU_G_2F: check_insn(ctx, INSN_LOONGSON2F); gen_loongson_integer(ctx, op1, rd, rs, rt); @@ -17845,17 +17911,17 @@ static void decode_opc_special2_legacy(CPUMIPSSta= te *env, DisasContext *ctx) } break; #if defined(TARGET_MIPS64) - case OPC_DCLO: - case OPC_DCLZ: + case OPC_DCLO_MXU_S8SDI: + case OPC_DCLZ_MXU_S8LDI: check_insn(ctx, ISA_MIPS64); check_mips_64(ctx); gen_cl(ctx, op1, rd, rs); break; - case OPC_DMULT_G_2F: - case OPC_DMULTU_G_2F: - case OPC_DDIV_G_2F: - case OPC_DDIVU_G_2F: - case OPC_DMOD_G_2F: + case OPC_DMULT_G_2F_MXU_S32STD: + case OPC_DMULTU_G_2F_MXU_S32STDV: + case OPC_DDIV_G_2F_MXU_S32SDI: + case OPC_DDIVU_G_2F_MXU_S32SDIV: + case OPC_DMOD_G_2F_MXU_Q8ACCE: case OPC_DMODU_G_2F: check_insn(ctx, INSN_LOONGSON2F); gen_loongson_integer(ctx, op1, rd, rs, rt); --=20 2.18.0