Mercurial > hg > CbC > CbC_llvm
diff lib/Target/Mips/Mips32r6InstrFormats.td @ 120:1172e4bd9c6f
update 4.0.0
author | mir3636 |
---|---|
date | Fri, 25 Nov 2016 19:14:25 +0900 |
parents | afa8332a0e37 |
children | c2174574ed3a |
line wrap: on
line diff
--- a/lib/Target/Mips/Mips32r6InstrFormats.td Tue Jan 26 22:56:36 2016 +0900 +++ b/lib/Target/Mips/Mips32r6InstrFormats.td Fri Nov 25 19:14:25 2016 +0900 @@ -45,6 +45,7 @@ class OPGROUP<bits<6> Val> { bits<6> Value = Val; } +def OPGROUP_COP0 : OPGROUP<0b010000>; def OPGROUP_COP1 : OPGROUP<0b010001>; def OPGROUP_COP2 : OPGROUP<0b010010>; def OPGROUP_ADDI : OPGROUP<0b001000>; @@ -201,6 +202,21 @@ let Inst{15-0} = offset; } +class COP0_EVP_DVP_FM<bits<1> sc> : MipsR6Inst { + bits<5> rt; + + bits<32> Inst; + + let Inst{31-26} = OPGROUP_COP0.Value; + let Inst{25-21} = 0b01011; + let Inst{20-16} = rt; + let Inst{15-11} = 0b00000; + let Inst{10-6} = 0b00000; + let Inst{5} = sc; + let Inst{4-3} = 0b00; + let Inst{2-0} = 0b100; +} + class COP1_2R_FM<bits<6> funct, FIELD_FMT Format> : MipsR6Inst { bits<5> fs; bits<5> fd; @@ -360,7 +376,7 @@ } // This class is ambiguous with other branches: -// BEQC/BNEC require that rs > rt +// BEQC/BNEC require that rs < rt && rs != 0 class CMP_BRANCH_2R_OFF16_FM<OPGROUP funct> : MipsR6Inst { bits<5> rs; bits<5> rt;