aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2018-03-22 08:29:45 +0100
committerJan Beulich <jbeulich@suse.com>2018-03-22 08:29:45 +0100
commitf776822506b417ce25170c67c33cc05870b37adf (patch)
treeb744c766b506332337293f2aa1fe9684dbe19db5 /gas/config
parent5d9310c4b88f807c1a3f1a0b4d7b6c10925dcaf7 (diff)
downloadgdb-f776822506b417ce25170c67c33cc05870b37adf.zip
gdb-f776822506b417ce25170c67c33cc05870b37adf.tar.gz
gdb-f776822506b417ce25170c67c33cc05870b37adf.tar.bz2
x86: fold a few XOP templates
Also add a new test case verifying that mixed operands of SIMD insns with a size-less memory operand in the middle are properly rejected.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-i386.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index e94e01c..01365f3 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -5510,10 +5510,14 @@ check_reverse:
case 4:
if (!operand_type_match (overlap3, i.types[3])
|| (check_register
- && !operand_type_register_match (i.types[2],
- operand_types[2],
- i.types[3],
- operand_types[3])))
+ && (!operand_type_register_match (i.types[1],
+ operand_types[1],
+ i.types[3],
+ operand_types[3])
+ || !operand_type_register_match (i.types[2],
+ operand_types[2],
+ i.types[3],
+ operand_types[3]))))
continue;
/* Fall through. */
case 3: