[binutils-gdb] x86/APX: permit wider than 4-bit immediates with V{EXTRACT, INSERT}{F, I}128

Jan Beulich jbeulich@sourceware.org
Mon Mar 11 07:24:10 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ec6b11e7ec394d25dd50addcbdaeca46a4a1eda6

commit ec6b11e7ec394d25dd50addcbdaeca46a4a1eda6
Author: Jan Beulich <jbeulich@suse.com>
Date:   Mon Mar 11 08:23:11 2024 +0100

    x86/APX: permit wider than 4-bit immediates with V{EXTRACT,INSERT}{F,I}128
    
    These aren't useful, but can be encoded for their AVX forms and hence
    should also be permitted for the APX surrogates. Extend the respective
    conditional by a base opcode check, to restrict it to VROUND{P,S}{S,D}.

Diff:
---
 gas/config/tc-i386.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 4961c2aa544..8790e1b8b59 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -8230,7 +8230,9 @@ check_VecOperands (const insn_template *t)
 
   /* Check the special Imm4 cases; must be the first operand.  */
   if ((is_cpu (t, CpuXOP) && t->operands == 5)
-      || (is_cpu (t, CpuAPX_F) && t->opcode_space == SPACE_0F3A))
+      || (t->opcode_space == SPACE_0F3A
+	  && (t->base_opcode | 3) == 0x0b
+	  && is_cpu (t, CpuAPX_F)))
     {
       if (i.op[0].imms->X_op != O_constant
 	  || !fits_in_imm4 (i.op[0].imms->X_add_number))


More information about the Binutils-cvs mailing list