[PATCH] x86: Process ImmExt without operands

H.J. Lu hjl.tools@gmail.com
Fri Jun 26 17:23:19 GMT 2020


On Fri, Jun 26, 2020 at 09:26:57AM -0700, H.J. Lu wrote:
> On Fri, Jun 26, 2020 at 9:17 AM Jan Beulich <jbeulich@suse.com> wrote:
> >
> > On 26.06.2020 17:23, H.J. Lu via Binutils wrote:
> > > --- a/opcodes/i386-opc.tbl
> > > +++ b/opcodes/i386-opc.tbl
> > > @@ -84,6 +84,9 @@
> > >  #define Vex128 Vex=VEX128
> > >  #define Vex256 Vex=VEX256
> > >  #define VexLIG Vex=VEXScalar
> > > +#define VexSIB128 SIB=VECSIB128
> > > +#define VecSIB256 SIB=VECSIB256
> > > +#define VecSIB512 SIB=VECSIB512
> >
> > I first thought the typo would be only in the Changelog entry, but
> > here the first one has an x too where the others have a c. Would
> > you mind correcting this, and perhaps also adding a blank line
> > ahead of this new block of #define-s?
> 
> Fixed.
> 
> BTW, this commit:
> 
> commit c423d21a43727fb4d27c10d43e6bbedced0f55d5
> Author: Jan Beulich <jbeulich@suse.com>
> Date:   Thu Jun 25 09:30:09 2020 +0200
> 
>     x86: move ImmExt processing
> 
>     With abuses of ImmExt gone, all templates using it have operands. Move
>     its main invocation into process_operands(), matching its secondary one
>     for the SSE2AVX case.
> 
> makes this AMX entry invalid:
> 
> tilerelease, 0, 0x49, 0xc0, 1, CpuAMX_TILE|Cpu64,
> Vex|VexOpcode=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt,
> { 0 }
> 
> Any suggestions how to address this?
  
I am checking in this patch.


H.J.
--
To support Intel AMX instructions with 8-bit immediate opcode extension,
but without operands:

tilerelease, 0, 0x49, 0xc0, 1, CpuAMX_TILE|Cpu64, Vex|VexOpcode=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { 0 }

process ImmExt without operands.

	* config/tc-i386.c (md_assemble): Process ImmExt without
	operands.
---
 gas/config/tc-i386.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index bae9680515..ae2a2c1a53 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -4873,8 +4873,12 @@ md_assemble (char *line)
       if (!process_operands ())
 	return;
     }
-  else if (!quiet_warnings && i.tm.opcode_modifier.ugh)
+  else
     {
+      if (i.tm.opcode_modifier.immext)
+	process_immext ();
+
+      if (!quiet_warnings && i.tm.opcode_modifier.ugh)
       /* UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.  */
       as_warn (_("translating to `%sp'"), i.tm.name);
     }
-- 
2.26.2



More information about the Binutils mailing list