diff options
Diffstat (limited to 'lib/Target/Mips/MicroMips32r6InstrFormats.td')
| -rw-r--r-- | lib/Target/Mips/MicroMips32r6InstrFormats.td | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/Target/Mips/MicroMips32r6InstrFormats.td b/lib/Target/Mips/MicroMips32r6InstrFormats.td index 2f0933277e81..25048293714d 100644 --- a/lib/Target/Mips/MicroMips32r6InstrFormats.td +++ b/lib/Target/Mips/MicroMips32r6InstrFormats.td @@ -17,7 +17,7 @@ class MMR6Arch<string opstr> { string DecoderNamespace = "MicroMipsR6"; } -// Class used for microMIPS32r6 and microMIPS64r6 instructions. +// Class used for microMIPS32r6 instructions. class MicroMipsR6Inst16 : PredicateControl { string DecoderNamespace = "MicroMipsR6"; let InsnPredicates = [HasMicroMips32r6]; @@ -829,6 +829,21 @@ class POOL16C_NOT16_FM_MMR6 : MicroMipsR6Inst16 { let Inst{3-0} = 0b0000; } +class POOL16C_MOVEP16_FM_MMR6 : MicroMipsR6Inst16 { + bits<3> dst_regs; + bits<3> rt; + bits<3> rs; + + bits<16> Inst; + + let Inst{15-10} = 0b010001; + let Inst{9-7} = dst_regs; + let Inst{6-4} = rt; + let Inst{3} = rs{2}; + let Inst{2} = 0b1; + let Inst{1-0} = rs{1-0}; +} + class POOL16C_OR16_XOR16_FM_MMR6<bits<4> op> : MicroMipsR6Inst16 { bits<3> rt; bits<3> rs; |
