From nobody Tue Feb 10 06:57:30 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.54 as permitted sender) client-ip=209.85.221.54; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f54.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1618947321; cv=none; d=zohomail.com; s=zohoarc; b=cZEr34+0V6NaUvoA9lEJsJ5DSQnslPbnff8bTWsn2uTKvij5RReWBIg921b6kQDghJqhAtO/AxSsg1XtsPOULw8tEPoNFqbFKBsjQZkyWnU/ve16Eyc5ID5m1SrsoeFLhV23lVScHwr6qKjP1skiQx3zmF+6acoNMXD1Tq6wr+0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1618947321; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4PT5Y6ov+2VF6b9NVW6HMDZLzrmuqv0s6fxsfwWds0M=; b=F5UJfi6PHDr4W3FJK3C/P9wFa7TiQQy/8wEjkGmWDYULi7ji1qtx9Ojim+MGOEQZK2a2mtmBvCVQfLSrlULBccxF4WCSMSXVPzRt+BVG00TJXoUh734sTIxJF2zTAUtm3x8KYYyyQ28kJnWQuygm4br8jI2A4adqiklLW4ZSVBU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by mx.zohomail.com with SMTPS id 1618947321078608.3524766229968; Tue, 20 Apr 2021 12:35:21 -0700 (PDT) Received: by mail-wr1-f54.google.com with SMTP id s7so38809525wru.6 for ; Tue, 20 Apr 2021 12:35:20 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (39.red-81-40-121.staticip.rima-tde.net. [81.40.121.39]) by smtp.gmail.com with ESMTPSA id s8sm28872403wrn.97.2021.04.20.12.35.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Apr 2021 12:35:18 -0700 (PDT) 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=4PT5Y6ov+2VF6b9NVW6HMDZLzrmuqv0s6fxsfwWds0M=; b=te1x1VsaDHdYsoReH6cMGlN0FJqfawxBOSse8FozIpwViTCWIsV6uFSltHhWr3kIld mEWCh97+HDig0YWrORnxEnuTAelZFOnldyC/ZENUCpOkpaxIN8X2toI7UotqMoHmRVuq AxMGFbdN5pP6o0bNClFiGvuhL7er2NdUOT3VRxDwutyaQb1BlYS3qxdfV/VpPQiIBkmv KnDnRmeYOS39827PMVBfdXp6i1tFf+DiPoM4H8xX2s5UFqs4wbRnGVM/R7wYtawh0KYn RKm04sOj7RWWqtd6rzBG2MwQVuHYATyxztgXIDxpJwulyd+GhK7Y4L2hYwaUeHSG649J iduw== 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=4PT5Y6ov+2VF6b9NVW6HMDZLzrmuqv0s6fxsfwWds0M=; b=lE/2wuyPNXAIBzUD2EktwmPGjF8Uih3Ksta01VU3yp0A3Le4Bl3lOJKBuwUaPBOjVU xDSpv/Y816EVekMMiMRZjYxMQ0rawQ4lTML0RpIxY5KUGy7PDt/x53jhm35Eal38LCNy QciR7r7EUVXfaFE2ZjZJsRxmFmtWR10McE9hXPL64pvAOhme9yUY6t5KoJvIf06UtJ5P 5x8XVXebzedi8N54x7k5GOd++AoEOnbhsXiChXVLSVxz882scHlJ6twFfKTOIwrva3vX jWJs7011IvMFpTpk3PFK0WCZ5iFkau4L5ixO0Gih9OfHdSynKqBSEMTQ6JEg//RAOBt1 Zzww== X-Gm-Message-State: AOAM533/FVMBtrB9ZgX4Mym4Zf4Hs8JQmCbGMGHpuGzjzjxkfvNMxjWW fZ5HCfD3a9akSyi+zr6V/JI= X-Google-Smtp-Source: ABdhPJxuE9V5fiIJa11MOKycx2t46NqSY7pv99tVLwmpG/pp/YTdiGaLq1VRxX48zGfmSKjVZztFMg== X-Received: by 2002:adf:de08:: with SMTP id b8mr21935320wrm.279.1618947319361; Tue, 20 Apr 2021 12:35:19 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Aurelien Jarno , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson , Jiaxun Yang , Aleksandar Rikalo Subject: [RFC PATCH 5/5] target/mips: Restrict EVA opcodes to system emulation Date: Tue, 20 Apr 2021 21:34:53 +0200 Message-Id: <20210420193453.1913810-6-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210420193453.1913810-1-f4bug@amsat.org> References: <20210420193453.1913810-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) Enhanced Virtual Address (EVA) instructions are restricted to Kernel execution mode, thus not available on user emulation. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- RFC because I'd rather not use such #ifdef'ry again. TODO: have the compiler elide this code. target/mips/translate.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/target/mips/translate.c b/target/mips/translate.c index dfa26569077..77115721a97 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -15245,8 +15245,11 @@ static void decode_micromips32_opc(CPUMIPSState *e= nv, DisasContext *ctx) uint16_t insn; int rt, rs, rd, rr; int16_t imm; - uint32_t op, minor, minor2, mips32_op; + uint32_t op, minor, mips32_op; uint32_t cond, fmt, cc; +#ifndef CONFIG_USER_ONLY + uint32_t minor2; +#endif /* !CONFIG_USER_ONLY */ =20 insn =3D translator_lduw(env, ctx->base.pc_next + 2); ctx->opcode =3D (ctx->opcode << 16) | insn; @@ -16205,6 +16208,7 @@ static void decode_micromips32_opc(CPUMIPSState *en= v, DisasContext *ctx) gen_st_cond(ctx, rt, rs, offset, MO_TEQ, false); break; #endif +#ifndef CONFIG_USER_ONLY case LD_EVA: if (!ctx->eva) { MIPS_INVAL("pool32c ld-eva"); @@ -16294,6 +16298,7 @@ static void decode_micromips32_opc(CPUMIPSState *en= v, DisasContext *ctx) goto do_st_lr; }; break; +#endif /* !CONFIG_USER_ONLY */ case PREF: /* Treat as no-op */ if ((ctx->insn_flags & ISA_MIPS_R6) && (rt >=3D 24)) { @@ -24486,16 +24491,18 @@ static void decode_opc_special3(CPUMIPSState *env= , DisasContext *ctx) { int rs, rt, rd, sa; uint32_t op1, op2; - int16_t imm; =20 rs =3D (ctx->opcode >> 21) & 0x1f; rt =3D (ctx->opcode >> 16) & 0x1f; rd =3D (ctx->opcode >> 11) & 0x1f; sa =3D (ctx->opcode >> 6) & 0x1f; - imm =3D sextract32(ctx->opcode, 7, 9); =20 op1 =3D MASK_SPECIAL3(ctx->opcode); =20 +#ifndef CONFIG_USER_ONLY + int16_t imm; + + imm =3D sextract32(ctx->opcode, 7, 9); /* * EVA loads and stores overlap Loongson 2E instructions decoded by * decode_opc_special3_legacy(), so be careful to allow their decoding= when @@ -24537,6 +24544,7 @@ static void decode_opc_special3(CPUMIPSState *env, = DisasContext *ctx) return; } } +#endif /* !CONFIG_USER_ONLY */ =20 switch (op1) { case OPC_EXT: --=20 2.26.3