From nobody Fri May 3 10:59:16 2024 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.zoho.com; dkim=fail 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 1494691182080165.9466226255206; Sat, 13 May 2017 08:59:42 -0700 (PDT) Received: from localhost ([::1]:58078 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9ZSG-0001HD-KX for importer@patchew.org; Sat, 13 May 2017 11:59:40 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40529) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9ZR3-0000ZD-5X for qemu-devel@nongnu.org; Sat, 13 May 2017 11:58:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9ZQy-0007c0-AL for qemu-devel@nongnu.org; Sat, 13 May 2017 11:58:25 -0400 Received: from mail-yw0-x241.google.com ([2607:f8b0:4002:c05::241]:34400) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d9ZQy-0007aD-4Q for qemu-devel@nongnu.org; Sat, 13 May 2017 11:58:20 -0400 Received: by mail-yw0-x241.google.com with SMTP id 17so3275179ywk.1 for ; Sat, 13 May 2017 08:58:18 -0700 (PDT) Received: from localhost.localdomain (c-73-207-178-95.hsd1.ga.comcast.net. [73.207.178.95]) by smtp.gmail.com with ESMTPSA id u187sm2976491ywg.65.2017.05.13.08.58.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 13 May 2017 08:58:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=GhBE0pHjixixPmaTymWBum2hvYODSgornQ76hk4XPDo=; b=GX8F934xxj7YUNUGuyog5tNiO45fwi2afrYJUVLHJDUD+pxkoOBkFibgXdnz18ipoG /GHnUP0UYMaJBM9ECerCkokaIpP+ugqEg+7F2IeaY4EwbB6+sLAkyVlIvo2WytuJozwb 7REryUTZqMn6hDjvFNmvaIqsyD1mps36KX5pEJFc7es1BfnzFwL8fCe4AzCKI1YOkLg/ MhVnwDVFApr3h9cM7oeZR0B157AcaIy+Ddj9k9VEw+Q3MdhvYp5kZ4sSS2zLbLNj71HX 8fe0ToxeJuqxtx8LethkAQugFtPT6HH/VlmKf2ol6fSFnthh638VKJ/kJiGs+jLhJroN yz2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=GhBE0pHjixixPmaTymWBum2hvYODSgornQ76hk4XPDo=; b=olzgdISOvgjeDrB5Fqo8wEpJ0ooAzN6B59D/dbkV2sNWnhh/Gzxe6pM2lUTuZCWAcE 0pdbarEu+rUPJexffB9nrbcNjwTj7Tx+cZJVNY/KcYSb6K9QTdOKl8vWaPQo3jAAXsei l+OAv3MeEBKrECzQ3GjKx/jCmPBdO6nBUauJ3spiunK4j6muYh7++VFfriq2TrfB7wzw Kz17CgTzBALoNhv2UpXwhBVbqi34qzcUutqN4VKYvG2FUVO9XyeNFwdeslpiVOsPy0MY VJAn/pJ6EWkNsaJ0RnowheNfMPgsN7IaqyldDo6oGexfRl5JpFKZ+wY8OsUHBVb6XIgW faLQ== X-Gm-Message-State: AODbwcBg3O8cN2UxyWsTPk8Z4OVQuEXXhw8V6RTVdOEnntA0eOZTKign mXp8ZHBmUzgdoQ== X-Received: by 10.129.95.84 with SMTP id t81mr7437357ywb.73.1494691097859; Sat, 13 May 2017 08:58:17 -0700 (PDT) From: Pranith Kumar To: Paolo Bonzini , Richard Henderson , Eduardo Habkost , qemu-devel@nongnu.org (open list:All patches CC here) Date: Sat, 13 May 2017 11:58:16 -0400 Message-Id: <20170513155816.17294-1-bobby.prani@gmail.com> X-Mailer: git-send-email 2.13.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4002:c05::241 Subject: [Qemu-devel] [PATCH] tcg/i386: 'nop' instruction with 'lock' prefix is illegal X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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" The instruction "lock nopl (%rax)" should raise an exception. However, we don't do that since we do not check for lock prefix for nop instructions. The following patch adds this check and makes the behavior similar to hardware. Signed-off-by: Pranith Kumar --- target/i386/translate.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/i386/translate.c b/target/i386/translate.c index 1d1372fb43..76f4ccd3b4 100644 --- a/target/i386/translate.c +++ b/target/i386/translate.c @@ -7881,6 +7881,9 @@ static target_ulong disas_insn(CPUX86State *env, Disa= sContext *s, gen_nop_modrm(env, s, modrm); break; case 0x119: case 0x11c ... 0x11f: /* nop (multi byte) */ + if (prefixes & PREFIX_LOCK) { + goto illegal_op; + } modrm =3D cpu_ldub_code(env, s->pc++); gen_nop_modrm(env, s, modrm); break; --=20 2.13.0