From patchwork Mon Jul 18 14:30:19 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Mihai_Don=C8=9Bu?= X-Patchwork-Id: 9234739 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 6813160756 for ; Mon, 18 Jul 2016 14:45:15 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5A23626C2F for ; Mon, 18 Jul 2016 14:45:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4CFEA26CF9; Mon, 18 Jul 2016 14:45:15 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5293A26C2F for ; Mon, 18 Jul 2016 14:45:12 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bP9kf-000384-4d; Mon, 18 Jul 2016 14:42:33 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bP9ke-00037x-2E for xen-devel@lists.xen.org; Mon, 18 Jul 2016 14:42:32 +0000 Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id 9A/88-28354-708EC875; Mon, 18 Jul 2016 14:30:31 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrHIsWRWlGSWpSXmKPExsUSfTxjoS7ri55 wg4/LjSyWfFzM4sDocXT3b6YAxijWzLyk/IoE1ozTC/YwFcwRrZj0ZidzA+Ny3i5GTg4hAQ+J vbuXsHYxcgHZaxklFv37zgThnGSUuHTmEmMXIweQ4y6xpD8BIr6TUWLxnOtgcTYBW4n+Oz4gg 0QEpCWufb7MCGIzCxRK7N/xkwXEFhaIk7h39BkTiM0ioCrRemwfO4jNK2At8Xf+CrC4hICcxM vXP5lBRnIK2Ej0XFaHuM1a4nfrLahyQYmTM5+wgJQwC6hLrJ8nBLFJXqJ562xmiCk5En+eTmY CKZEQkJL436oEcrCEwEQWiTn3PrFD1MhIPJp4k20Co+gsJFNnIUydhWTqAkbmVYzqxalFZalF uuZ6SUWZ6RkluYmZObqGBsZ6uanFxYnpqTmJScV6yfm5mxiB8cAABDsYG787HWKU5GBSEuW1W tATLsSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mCV/o5UE6wKDU9tSItMwcYmTBpCQ4eJRHekGdAad 7igsTc4sx0iNQpRkUpcd67IAkBkERGaR5cGywZXGKUlRLmZQQ6RIinILUoN7MEVf4VozgHo5I wry/Idp7MvBK46a+AFjMBLTZQ7QZZXJKIkJJqYKyPTIkyt57iO+v2nb0nmLveWq8JDfge03Mq qSGAb82GPyyvNwqcUbm3ek/LdGa5U7/sU7qOKqy5q2L69BLflVsPqj5k3ps/+b9EikiqaatN1 PJ7YQ2NNw/M6VDrcuM43Vjd8ulwVfQkwdXsojMEngo/ufR+sup/5V5Hr3dv53qxcvw7X9O/r1 KJpTgj0VCLuag4EQBFdr6sAQMAAA== X-Env-Sender: mdontu@bitdefender.com X-Msg-Ref: server-4.tower-31.messagelabs.com!1468852229!956429!1 X-Originating-IP: [91.199.104.161] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 8.77; banners=-,-,- X-VirusChecked: Checked Received: (qmail 39446 invoked from network); 18 Jul 2016 14:30:29 -0000 Received: from mx01.bbu.dsd.mx.bitdefender.com (HELO mx01.bbu.dsd.mx.bitdefender.com) (91.199.104.161) by server-4.tower-31.messagelabs.com with DHE-RSA-AES128-GCM-SHA256 encrypted SMTP; 18 Jul 2016 14:30:29 -0000 Received: (qmail 13980 invoked from network); 18 Jul 2016 17:30:29 +0300 Received: from unknown (HELO mx-sr.buh.bitdefender.com) (10.17.80.103) by mx01.bbu.dsd.mx.bitdefender.com with AES256-GCM-SHA384 encrypted SMTP; 18 Jul 2016 17:30:29 +0300 Received: from smtp02.buh.bitdefender.net (unknown [10.17.80.76]) by mx-sr.buh.bitdefender.com (Postfix) with ESMTP id BFA7F7FC2A for ; Mon, 18 Jul 2016 17:30:28 +0300 (EEST) Received: (qmail 5038 invoked from network); 18 Jul 2016 17:30:28 +0300 Received: from unknown (HELO mdontu-l.bitdefender.biz) (mdontu@bitdefender.com@10.20.65.10) by smtp02.buh.bitdefender.net with AES128-SHA256 encrypted SMTP; 18 Jul 2016 17:30:28 +0300 From: =?UTF-8?q?Mihai=20Don=C8=9Bu?= To: xen-devel@lists.xen.org Date: Mon, 18 Jul 2016 17:30:19 +0300 Message-Id: <20160718143020.14828-2-mdontu@bitdefender.com> X-Mailer: git-send-email 2.9.2 In-Reply-To: <20160718143020.14828-1-mdontu@bitdefender.com> References: <20160718143020.14828-1-mdontu@bitdefender.com> MIME-Version: 1.0 X-BitDefender-Scanner: Clean, Agent: BitDefender qmail 3.1.6 on smtp02.buh.bitdefender.net, sigver: 7.66383 X-BitDefender-Spam: No (0) X-BitDefender-SpamStamp: Build: [Engines: 2.15.6.911, Dats: 427057, Stamp: 3], Multi: [Enabled, t: (0.000010, 0.002950)], BW: [Enabled, t: (0.000008,0.000002)], RBL DNSBL: [Disabled], APM: [Enabled, Score: 500, t: (0.002814), Flags: 85D2ED72; NN_LEGIT_SUMM_400_WORDS; NN_NO_LINK_NMD; NN_LEGIT_BITDEFENDER; NN_LEGIT_S_SQARE_BRACKETS; NN_LEGIT_MAILING_LIST_TO], SGN: [Enabled, t: (0.012252)], URL: [Enabled, t: (0.000005)], RTDA: [Enabled, t: (0.014399), Hit: No, Details: v2.3.10; Id: 2m1ghic.1aml0sh1c.25fbq], total: 0(775) X-BitDefender-CF-Stamp: none Cc: Andrew Cooper , Zhi Wang , Jan Beulich Subject: [Xen-devel] [PATCH v2 2/3] x86/emulate: add support of emulating SSE2 instruction {, v}movd mm, m32 X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Found that Windows driver was using a SSE2 instruction MOVD. Signed-off-by: Zhi Wang Signed-off-by: Mihai Donțu --- Picked from the XenServer 7 patch queue, as suggested by Andrew Cooper --- xen/arch/x86/x86_emulate/x86_emulate.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) -- 2.9.2 diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c index 0301235..2a56a67 100644 --- a/xen/arch/x86/x86_emulate/x86_emulate.c +++ b/xen/arch/x86/x86_emulate/x86_emulate.c @@ -204,7 +204,7 @@ static uint8_t twobyte_table[256] = { /* 0x60 - 0x6F */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ImplicitOps|ModRM, /* 0x70 - 0x7F */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ImplicitOps|ModRM, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ImplicitOps|ModRM, ImplicitOps|ModRM, /* 0x80 - 0x87 */ ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, @@ -4409,6 +4409,10 @@ x86_emulate( case 0x6f: /* movq mm/m64,mm */ /* {,v}movdq{a,u} xmm/m128,xmm */ /* vmovdq{a,u} ymm/m256,ymm */ + case 0x7e: /* movd mm,r/m32 */ + /* movq mm,r/m64 */ + /* {,v}movd xmm,r/m32 */ + /* {,v}movq xmm,r/m64 */ case 0x7f: /* movq mm,mm/m64 */ /* {,v}movdq{a,u} xmm,xmm/m128 */ /* vmovdq{a,u} ymm,ymm/m256 */ @@ -4432,7 +4436,17 @@ x86_emulate( host_and_vcpu_must_have(sse2); buf[0] = 0x66; /* SSE */ get_fpu(X86EMUL_FPU_xmm, &fic); - ea.bytes = (b == 0xd6 ? 8 : 16); + switch ( b ) + { + case 0x7e: + ea.bytes = 4; + break; + case 0xd6: + ea.bytes = 8; + break; + default: + ea.bytes = 16; + } break; case vex_none: if ( b != 0xe7 ) @@ -4452,7 +4466,17 @@ x86_emulate( ((vex.pfx != vex_66) && (vex.pfx != vex_f3))); host_and_vcpu_must_have(avx); get_fpu(X86EMUL_FPU_ymm, &fic); - ea.bytes = (b == 0xd6 ? 8 : 16 << vex.l); + switch ( b ) + { + case 0x7e: + ea.bytes = 4; + break; + case 0xd6: + ea.bytes = 8; + break; + default: + ea.bytes = 16 << vex.l; + } } if ( ea.type == OP_MEM ) {