[PATCH] D35625: Removal of microMIPS64R6
Simon Dardis via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 28 04:19:26 PDT 2017
sdardis added a comment.
For SelectionDAGISel purposes, these instruction mappings were spurious as SelectionDAGISel would pick the corresponding microMIPS instruction due to the various predicates. If however, these instructions were introduced by the likes of MipsSEISelLowering or MipsSEISelDAGToDAG, etc, we'd end up with a mixture of MIPS and microMIPS code. This isn't a problem when producing assembly, as the textual representation is the same, but for object emission we need to produce the correct opcodes. The instruction mapping tables quietly "fixup" the usage of MIPS opcodes in microMIPS code which simplifies injecting instructions by hand in cpp as we don't have to constantly do things like:
BuildMI(MBB, I, DL, TII.get(STI.inMicroMips ? Mips::DADDU_MMR6 : Mips::DADDu), V1).addReg(V0)
throughout the codebase.
Repository:
rL LLVM
https://reviews.llvm.org/D35625
More information about the llvm-commits
mailing list