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.
Details
Details
- Reviewers
dsanders vkalintiris
Diff Detail
Diff Detail
Event Timeline
lib/Target/Mips/MipsInstrInfo.td | ||
---|---|---|
1377–1378 | You can avoid the duplication by dropping this line and picking between the two substitutions in MipsAsmPrinter::EmitInstruction() in the same way as PseudoReturn/PseudoIndirectBranch/etc. do. |
Comment Actions
Refactored tailcall register implementation. Now it's a pseudo instruction. Simplified normal tail call definition into a 2 parameter class.
You can avoid the duplication by dropping this line and picking between the two substitutions in MipsAsmPrinter::EmitInstruction() in the same way as PseudoReturn/PseudoIndirectBranch/etc. do.