diff options
Diffstat (limited to 'lib/Target/Mips/MicroMipsInstrFormats.td')
| -rw-r--r-- | lib/Target/Mips/MicroMipsInstrFormats.td | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/Target/Mips/MicroMipsInstrFormats.td b/lib/Target/Mips/MicroMipsInstrFormats.td index 51b5c0cd612bf..560afa48908c9 100644 --- a/lib/Target/Mips/MicroMipsInstrFormats.td +++ b/lib/Target/Mips/MicroMipsInstrFormats.td @@ -131,6 +131,17 @@ class LOAD_STORE_SP_FM_MM16<bits<6> op> { let Inst{4-0} = offset; } +class LOAD_GP_FM_MM16<bits<6> op> { + bits<3> rt; + bits<7> offset; + + bits<16> Inst; + + let Inst{15-10} = op; + let Inst{9-7} = rt; + let Inst{6-0} = offset; +} + class ADDIUS5_FM_MM16 { bits<5> rd; bits<4> imm; @@ -238,6 +249,29 @@ class BEQNEZ_FM_MM16<bits<6> op> { let Inst{6-0} = offset; } +class B16_FM { + bits<10> offset; + + bits<16> Inst; + + let Inst{15-10} = 0x33; + let Inst{9-0} = offset; +} + +class MOVEP_FM_MM16 { + bits<3> dst_regs; + bits<3> rt; + bits<3> rs; + + bits<16> Inst; + + let Inst{15-10} = 0x21; + let Inst{9-7} = dst_regs; + let Inst{6-4} = rt; + let Inst{3-1} = rs; + let Inst{0} = 0; +} + //===----------------------------------------------------------------------===// // MicroMIPS 32-bit Instruction Formats //===----------------------------------------------------------------------===// @@ -898,3 +932,14 @@ class BARRIER_FM_MM<bits<5> op> : MMArch { let Inst{10-6} = 0x0; let Inst{5-0} = 0x0; } + +class ADDIUPC_FM_MM { + bits<3> rs; + bits<23> imm; + + bits<32> Inst; + + let Inst{31-26} = 0x1e; + let Inst{25-23} = rs; + let Inst{22-0} = imm; +} |
