]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
x86: correct VCVT{,U}SI2SD
authorJan Beulich <jbeulich@suse.com>
Fri, 24 May 2024 09:50:38 +0000 (11:50 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 24 May 2024 09:50:38 +0000 (11:50 +0200)
commitacd86c81f04405719471410302fe7f8e407d539c
tree5c8a85a65f8eeb250c7d9e7176dd0aa29d5ec90b
parentdb7814f3e5f0df1647d62d95f70285d41ec7585f
x86: correct VCVT{,U}SI2SD

Properly reject inappropriate suffixes (No_lSuf / No_qSuf mistakenly
omitted by cf665fee1d6c ["x86: re-work AVX512 embedded rounding / SAE"]),
to avoid emitting bad or arbitrarily guessed instructions. Interestingly
check_{long,qword}_suffix() don't help here, which perhaps is another
indication that the way they work right now isn't quite appropriate.

Sadly correcting just the templates breaks operand ambiguity detection,
since so far that worked from a single template permitting more than one
suffix. Here we have ambiguity though which can now be noticed only when
taking all (matching) templates together. Therefore we need to determine
further matching templates (see code comments for constraints), to then
accumulate permitted suffixes across all of them.
gas/config/tc-i386.c
gas/testsuite/gas/i386/x86-64-inval-avx512f.l
gas/testsuite/gas/i386/x86-64-inval-avx512f.s
opcodes/i386-opc.tbl
opcodes/i386-tbl.h