]> granicus.if.org Git - llvm/commit
[X86] Fix disassembling of EVEX instructions to stop accidentally decoding the SIB...
authorCraig Topper <craig.topper@intel.com>
Sat, 21 Oct 2017 20:03:20 +0000 (20:03 +0000)
committerCraig Topper <craig.topper@intel.com>
Sat, 21 Oct 2017 20:03:20 +0000 (20:03 +0000)
commite746b67d41b4ee293c06e8dc873750d0d405ee9b
treef8fdcf193155f14de17d089d51c3b36e842c86f4
parent3ef03332d0ece65bc0990ba078843fce31618256
[X86] Fix disassembling of EVEX instructions to stop accidentally decoding the SIB index register as an XMM/YMM/ZMM register.

This introduces a new operand type to encode the whether the index register should be XMM/YMM/ZMM. And new code to fixup the results created by readSIB.

This has the nice effect of removing a bunch of code that hard coded the name of every GATHER and SCATTER instruction to map the index type.

This fixes PR32807.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316273 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/Disassembler/X86Disassembler.cpp
lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h
test/MC/Disassembler/X86/x86-64.txt
utils/TableGen/X86RecognizableInstr.cpp