public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: "Cui, Lili" <lili.cui@intel.com>
To: "Beulich, Jan" <JBeulich@suse.com>
Cc: "Lu, Hongjiu" <hongjiu.lu@intel.com>,
	"binutils@sourceware.org" <binutils@sourceware.org>
Subject: RE: [PATCH V2 3/8] Support APX GPR32 with extend evex prefix
Date: Wed, 15 Nov 2023 11:43:05 +0000	[thread overview]
Message-ID: <SJ0PR11MB56003FB3D877F3DE380E17529EB1A@SJ0PR11MB5600.namprd11.prod.outlook.com> (raw)
In-Reply-To: <6390a74f-bf29-4cb9-afcc-5f5c87fd90c9@suse.com>



> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Wednesday, November 15, 2023 5:12 PM
> To: Cui, Lili <lili.cui@intel.com>
> Cc: Lu, Hongjiu <hongjiu.lu@intel.com>; binutils@sourceware.org
> Subject: Re: [PATCH V2 3/8] Support APX GPR32 with extend evex prefix
> 
> On 15.11.2023 07:03, Cui, Lili wrote:
> >>> --- a/opcodes/i386-dis-evex-reg.h
> >>> +++ b/opcodes/i386-dis-evex-reg.h
> >>> @@ -49,3 +49,17 @@
> >>>      { "vscatterpf0qp%XW",  { MVexVSIBQWpX }, PREFIX_DATA },
> >>>      { "vscatterpf1qp%XW",  { MVexVSIBQWpX }, PREFIX_DATA },
> >>>    },
> >>> +  /* REG_EVEX_0F38F3_L_0 */
> >>> +  {
> >>> +    { Bad_Opcode },
> >>> +    { "blsrS",		{ VexGdq, Edq }, 0 },
> >>> +    { "blsmskS",	{ VexGdq, Edq }, 0 },
> >>> +    { "blsiS",		{ VexGdq, Edq }, 0 },
> >>> +  },
> >>
> >> Compared to the REG_VEX_0F38F3_L_0 entry this lacks PREFIX_OPCODE,
> >> but then the question is why you do not re-use that entry in the first place.
> >
> > Added PREFIX_TABLE for them.
> 
> PREFIX_OPCODE you mean? Or a decoding step through prefix_table[]? (The
> former would be contrary to what we discussed elsewhere for use of
> PREFIX_OPCODE with EVEX encodings. Albeit I still think the goal should be to
> avoid going through prefix_table[] when we have a large set of insns all with
> similar properties.)
> 

Haha, I let them pass prefix_table[].

> >>> --- /dev/null
> >>> +++ b/opcodes/i386-dis-evex-x86-64.h
> >>> @@ -0,0 +1,140 @@
> >>> +  /* X86_64_EVEX_0F3849 */
> >>> +  {
> >>> +    { Bad_Opcode },
> >>> +    { VEX_LEN_TABLE (VEX_LEN_0F3849_X86_64) },  },
> >>> +  /* X86_64_EVEX_0F384B */
> >>> +  {
> >>> +    { Bad_Opcode },
> >>> +    { VEX_LEN_TABLE (VEX_LEN_0F384B_X86_64) },  },
> >>> +  /* X86_64_EVEX_0F38E0 */
> >>> +  {
> >>> +    { Bad_Opcode },
> >>> +    { "cmpoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },  },
> >>
> >> This and its sibling entries look to again fully match
> X86_64_VEX_0F38E<n>.
> >
> > It cannot be moved to up level, it needs to go through
> > i386-dis-evex-x86-64.h
> 
> I didn't suggest to move up a level. I suggested to re-use the existing VEX
> entries.
> 

It's currently in the x86-64 table, it's a bit weird to revisit the x86-64 table, and moving up one level won't work.

{ X86_64_TABLE (X86_64_VEX_0F38E0) }

  /* X86_64_VEX_0F38E0 */
  {
    { Bad_Opcode },
    { "cmpoxadd", { Mdq, Gdq, VexGdq }, PREFIX_DATA },
  },

> >>> @@ -11242,7 +11367,7 @@ print_register (instr_info *ins, unsigned
> >>> int reg,
> >> unsigned int rexmask,
> >            case b_mode:
> >>>      case b_swap_mode:
> >>>        if (reg & 4)
> >>>  	USED_REX (0);
> >>> -      if (ins->rex)
> >>> +      if (ins->rex || ins->rex2)
> >>>  	names = att_names8rex;
> >>>        else
> >>>  	names = att_names8;
> >>
> >> Isn't this already needed in the REX2 patch?
> >>
> >
> > CRC32  --> Eb ---> b_mode
> 
> I'm afraid I don't understand this reply. b_swap_mode is used by EbS, which
> in turn is used by ADD, SUB, etc. Similarly b_mode / Eb are used by more than
> just CRC32.
> 

I misunderstood, will move it to the patch 1/8.

Thanks,
Lili.


  reply	other threads:[~2023-11-15 11:43 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-03 16:50 Cui, Lili
2023-11-06 17:07 ` Jan Beulich
2023-11-13  5:53   ` Cui, Lili
2023-11-13  8:34     ` Jan Beulich
2023-11-14  3:12       ` Cui, Lili
2023-11-14 10:29         ` Jan Beulich
2023-11-15  8:39           ` Cui, Lili
2023-11-07 13:29 ` Jan Beulich
2023-11-09  8:38   ` Cui, Lili
2023-11-09 11:07     ` Jan Beulich
2023-11-09 11:12     ` Jan Beulich
2023-11-07 14:53 ` Jan Beulich
2023-11-09 12:31   ` Cui, Lili
2023-11-09 13:05     ` Jan Beulich
2023-11-09 14:57       ` Cui, Lili
2023-11-09 15:39         ` Jan Beulich
2023-11-14  7:42   ` Cui, Lili
2023-11-14 10:40     ` Jan Beulich
2023-11-14 14:46       ` Cui, Lili
2023-11-15  6:03   ` Cui, Lili
2023-11-15  9:11     ` Jan Beulich
2023-11-15 11:43       ` Cui, Lili [this message]
2023-11-16 13:57         ` Jan Beulich
2023-11-16 15:10           ` Cui, Lili
2023-11-16 15:15             ` Jan Beulich
2023-11-16 16:12           ` Cui, Lili

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=SJ0PR11MB56003FB3D877F3DE380E17529EB1A@SJ0PR11MB5600.namprd11.prod.outlook.com \
    --to=lili.cui@intel.com \
    --cc=JBeulich@suse.com \
    --cc=binutils@sourceware.org \
    --cc=hongjiu.lu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).