[mips] Match 'ins' and its' variants with C++ code
authorSimon Dardis <simon.dardis@mips.com>
Fri, 3 Nov 2017 15:35:13 +0000 (15:35 +0000)
committerSimon Dardis <simon.dardis@mips.com>
Fri, 3 Nov 2017 15:35:13 +0000 (15:35 +0000)
commitd3b9f61c52a11516ea90de49e2db7823668b41c5
tree792964ee3a39d015c46c100a3bbf3b839dc97797
parent0916c6b6544883f7232967efdb3b29a5ac182185
[mips] Match 'ins' and its' variants with C++ code

Change the ISel matching of 'ins', 'dins[mu]' from tablegen code to
C++ code. This resolves an issue where ISel would select 'dins' instead
of 'dinsm' when the instructions size and position were individually in
range but their sum was out of range according to the ISA specification.

Reviewers: atanasyan

Differential Revision: https://reviews.llvm.org/D39117

llvm-svn: 317331
llvm/lib/Target/Mips/MicroMips64r6InstrInfo.td
llvm/lib/Target/Mips/MicroMipsInstrInfo.td
llvm/lib/Target/Mips/Mips64InstrInfo.td
llvm/lib/Target/Mips/MipsInstrInfo.td
llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
llvm/test/CodeGen/Mips/dins.ll