x86: add more VexWIG
authorJan Beulich <jbeulich@novell.com>
Tue, 6 Nov 2018 10:39:42 +0000 (11:39 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 6 Nov 2018 10:39:42 +0000 (11:39 +0100)
commit0aaca1d90a2f9f075852b2ea5907937cca037044
treedd283d25a109e37f0121c91e51ace6a0edc458a7
parentbbae6b11eb3a3c4a4c2f589d6c2b30e3c6b97c04
x86: add more VexWIG

Commits 6865c0435a ("x86: Support VEX/EVEX WIG encoding") and 6fa52824c3
("x86: Replace VexW=3 with VexWIG") omitted quite a few templates, oddly
enough in some cases despite testcases getting added (which then were
recorded with wrong expected output).

Also adjust VPMAXUB's attributes in the AVX512BW case to match ordering
of that of neighboring templates.

For the moment SSE2AVX templates are left alone, as it isn't clear
whether they were intentionally left untouched by the original commits
(the descriptions don't say either way).

In this context I question the decision in commit 0375113302 ("x86: Add
-mvexwig=[0|1] option to assembler") to move the logic to determine the
value of the W bit ahead of the decision whether to use 2-byte VEX:
While I can see this as one possible interpretation of -mvexwig=, the
other alternative (setting the value of the bit only if it actually
exists in the encoding) looks as reasonable to me, and perhaps even more
in line with us generally trying to pick the shortest encoding.
12 files changed:
gas/ChangeLog
gas/testsuite/gas/i386/avx-wig.d
gas/testsuite/gas/i386/avx-wig.s
gas/testsuite/gas/i386/avx2-wig.d
gas/testsuite/gas/i386/avx2-wig.s
gas/testsuite/gas/i386/x86-64-avx-wig.d
gas/testsuite/gas/i386/x86-64-avx-wig.s
gas/testsuite/gas/i386/x86-64-avx2-wig.d
gas/testsuite/gas/i386/x86-64-avx2-wig.s
opcodes/ChangeLog
opcodes/i386-opc.tbl
opcodes/i386-tbl.h