[SystemZ] Correctly diagnose missing features in AsmParser
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Mon, 31 Oct 2016 14:25:05 +0000 (14:25 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Mon, 31 Oct 2016 14:25:05 +0000 (14:25 +0000)
commitd9001301d9dc29dc24297e7d1569b3cbf8b68652
treef7517449615f303c0f18c3198fca6d6cd70d8c50
parentec5d779eb84e34d7ef6cfc3d17b23576a9134303
[SystemZ] Correctly diagnose missing features in AsmParser

Currently, when using an instruction that is not supported on the
currently selected architecture, the LLVM assembler is likely to
diagnose an "invalid operand" instead of a "missing feature".

This is because many operands require a custom parser in order to
be processed correctly, and if an instruction is not available
according to the current feature set, the generated parser code
will also not detect the associated custom operand parsers.

Fixed by temporarily enabling all features while parsing operands.
The missing features will then be correctly detected when actually
parsing the instruction itself.

llvm-svn: 285575
llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
llvm/test/MC/SystemZ/insn-bad-z196.s
llvm/test/MC/SystemZ/insn-bad-zEC12.s
llvm/test/MC/SystemZ/insn-bad.s