diff options
author | Jan Beulich <jbeulich@novell.com> | 2018-03-08 08:58:05 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2018-03-08 08:58:05 +0100 |
commit | ed438a93f18024da926eb4f56a0f96f597254a55 (patch) | |
tree | e27d34d35da461966c78ab91d56c46e1a402e41b /gas | |
parent | 454172a99e4aebafa2cd42d389cd63a8733a046a (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 7 |
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 |