[mips] Correct tail call encoding for MIPSR6
authorSimon Dardis <simon.dardis@imgtec.com>
Thu, 18 Aug 2016 13:22:43 +0000 (13:22 +0000)
committerSimon Dardis <simon.dardis@imgtec.com>
Thu, 18 Aug 2016 13:22:43 +0000 (13:22 +0000)
commitea3431598e552fdfb7cd69f92fecc661d64fa2b1
tree7d3f9520e0b820906b5f64c905f34612d766a221
parent83f6bbc1546fbc7736efb8c13d2590f5c3fd3647
[mips] Correct tail call encoding for MIPSR6

r277708 enabled tails calls for MIPS but used the 'jr' instruction when the
jump target was held in a register. For MIPSR6, 'jalr $zero, $reg' should
have been used. Additionally, add missing patterns for external and global
symbols for tail calls.

Reviewers: dsanders, vkalintiris

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

llvm-svn: 279064
llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td
llvm/lib/Target/Mips/MicroMipsInstrInfo.td
llvm/lib/Target/Mips/Mips32r6InstrInfo.td
llvm/lib/Target/Mips/Mips64InstrInfo.td
llvm/lib/Target/Mips/Mips64r6InstrInfo.td
llvm/lib/Target/Mips/MipsAsmPrinter.cpp
llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
llvm/lib/Target/Mips/MipsInstrInfo.cpp
llvm/lib/Target/Mips/MipsInstrInfo.td
llvm/test/CodeGen/Mips/tailcall/tailcall-wrong-isa.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/tailcall/tailcall.ll [moved from llvm/test/CodeGen/Mips/tailcall.ll with 100% similarity]