diff options
Diffstat (limited to 'llvm/lib/Target/Mips/MipsDSPInstrFormats.td')
-rw-r--r-- | llvm/lib/Target/Mips/MipsDSPInstrFormats.td | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsDSPInstrFormats.td b/llvm/lib/Target/Mips/MipsDSPInstrFormats.td index c22bbdc2084..5680b736bd1 100644 --- a/llvm/lib/Target/Mips/MipsDSPInstrFormats.td +++ b/llvm/lib/Target/Mips/MipsDSPInstrFormats.td @@ -29,6 +29,34 @@ class PseudoDSP<dag outs, dag ins, list<dag> pattern>: let Predicates = [HasDSP]; } +// ADDU.QB sub-class format. +class ADDU_QB_FMT<bits<5> op> : DSPInst { + bits<5> rd; + bits<5> rs; + bits<5> rt; + + let Opcode = SPECIAL3_OPCODE.V; + + let Inst{25-21} = rs; + let Inst{20-16} = rt; + let Inst{15-11} = rd; + let Inst{10-6} = op; + let Inst{5-0} = 0b010000; +} + +class RADDU_W_QB_FMT<bits<5> op> : DSPInst { + bits<5> rd; + bits<5> rs; + + let Opcode = SPECIAL3_OPCODE.V; + + let Inst{25-21} = rs; + let Inst{20-16} = 0; + let Inst{15-11} = rd; + let Inst{10-6} = op; + let Inst{5-0} = 0b010000; +} + // DPA.W.PH sub-class format. class DPA_W_PH_FMT<bits<5> op> : DSPInst { bits<2> ac; |