[mips] Fix c.<cc>.<fmt> instruction definition.
authorSimon Dardis <simon.dardis@imgtec.com>
Fri, 9 Sep 2016 09:22:52 +0000 (09:22 +0000)
committerSimon Dardis <simon.dardis@imgtec.com>
Fri, 9 Sep 2016 09:22:52 +0000 (09:22 +0000)
commit8efa9790290d29931df95056b5b76fc0c3373e73
treee24e736dbc99762d1c3902e1bb3c35b8a2d6366c
parentddad6e028ec3f348fab624988d6ad1d4c1316f3e
[mips] Fix c.<cc>.<fmt> instruction definition.

As part of this effort, remove MipsFCmp nodes and use tablegen
patterns rather than custom lowering through C++.

Unexpectedly, this improves codesize for microMIPS as previous floating
point setcc expansions would materialize 0 and 1 into GPRs before using
the relevant mov[tf].[sd] instruction. Now $zero is used directly.

Reviewers: dsanders, vkalintiris, zoran.jovanovic

Differential Review: https://reviews.llvm.org/D23118

llvm-svn: 281022
37 files changed:
llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp
llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.h
llvm/lib/Target/Mips/MicroMipsInstrFPU.td
llvm/lib/Target/Mips/MicroMipsInstrFormats.td
llvm/lib/Target/Mips/MipsAsmPrinter.cpp
llvm/lib/Target/Mips/MipsAsmPrinter.h
llvm/lib/Target/Mips/MipsCondMov.td
llvm/lib/Target/Mips/MipsFastISel.cpp
llvm/lib/Target/Mips/MipsISelLowering.cpp
llvm/lib/Target/Mips/MipsISelLowering.h
llvm/lib/Target/Mips/MipsInstrFPU.td
llvm/lib/Target/Mips/MipsInstrFormats.td
llvm/lib/Target/Mips/MipsRegisterInfo.td
llvm/lib/Target/Mips/MipsSEInstrInfo.cpp
llvm/lib/Target/Mips/MipsSEInstrInfo.h
llvm/test/CodeGen/Mips/fcmp.ll
llvm/test/CodeGen/Mips/selectcc.ll
llvm/test/MC/Mips/mips32/valid-xfail.s
llvm/test/MC/Mips/mips32/valid.s
llvm/test/MC/Mips/mips32r2/valid-xfail.s
llvm/test/MC/Mips/mips32r2/valid.s
llvm/test/MC/Mips/mips32r3/valid-xfail.s
llvm/test/MC/Mips/mips32r3/valid.s
llvm/test/MC/Mips/mips32r5/valid-xfail.s
llvm/test/MC/Mips/mips32r5/valid.s
llvm/test/MC/Mips/mips4/valid-xfail.s
llvm/test/MC/Mips/mips4/valid.s
llvm/test/MC/Mips/mips5/valid-xfail.s
llvm/test/MC/Mips/mips5/valid.s
llvm/test/MC/Mips/mips64/valid-xfail.s
llvm/test/MC/Mips/mips64/valid.s
llvm/test/MC/Mips/mips64r2/valid-xfail.s
llvm/test/MC/Mips/mips64r2/valid.s
llvm/test/MC/Mips/mips64r3/valid-xfail.s
llvm/test/MC/Mips/mips64r3/valid.s
llvm/test/MC/Mips/mips64r5/valid-xfail.s
llvm/test/MC/Mips/mips64r5/valid.s