mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-23 11:04:49 +00:00
[mips] Add tail call instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166338 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1f027135a8
commit
01a75c46e3
@ -177,6 +177,7 @@ def BLTZ64 : CBranchZero<0x01, 0, "bltz", setlt, CPU64Regs>;
|
||||
}
|
||||
let DecoderNamespace = "Mips64" in
|
||||
def JALR64 : JumpLinkReg<0x00, 0x09, "jalr", CPU64Regs>;
|
||||
def TAILCALL64_R : JumpFR<CPU64Regs, MipsTailCall>, IsTailCall;
|
||||
|
||||
let DecoderNamespace = "Mips64" in {
|
||||
/// Multiply and Divide Instructions.
|
||||
|
@ -191,6 +191,15 @@ class IsCall {
|
||||
bit isCall = 1;
|
||||
}
|
||||
|
||||
class IsTailCall {
|
||||
bit isCall = 1;
|
||||
bit isTerminator = 1;
|
||||
bit isReturn = 1;
|
||||
bit isBarrier = 1;
|
||||
bit hasExtraSrcRegAllocReq = 1;
|
||||
bit isCodeGenOnly = 1;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Instruction format superclass
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -1013,6 +1022,8 @@ def JAL : JumpLink<0x03, "jal">;
|
||||
def JALR : JumpLinkReg<0x00, 0x09, "jalr", CPURegs>;
|
||||
def BGEZAL : BranchLink<"bgezal", 0x11, CPURegs>;
|
||||
def BLTZAL : BranchLink<"bltzal", 0x10, CPURegs>;
|
||||
def TAILCALL : JumpFJ<0x02, "j", br>, IsTailCall;
|
||||
def TAILCALL_R : JumpFR<CPURegs, MipsTailCall>, IsTailCall;
|
||||
|
||||
def RET : RetBase<CPURegs>;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user