Adds the evex-promoted opcodes vpgatherdd, vpgatherdq, vpgatherqd, vpgatherqq, vgatherdps, vgatherdpd, vgatherqps, vgatherqpd.
Adds the new AVX-512 opcodes vpscatterdd, vpscatterdq, vpscatterqd, vpscatterqq, vpscatterdps, vpscatterdpd, vpscatterqps, vpscatterqpd, vgatherpf0dpd, vgatherpf0dps, vgatherpf0qpd, vgatherpf0qps, vgatherpf1dpd, vgatherpf1dps, vgatherpf1qpd, vgatherpf1qps, vscatterpf0dpd, vscatterpf0dps, vscatterpf0qpd, vscatterpf0qps, vscatterpf1dpd, vscatterpf1dps, vscatterpf1qpd, vscatterpf1qps.
Adds an internal binary compatible flag index_reg_is_zmm to opnd_t.
Adds two new decode table flags vsiby, vsibz, in order to constrain the VSIB index register's size, instead of adding new types TYPE_VSIB. VSIB's size is already used for the element's size.
Splits the VSIBX|Y|Z macros into 6|15|31 in order to test different index registers.
Adds support to encoder/decoder to support AVX-512 extended VSIB index registers.
Adds tests for above.
Adds to existing AVX2 gather/scatter tests.
Opcodes have been checked against llvm-mc, binutils/gas/objdump and capstone.
Please note that Vol. 1 5.19 INTEL® ADVANCED VECTOR EXTENSIONS 512 (INTEL® AVX-512) mentions the instructions vscatterdd/dq/qd/qq, but the instructions are no further mentioned in the instruction tables. This is likey a typo for vpscatterdd/dq/qd/qq.
This patch concludes the AVX-512 encoder/decoder extensions. This is preliminary and further missed instructions may be added, if any. Further testing will be enabled. Also support for compressed displacements and VSIB address computation hasn't been added yet.
Please note DynamoRIO runtime does not fully support AVX-512 processes just yet.
One binutils/objdump bug has been filed: https://sourceware.org/bugzilla/show_bug.cgi?id=24719
Issue: #1312