diff options
author | Jan Beulich <jbeulich@suse.com> | 2022-11-09 11:09:34 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2022-11-09 11:09:34 +0100 |
commit | 47c0279b2ca36fd79ad4ce8601103623a92161ae (patch) | |
tree | 23fd98ed159147896f3b81bc6ce368ffcee67fe0 /gas/config | |
parent | 2d4989e98ee5e63b76ce3e35b0e02baaee2f50cb (diff) | |
download | gdb-47c0279b2ca36fd79ad4ce8601103623a92161ae.zip gdb-47c0279b2ca36fd79ad4ce8601103623a92161ae.tar.gz gdb-47c0279b2ca36fd79ad4ce8601103623a92161ae.tar.bz2 |
x86/Intel: don't accept malformed EXTRQ / INSERTQ
Operand swapping was mistakenly suppressed when the first two operands
were immediate ones, not taking into account overall operand count. This
way EXTRQ / INSERTQ would have been accepted also with kind-of-AT&T
operand order.
For the testcase being extended, in order to not move around "GAS
LISTING" expectations, suppress pagination.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-i386.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 6dcf114..da005c5 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -4885,7 +4885,8 @@ md_assemble (char *line) && !startswith (mnemonic, "rmp") && (strcmp (mnemonic, "tpause") != 0) && (strcmp (mnemonic, "umwait") != 0) - && !(operand_type_check (i.types[0], imm) + && !(i.operands == 2 + && operand_type_check (i.types[0], imm) && operand_type_check (i.types[1], imm))) swap_operands (); |