diff options
author | Zoran Jovanovic <zoran.jovanovic@imgtec.com> | 2013-09-14 06:49:25 +0000 |
---|---|---|
committer | Zoran Jovanovic <zoran.jovanovic@imgtec.com> | 2013-09-14 06:49:25 +0000 |
commit | 47b33528d1b4298bf8cc5dcca8b531dfd0e704bb (patch) | |
tree | 3b09b82495b8592175ac7663257fb9ca965b9f6b /lib/Target/Mips/MicroMipsInstrInfo.td | |
parent | 58b90b1e38ec6f5d6f11afae1cf3097dc8fb49aa (diff) | |
download | llvm-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.td | 16 |
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>; } |