aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2024-03-11 08:23:11 +0100
committerJan Beulich <jbeulich@suse.com>2024-03-11 08:23:11 +0100
commitec6b11e7ec394d25dd50addcbdaeca46a4a1eda6 (patch)
tree3ee7239713787406ccd5d27241f4fb29e50eb2db /gas
parent788b11d9c664ecee5bd9a511a8317045e806a075 (diff)
downloadgdb-ec6b11e7ec394d25dd50addcbdaeca46a4a1eda6.zip
gdb-ec6b11e7ec394d25dd50addcbdaeca46a4a1eda6.tar.gz
gdb-ec6b11e7ec394d25dd50addcbdaeca46a4a1eda6.tar.bz2
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}.
Diffstat (limited to 'gas')
-rw-r--r--gas/config/tc-i386.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 4961c2a..8790e1b 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))