diff options
Diffstat (limited to 'llvm/lib/Target/Mips/MipsMTInstrInfo.td')
| -rw-r--r-- | llvm/lib/Target/Mips/MipsMTInstrInfo.td | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsMTInstrInfo.td b/llvm/lib/Target/Mips/MipsMTInstrInfo.td index 722024b8c0b..ab6693f60fd 100644 --- a/llvm/lib/Target/Mips/MipsMTInstrInfo.td +++ b/llvm/lib/Target/Mips/MipsMTInstrInfo.td @@ -23,6 +23,10 @@ class DVPE_ENC : COP0_MFMC0_MT<FIELD5_1_2_DVPE_EVPE, FIELD5_1_2_DVPE_EVPE, class EVPE_ENC : COP0_MFMC0_MT<FIELD5_1_2_DVPE_EVPE, FIELD5_1_2_DVPE_EVPE, OPCODE_SC_E>; +class FORK_ENC : SPECIAL3_MT_FORK; + +class YIELD_ENC : SPECIAL3_MT_YIELD; + //===----------------------------------------------------------------------===// // MIPS MT Instruction Descriptions //===----------------------------------------------------------------------===// @@ -35,6 +39,22 @@ class MT_1R_DESC_BASE<string instr_asm, InstrItinClass Itin = NoItinerary> { InstrItinClass Itinerary = Itin; } +class FORK_DESC { + dag OutOperandList = (outs GPR32Opnd:$rs, GPR32Opnd:$rd); + dag InOperandList = (ins GPR32Opnd:$rt); + string AsmString = "fork\t$rd, $rs, $rt"; + list<dag> Pattern = []; + InstrItinClass Itinerary = II_FORK; +} + +class YIELD_DESC { + dag OutOperandList = (outs GPR32Opnd:$rd); + dag InOperandList = (ins GPR32Opnd:$rs); + string AsmString = "yield\t$rd, $rs"; + list<dag> Pattern = []; + InstrItinClass Itinerary = II_YIELD; +} + class DMT_DESC : MT_1R_DESC_BASE<"dmt", II_DMT>; class EMT_DESC : MT_1R_DESC_BASE<"emt", II_EMT>; @@ -55,6 +75,10 @@ let hasSideEffects = 1, isNotDuplicable = 1, def DVPE : DVPE_ENC, DVPE_DESC, ASE_MT; def EVPE : EVPE_ENC, EVPE_DESC, ASE_MT; + + def FORK : FORK_ENC, FORK_DESC, ASE_MT; + + def YIELD : YIELD_ENC, YIELD_DESC, ASE_MT; } //===----------------------------------------------------------------------===// @@ -69,4 +93,6 @@ let AdditionalPredicates = [NotInMicroMips] in { def : MipsInstAlias<"dvpe", (DVPE ZERO), 1>, ASE_MT; def : MipsInstAlias<"evpe", (EVPE ZERO), 1>, ASE_MT; + + def : MipsInstAlias<"yield $rs", (YIELD ZERO, GPR32Opnd:$rs), 1>, ASE_MT; } |

