x86: VZEROALL/VZEROUPPER are WIG

Message ID 5B8F9D8402000078001E5687@prv1-mh.provo.novell.com
State New
Headers show
Series
  • x86: VZEROALL/VZEROUPPER are WIG
Related show

Commit Message

Jan Beulich Sept. 5, 2018, 9:10 a.m.
opcodes/
2018-09-05  Jan Beulich  <jbeulich@suse.com>

	* i386-dis.c (VEX_W_0F77_P_0): Delete.
	* (prefix_table): Use VZERO here.
	* (vex_w_table): Delete VEX_W_0F77_P_0 entry.
---
Note regarding the lack of a testcase addition: I would have added
something if there was a pre-existing testcase checking VEX-encoded WIG
insns, but something like this exists for EVEX encoded ones only
(including a command line option to control the choice).

Comments

H.J. Lu Sept. 12, 2018, 9:03 p.m. | #1
On Wed, Sep 5, 2018 at 2:10 AM, Jan Beulich <JBeulich@suse.com> wrote:
> opcodes/

> 2018-09-05  Jan Beulich  <jbeulich@suse.com>

>

>         * i386-dis.c (VEX_W_0F77_P_0): Delete.

>         * (prefix_table): Use VZERO here.

>         * (vex_w_table): Delete VEX_W_0F77_P_0 entry.

> ---

> Note regarding the lack of a testcase addition: I would have added

> something if there was a pre-existing testcase checking VEX-encoded WIG

> insns, but something like this exists for EVEX encoded ones only

> (including a command line option to control the choice).

>

>


I am adding the -mvexwig= option.  Let's wait until it is in.

-- 
H.J.
H.J. Lu Sept. 14, 2018, 8:04 p.m. | #2
On Wed, Sep 12, 2018 at 2:03 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Wed, Sep 5, 2018 at 2:10 AM, Jan Beulich <JBeulich@suse.com> wrote:

>> opcodes/

>> 2018-09-05  Jan Beulich  <jbeulich@suse.com>

>>

>>         * i386-dis.c (VEX_W_0F77_P_0): Delete.

>>         * (prefix_table): Use VZERO here.

>>         * (vex_w_table): Delete VEX_W_0F77_P_0 entry.

>> ---

>> Note regarding the lack of a testcase addition: I would have added

>> something if there was a pre-existing testcase checking VEX-encoded WIG

>> insns, but something like this exists for EVEX encoded ones only

>> (including a command line option to control the choice).

>>

>>

>

> I am adding the -mvexwig= option.  Let's wait until it is in.

>


Please check out users/hjl/wig branch:

https://sourceware.org/git/?p=binutils-gdb.git;a=shortlog;h=refs/heads/users/hjl/wig

Many -mvexwig=1 tests fail due to disassembler bug:

FAIL: i386 AVX WIG insns with -mvexwig=1
FAIL: i386 AVX2 WIG insns with -mvexwig=1
FAIL: x86-64 AVX WIG insns with -mvexwig=1
FAIL: x86-64 AVX2 WIG insns with -mvexwig=1


-- 
H.J.
Jan Beulich Sept. 16, 2018, 9 a.m. | #3
>>> "H.J. Lu" <hjl.tools@gmail.com> 09/14/18 10:05 PM >>>

>Please check out users/hjl/wig branch:

>

>https://sourceware.org/git/?p=binutils-gdb.git;a=shortlog;h=refs/heads/users/hjl/wig

>

>Many -mvexwig=1 tests fail due to disassembler bug:

>

>FAIL: i386 AVX WIG insns with -mvexwig=1

>FAIL: i386 AVX2 WIG insns with -mvexwig=1

>FAIL: x86-64 AVX WIG insns with -mvexwig=1

>FAIL: x86-64 AVX2 WIG insns with -mvexwig=1


I suppose that you've already taken care of by some of your commits over the weekend?
Or is there any actual input you're asking for?


Jan
H.J. Lu Sept. 16, 2018, 12:15 p.m. | #4
On Sun, Sep 16, 2018 at 2:00 AM, Jan Beulich <jbeulich@suse.com> wrote:
>>>> "H.J. Lu" <hjl.tools@gmail.com> 09/14/18 10:05 PM >>>

>>Please check out users/hjl/wig branch:

>>

>>https://sourceware.org/git/?p=binutils-gdb.git;a=shortlog;h=refs/heads/users/hjl/wig

>>

>>Many -mvexwig=1 tests fail due to disassembler bug:

>>

>>FAIL: i386 AVX WIG insns with -mvexwig=1

>>FAIL: i386 AVX2 WIG insns with -mvexwig=1

>>FAIL: x86-64 AVX WIG insns with -mvexwig=1

>>FAIL: x86-64 AVX2 WIG insns with -mvexwig=1

>

> I suppose that you've already taken care of by some of your commits over the weekend?


Yes.

> Or is there any actual input you're asking for?

>



-- 
H.J.

Patch

--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -2071,7 +2071,6 @@  enum
   VEX_W_0F74_P_2,
   VEX_W_0F75_P_2,
   VEX_W_0F76_P_2,
-  VEX_W_0F77_P_0,
   VEX_W_0F7C_P_2,
   VEX_W_0F7C_P_3,
   VEX_W_0F7D_P_2,
@@ -5301,7 +5300,7 @@  static const struct dis386 prefix_table[
 
   /* PREFIX_VEX_0F77 */
   {
-    { VEX_W_TABLE (VEX_W_0F77_P_0) },
+    { "",		{ VZERO }, 0 },
   },
 
   /* PREFIX_VEX_0F7C */
@@ -10784,10 +10783,6 @@  static const struct dis386 vex_w_table[]
     { "vpcmpeqd",	{ XM, Vex, EXx }, 0 },
   },
   {
-    /* VEX_W_0F77_P_0 */
-    { "",		{ VZERO }, 0 },
-  },
-  {
     /* VEX_W_0F7C_P_2 */
     { "vhaddpd",	{ XM, Vex, EXx }, 0 },
   },