mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-11 21:45:16 +00:00
[mips] Add tail call instructions.
llvm-svn: 166338
This commit is contained in:
parent
8198825482
commit
54f6697369
@ -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…
Reference in New Issue
Block a user