[mips] Disable the selection of mixed microMIPS/MIPS code
authorSimon Atanasyan <simon@atanasyan.com>
Mon, 3 Sep 2018 20:48:55 +0000 (20:48 +0000)
committerSimon Atanasyan <simon@atanasyan.com>
Mon, 3 Sep 2018 20:48:55 +0000 (20:48 +0000)
commit4d13cb0a8a40dd41aa0e3eefc7d9cc5c9ef390aa
tree6cc4080afc51877fa084b76ebb2c17f80c5ce9ed
parentdd4a24c86c214f011b62daaf83bfab79607d043f
[mips] Disable the selection of mixed microMIPS/MIPS code

This patch modifies hasStandardEncoding() / inMicroMipsMode() /
inMips16Mode() methods of the MipsSubtarget class so only one can be
true at any one time. That prevents the selection of microMIPS and MIPS
instructions and patterns that are defined in TableGen files at the same
time. A few new patterns and instruction definitions hae been added to
keep test cases passed.

Differential revision: https://reviews.llvm.org/D51483

llvm-svn: 341338
llvm/lib/Target/Mips/MicroMipsInstrFPU.td
llvm/lib/Target/Mips/MicroMipsInstrInfo.td
llvm/lib/Target/Mips/MipsSEInstrInfo.cpp
llvm/lib/Target/Mips/MipsSubtarget.h
llvm/test/CodeGen/Mips/micromips-mtc-mfc.ll