aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2018-03-08 08:58:05 +0100
committerJan Beulich <jbeulich@suse.com>2018-03-08 08:58:05 +0100
commited438a93f18024da926eb4f56a0f96f597254a55 (patch)
treee27d34d35da461966c78ab91d56c46e1a402e41b /gas
parent454172a99e4aebafa2cd42d389cd63a8733a046a (diff)
downloadgdb-ed438a93f18024da926eb4f56a0f96f597254a55.zip
gdb-ed438a93f18024da926eb4f56a0f96f597254a55.tar.gz
gdb-ed438a93f18024da926eb4f56a0f96f597254a55.tar.bz2
x86: fold certain AVX512 rotate and shift templates
Their memory forms were bogusly using VexLWP instead of VexNDD. Adjust VexNDD handling to cope with these, allowing their register and memory forms to be folded.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d668f42..d0c4112 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2018-03-08 Jan Beulich <jbeulich@suse.com>
+ * config/tc-i386.c (build_modrm_byte): Make VexNDD handling cope
+ with 3rd (immediate) operand.
+
+2018-03-08 Jan Beulich <jbeulich@suse.com>
+
* config/tc-i386.c (XMMWORD_MNEM_SUFFIX, YMMWORD_MNEM_SUFFIX,
ZMMWORD_MNEM_SUFFIX): Delete.
(process_suffix): Drop their uses. Re-arrange final part of
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 8c37bff..cc10715 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -7157,9 +7157,10 @@ build_modrm_byte (void)
}
else
{
- /* There are only 2 operands. */
- gas_assert (op < 2 && i.operands == 2);
- vex_reg = 1;
+ /* There are only 2 non-immediate operands. */
+ gas_assert (op < i.imm_operands + 2
+ && i.operands == i.imm_operands + 2);
+ vex_reg = i.imm_operands + 1;
}
}
else