summaryrefslogtreecommitdiff
path: root/lib/Target/Mips/MicroMipsInstrInfo.td
diff options
context:
space:
mode:
authorZoran Jovanovic <zoran.jovanovic@imgtec.com>2013-09-14 06:49:25 +0000
committerZoran Jovanovic <zoran.jovanovic@imgtec.com>2013-09-14 06:49:25 +0000
commit47b33528d1b4298bf8cc5dcca8b531dfd0e704bb (patch)
tree3b09b82495b8592175ac7663257fb9ca965b9f6b /lib/Target/Mips/MicroMipsInstrInfo.td
parent58b90b1e38ec6f5d6f11afae1cf3097dc8fb49aa (diff)
downloadllvm-47b33528d1b4298bf8cc5dcca8b531dfd0e704bb.tar.gz
llvm-47b33528d1b4298bf8cc5dcca8b531dfd0e704bb.tar.bz2
llvm-47b33528d1b4298bf8cc5dcca8b531dfd0e704bb.tar.xz
Support for misc microMIPS instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190744 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/MicroMipsInstrInfo.td')
-rw-r--r--lib/Target/Mips/MicroMipsInstrInfo.td16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Target/Mips/MicroMipsInstrInfo.td b/lib/Target/Mips/MicroMipsInstrInfo.td
index eaf2f31c3b..b274d6fa00 100644
--- a/lib/Target/Mips/MicroMipsInstrInfo.td
+++ b/lib/Target/Mips/MicroMipsInstrInfo.td
@@ -135,4 +135,20 @@ let DecoderNamespace = "MicroMips", Predicates = [InMicroMips] in {
def MADDU_MM : MMRel, MArithR<"maddu", 1>, MULT_FM_MM<0x36c>;
def MSUB_MM : MMRel, MArithR<"msub">, MULT_FM_MM<0x3ac>;
def MSUBU_MM : MMRel, MArithR<"msubu">, MULT_FM_MM<0x3ec>;
+
+ /// Count Leading
+ def CLZ_MM : MMRel, CountLeading0<"clz", GPR32Opnd>, CLO_FM_MM<0x16c>;
+ def CLO_MM : MMRel, CountLeading1<"clo", GPR32Opnd>, CLO_FM_MM<0x12c>;
+
+ /// Sign Ext In Register Instructions.
+ def SEB_MM : MMRel, SignExtInReg<"seb", i8, GPR32Opnd>, SEB_FM_MM<0x0ac>;
+ def SEH_MM : MMRel, SignExtInReg<"seh", i16, GPR32Opnd>, SEB_FM_MM<0x0ec>;
+
+ /// Word Swap Bytes Within Halfwords
+ def WSBH_MM : MMRel, SubwordSwap<"wsbh", GPR32Opnd>, SEB_FM_MM<0x1ec>;
+
+ def EXT_MM : MMRel, ExtBase<"ext", GPR32Opnd, uimm5, MipsExt>,
+ EXT_FM_MM<0x2c>;
+ def INS_MM : MMRel, InsBase<"ins", GPR32Opnd, uimm5, MipsIns>,
+ EXT_FM_MM<0x0c>;
}