aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-i386.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2015-04-23 16:41:21 +0200
committerJan Beulich <jbeulich@suse.com>2015-04-23 16:41:21 +0200
commitaf508cb92f8fa7eed6c7f2bd3a49d42701db5900 (patch)
tree6cecc6c53fc0a92458972ce380e53922163f2d6d /gas/config/tc-i386.c
parent8900d71e388043726fece2695b9b0ffc9a0d7afb (diff)
downloadfsf-binutils-gdb-af508cb92f8fa7eed6c7f2bd3a49d42701db5900.zip
fsf-binutils-gdb-af508cb92f8fa7eed6c7f2bd3a49d42701db5900.tar.gz
fsf-binutils-gdb-af508cb92f8fa7eed6c7f2bd3a49d42701db5900.tar.bz2
x86: don't require operand size specification for AVX512 broadcasts
Certain conversion operations as well as vfpclassp{d,s} are ambiguous when the input operand is in memory. That ambiguity, however, doesn't apply when using broadcasts (the destination operand size can be induced from the broadcast specifier). gas/ 2015-04-23 Jan Beulich <jbeulich@suse.com> * config/tc-i386.c (match_mem_size): Also allow no size specification when broadcasting. gas/testsuite/ 2015-04-23 Jan Beulich <jbeulich@suse.com> * gas/i386/avx512dq.s: Drop 'z' suffix from vfpclassp{d,s} in some AT&T and all Intel cases. * gas/i386/x86-64-avx512dq.s: Likewise. * gas/i386/avx512dq_vl.s: Drop 'x' and 'y' suffixes from vcvt{,u}qq2ps and vfpclassp{d,s} in some AT&T and all Intel cases. * gas/i386/x86-64-avx512dq_vl.s: Likewise. * gas/i386/avx512f_vl.s: Drop 'x' and 'y' suffixes from vcvt{,t}pd2{,u}dq and vcvtpd2ps in some AT&T and all Intel cases. * gas/i386/x86-64-avx512f_vl.s: Likewise.
Diffstat (limited to 'gas/config/tc-i386.c')
-rw-r--r--gas/config/tc-i386.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 1ab1252..82abaef 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1686,6 +1686,7 @@ match_mem_size (const insn_template *t, unsigned int j)
{
return (match_reg_size (t, j)
&& !((i.types[j].bitfield.unspecified
+ && !i.broadcast
&& !t->operand_types[j].bitfield.unspecified)
|| (i.types[j].bitfield.fword
&& !t->operand_types[j].bitfield.fword)