From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) by sourceware.org (Postfix) with ESMTPS id 20FC53858D20 for ; Wed, 10 Apr 2024 08:38:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 20FC53858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 20FC53858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712738307; cv=none; b=YQwYQsWO0VAHuHTaaVQNMHqqGFRTNZx+SzZ80cjygkUeR8qYP3MhgubqQr/r4FGLaQKRMlrSgHP/VfIL05xQZ2WPuyMwkeVpEMNQzDdzAlkkfzDYw+rcsJa2CDXkcADI0REgwuVMRwOaxSl72pUDxHivGnGaGG8JvOFb9R2VQLw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712738307; c=relaxed/simple; bh=qKq7VxSYv622xDA4n6Mfr8WqHHfzQEDCMLHWyeF5fpc=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=U8++LdyhdeUrj3pJ3d2xH46tbCHKoY0aqTaa45OxfNtQsIAip7fcjRNemaEJXRylEu+R9Qc18pUJmgbtZkWP/t2QKZCFwvL2RDj4UZ8TTxsLlDbATKbARHeunwGMbBg1LDGsvrWu22nDE4mWKnZimG4d1RPfH5A5+sgZsSggq4s= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1712738292; x=1744274292; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=qKq7VxSYv622xDA4n6Mfr8WqHHfzQEDCMLHWyeF5fpc=; b=dXF4c0gaLJcm3Bw5n5/8W7A1EkzXkabJImrV7XZ6v5fq8vjwbbEm1wk8 KhybtOX0Z3o68x6S4dpRH7eFdJpx+xcL/ZNLeIpStw8SHkd4qmot2hPUU gKPlsXxupCG6LFBqx9RCfHs9OhEGqZr+JmaSN7jKTtFwMdoa7KSjOtiyw eg8V+mUG6CBuygjYrBLjNNalc6AvhV0Pjinq839WQb2Ek0wx8K2W7vt9G qy+78GkFAGaZilUe50Ssma2SmAQ6NUUlgB8FGiLG3aVWKatJl7AW+Wpg9 WTVexKW/hYcfbue+m6gsRPQwAPmpRhrJIQhW+s630ihymyQj09lNcb2ou g==; X-CSE-ConnectionGUID: lZkj1TecSW+b8YUcimm4tQ== X-CSE-MsgGUID: rmYAUe7wQWSSgemUdes7HA== X-IronPort-AV: E=McAfee;i="6600,9927,11039"; a="30568280" X-IronPort-AV: E=Sophos;i="6.07,190,1708416000"; d="scan'208";a="30568280" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Apr 2024 01:38:10 -0700 X-CSE-ConnectionGUID: b0hLp/JzQyy7Fmia7fqAkg== X-CSE-MsgGUID: WHy42j7qQHGra6b/ZfvL4A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,190,1708416000"; d="scan'208";a="57924887" Received: from shvmail03.sh.intel.com ([10.239.245.20]) by orviesa001.jf.intel.com with ESMTP; 10 Apr 2024 01:38:09 -0700 Received: from shliclel4217.sh.intel.com (shliclel4217.sh.intel.com [10.239.240.127]) by shvmail03.sh.intel.com (Postfix) with ESMTP id D0B1F1005196; Wed, 10 Apr 2024 16:38:07 +0800 (CST) From: "Hu, Lin1" To: binutils@sourceware.org Cc: JBeulich@suse.com, hongjiu.lu@intel.com, lili.cui@intel.com Subject: [PATCH] Add W table for USER_MSR under MAP4. Date: Wed, 10 Apr 2024 16:38:07 +0800 Message-Id: <20240410083807.2674062-1-lin1.hu@intel.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi, We found USER_MSR's disassembling process didn't through W table, so we add it. BRs, Lin opcodes/ChangeLog: * i386-dis-evex-mod.h: Modify MOD_EVEX_MAP4_F8_P1, MOD_EVEX_MAP4_F8_P3. * i386-dis-evex-w.h (EVEX_W_MAP4_F8_P1_M_1): New. (EVEX_W_MAP4_F8_P3_M_1): Ditto. * i386-dis.c (vex_w_table): Add EVEX_W_MAP4_F8_P1_M_1, EVEX_W_MAP4_F8_P3_M_1. * i386-opc.tbl: Remove redundant '|'. --- opcodes/i386-dis-evex-mod.h | 4 ++-- opcodes/i386-dis-evex-w.h | 8 ++++++++ opcodes/i386-dis.c | 2 ++ opcodes/i386-opc.tbl | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/opcodes/i386-dis-evex-mod.h b/opcodes/i386-dis-evex-mod.h index e793b24a6f8..879c91f3b76 100644 --- a/opcodes/i386-dis-evex-mod.h +++ b/opcodes/i386-dis-evex-mod.h @@ -1,10 +1,10 @@ /* MOD_EVEX_MAP4_F8_P1 */ { { "enqcmds", { Gva, M }, 0 }, - { "uwrmsr", { Gq, Eq }, 0 }, + { VEX_W_TABLE (EVEX_W_MAP4_F8_P1_M_1) }, }, /* MOD_EVEX_MAP4_F8_P3 */ { { "enqcmd", { Gva, M }, 0 }, - { "urdmsr", { Eq, Gq }, 0 }, + { VEX_W_TABLE (EVEX_W_MAP4_F8_P3_M_1) }, }, diff --git a/opcodes/i386-dis-evex-w.h b/opcodes/i386-dis-evex-w.h index 12ab29544bb..24c0c23f23e 100644 --- a/opcodes/i386-dis-evex-w.h +++ b/opcodes/i386-dis-evex-w.h @@ -447,6 +447,14 @@ { "pop2", { { PUSH2_POP2_Fixup, q_mode}, Eq }, NO_PREFIX }, { "pop2p", { { PUSH2_POP2_Fixup, q_mode}, Eq }, NO_PREFIX }, }, + /* EVEX_W_MAP4_F8_P1_M_1 */ + { + { "uwrmsr", { Gq, Eq }, 0 }, + }, + /* EVEX_W_MAP4_F8_P3_M_1 */ + { + { "urdmsr", { Eq, Gq }, 0 }, + }, /* EVEX_W_MAP4_FF_R_6 */ { { "push2", { { PUSH2_POP2_Fixup, q_mode}, Eq }, 0 }, diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 3efe65af940..b9fdda1b578 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -1739,6 +1739,8 @@ enum EVEX_W_0F3A72, EVEX_W_MAP4_8F_R_0, + EVEX_W_MAP4_F8_P1_M_1, + EVEX_W_MAP4_F8_P3_M_1, EVEX_W_MAP4_FF_R_6, EVEX_W_MAP5_5B_P_0, diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl index fb2e9e91f05..7d248f64bbd 100644 --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -3416,7 +3416,7 @@ urdmsr, 0xf20f38f8, USER_MSR, RegMem|NoSuf|NoRex64, { Reg64, Reg64 } urdmsr, 0xf2f8, USER_MSR&APX_F, RegMem|EVexMap4|VexW0|NoSuf, { Reg64, Reg64 } urdmsr, 0xf2f8/0, APX_F(USER_MSR), Modrm|Vex128|VexMap7|EVex128|VexW0|NoSuf, { Imm32, Reg64 } uwrmsr, 0xf30f38f8, USER_MSR, Modrm|NoSuf|NoRex64, { Reg64, Reg64 } -uwrmsr, 0xf3f8, USER_MSR&APX_F, Modrm||EVexMap4|VexW0|NoSuf, { Reg64, Reg64 } +uwrmsr, 0xf3f8, USER_MSR&APX_F, Modrm|EVexMap4|VexW0|NoSuf, { Reg64, Reg64 } // Immediates want to be first; md_assemble() takes care of swapping operands // accordingly. uwrmsr, 0xf3f8/0, APX_F(USER_MSR), Modrm|Vex128|VexMap7|EVex128|VexW0|NoSuf, { Imm32, Reg64 } -- 2.31.1