summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorZoran Jovanovic <zoran.jovanovic@imgtec.com>2014-10-10 13:31:18 +0000
committerZoran Jovanovic <zoran.jovanovic@imgtec.com>2014-10-10 13:31:18 +0000
commitb39a174f111420df7711f9fb9ace5f250122d1a2 (patch)
tree7b2fdd4d275933310156d1d5f2b2c6b34dc1fe7d /llvm/lib
parent6097bad3f837307b26d0543b4e2c3af64e2fd4ae (diff)
downloadbcm5719-llvm-b39a174f111420df7711f9fb9ace5f250122d1a2.tar.gz
bcm5719-llvm-b39a174f111420df7711f9fb9ace5f250122d1a2.zip
ps][microMIPS] Implement JRC instruction
Differential Revision: http://reviews.llvm.org/D5045 llvm-svn: 219494
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/Mips/MicroMipsInstrInfo.td11
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MicroMipsInstrInfo.td b/llvm/lib/Target/Mips/MicroMipsInstrInfo.td
index 1ff67546be8..86b4b0f279e 100644
--- a/llvm/lib/Target/Mips/MicroMipsInstrInfo.td
+++ b/llvm/lib/Target/Mips/MicroMipsInstrInfo.td
@@ -128,6 +128,16 @@ class JumpLinkRegSMM16<string opstr, RegisterOperand RO> :
let Defs = [RA];
}
+// 16-bit Jump Register Compact - No delay slot
+class JumpRegCMM16<string opstr, RegisterOperand RO> :
+ MicroMipsInst16<(outs), (ins RO:$rs), !strconcat(opstr, "\t$rs"),
+ [], IIBranch, FrmR> {
+ let isTerminator = 1;
+ let isBarrier = 1;
+ let isBranch = 1;
+ let isIndirectBranch = 1;
+}
+
// MicroMIPS Jump and Link (Call) - Short Delay Slot
let isCall = 1, hasDelaySlot = 1, Defs = [RA] in {
class JumpLinkMM<string opstr, DAGOperand opnd> :
@@ -151,6 +161,7 @@ def MFLO16_MM : MoveFromHILOMM<"mflo", GPR32Opnd, AC0>, MFHILO_FM_MM16<0x12>;
def MOVE16_MM : MoveMM16<"move", GPR32Opnd>, MOVE_FM_MM16<0x03>;
def JALR16_MM : JumpLinkRegMM16<"jalr", GPR32Opnd>, JALR_FM_MM16<0x0e>;
def JALRS16_MM : JumpLinkRegSMM16<"jalrs16", GPR32Opnd>, JALR_FM_MM16<0x0f>;
+def JRC16_MM : JumpRegCMM16<"jrc", GPR32Opnd>, JALR_FM_MM16<0x0d>;
def JRADDIUSP : JumpRAddiuStackMM16, JRADDIUSP_FM_MM16<0x18>;
class WaitMM<string opstr> :
OpenPOWER on IntegriCloud