x86: also test alternative VMGEXIT encoding

Message ID 7187f8fc-3084-2f07-7279-0397d268adf6@suse.com
State New
Headers show
Series
  • x86: also test alternative VMGEXIT encoding
Related show

Commit Message

Jan Beulich June 18, 2020, 7:13 a.m.
gas/
2020-06-XX  Jan Beulich  <jbeulich@suse.com>

	* testsuite/gas/i386/arch-13.s: Add alternative VMGEXIT case.
	* testsuite/gas/i386/arch-13.d: Extend -march=. Adjust
	expectations.

---
Note that this will cause a testsuite failure until 6fde587ff78a ("x86:
Delete incorrect vmgexit entry in prefix_table") gets reverted, as was
already requested.

Comments

David Faust via Binutils June 18, 2020, noon | #1
On Thu, Jun 18, 2020 at 12:31 AM Jan Beulich <jbeulich@suse.com> wrote:
>

> gas/

> 2020-06-XX  Jan Beulich  <jbeulich@suse.com>

>

>         * testsuite/gas/i386/arch-13.s: Add alternative VMGEXIT case.

>         * testsuite/gas/i386/arch-13.d: Extend -march=. Adjust

>         expectations.

>


This is what I checked in.

Thanks.

-- 
H.J.
From d27c357a5b83773054e85ff3ea5dbfe18b9dd3c0 Mon Sep 17 00:00:00 2001
From: Jan Beulich <jbeulich@suse.com>
Date: Thu, 18 Jun 2020 09:13:49 +0200
Subject: [PATCH] x86: also test alternative VMGEXIT encoding

gas/

	* testsuite/gas/i386/arch-13.s: Add alternative VMGEXIT case.
	* testsuite/gas/i386/arch-13.d: Extend -march=. Adjust
	expectations.

opcodes/

	* i386-dis.c (prefix_table): Revert the last vmgexit change.
---
 gas/ChangeLog                    | 6 ++++++
 gas/testsuite/gas/i386/arch-13.d | 3 ++-
 gas/testsuite/gas/i386/arch-13.s | 1 +
 opcodes/ChangeLog                | 4 ++++
 opcodes/i386-dis.c               | 2 ++
 5 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 5b2b1065b6..3e16a19e1c 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2020-06-18  Jan Beulich  <jbeulich@suse.com>
+
+	* testsuite/gas/i386/arch-13.s: Add alternative VMGEXIT case.
+	* testsuite/gas/i386/arch-13.d: Extend -march=. Adjust
+	expectations.
+
 2020-06-16  Lili Cui  <lili.cui@intel.com>
 
 	* config/tc-i386.c (cpu_arch): Correct noavx512_vp2intersect
diff --git a/gas/testsuite/gas/i386/arch-13.d b/gas/testsuite/gas/i386/arch-13.d
index cbfc4a2268..7a1278f863 100644
--- a/gas/testsuite/gas/i386/arch-13.d
+++ b/gas/testsuite/gas/i386/arch-13.d
@@ -1,4 +1,4 @@
-#as: -march=i686+smap+adx+rdseed+clzero+xsavec+xsaves+clflushopt+mwaitx+rdpid+clwb+wbnoinvd+rdpru+mcommit+sev_es
+#as: -march=i686+smap+adx+rdseed+clzero+xsavec+xsaves+clflushopt+mwaitx+rdpid+clwb+wbnoinvd+rdpru+mcommit+svme+sev_es
 #objdump: -dw
 #name: i386 arch 13
 
@@ -29,5 +29,6 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:[ 	]*f3 0f c7 f8[ 	]*rdpid  %eax
 [ 	]*[a-f0-9]+:[ 	]*0f 01 fd[ 	]*rdpru[ 	]*
 [ 	]*[a-f0-9]+:[ 	]*f3 0f 01 d9[ 	]*vmgexit[ 	]*
+[ 	]*[a-f0-9]+:[ 	]*f2 0f 01 d9[ 	]*vmgexit[ 	]*
 [ 	]*[a-f0-9]+:[ 	]*f3 0f 09[ 	]*wbnoinvd[ 	]*
 #pass
diff --git a/gas/testsuite/gas/i386/arch-13.s b/gas/testsuite/gas/i386/arch-13.s
index 5372d8555b..3a80741440 100644
--- a/gas/testsuite/gas/i386/arch-13.s
+++ b/gas/testsuite/gas/i386/arch-13.s
@@ -40,6 +40,7 @@
 
 # vmgexit instruction
 	vmgexit
+	repne; vmmcall # vmgexit alternative encoding
 
 # wbnoinvd instruction
 	wbnoinvd
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index f604f6e3f7..542b2c1086 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2020-06-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* i386-dis.c (prefix_table): Revert the last vmgexit change.
+
 2020-06-17  Lili Cui  <lili.cui@intel.com>
 
 	* i386-dis.c (prefix_table): Delete the incorrect vmgexit.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 6ac1d7416a..441866d6c9 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -3576,6 +3576,8 @@ static const struct dis386 prefix_table[][4] = {
   {
     { "vmmcall",	{ Skip_MODRM }, 0 },
     { "vmgexit",	{ Skip_MODRM }, 0 },
+    { Bad_Opcode },
+    { "vmgexit",	{ Skip_MODRM }, 0 },
   },
 
   /* PREFIX_0F01_REG_5_MOD_0 */

Patch

--- a/gas/testsuite/gas/i386/arch-13.d
+++ b/gas/testsuite/gas/i386/arch-13.d
@@ -1,4 +1,4 @@ 
-#as: -march=i686+smap+adx+rdseed+clzero+xsavec+xsaves+clflushopt+mwaitx+rdpid+clwb+wbnoinvd+rdpru+mcommit+sev_es
+#as: -march=i686+smap+adx+rdseed+clzero+xsavec+xsaves+clflushopt+mwaitx+rdpid+clwb+wbnoinvd+rdpru+mcommit+svme+sev_es
 #objdump: -dw
 #name: i386 arch 13
 
@@ -29,5 +29,6 @@  Disassembly of section .text:
 [ 	]*[a-f0-9]+:[ 	]*f3 0f c7 f8[ 	]*rdpid  %eax
 [ 	]*[a-f0-9]+:[ 	]*0f 01 fd[ 	]*rdpru[ 	]*
 [ 	]*[a-f0-9]+:[ 	]*f3 0f 01 d9[ 	]*vmgexit[ 	]*
+[ 	]*[a-f0-9]+:[ 	]*f2 0f 01 d9[ 	]*vmgexit[ 	]*
 [ 	]*[a-f0-9]+:[ 	]*f3 0f 09[ 	]*wbnoinvd[ 	]*
 #pass
--- a/gas/testsuite/gas/i386/arch-13.s
+++ b/gas/testsuite/gas/i386/arch-13.s
@@ -40,6 +40,7 @@ 
 
 # vmgexit instruction
 	vmgexit
+	repne; vmmcall # vmgexit alternative encoding
 
 # wbnoinvd instruction
 	wbnoinvd