~ubuntu-branches/ubuntu/trusty/llvm-toolchain-snapshot/trusty-201310232150

« back to all changes in this revision

Viewing changes to lib/Target/ARM/ARMInstrInfo.td

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-27 15:01:57 UTC
  • mfrom: (0.10.1) (0.9.1) (0.8.1) (0.7.1) (0.6.1) (0.5.2)
  • Revision ID: package-import@ubuntu.com-20130527150157-tdkrsjpuvht7v0qx
Tags: 1:3.4~svn182733-1~exp1
* New snapshot release (3.4 release)
* Add a symlink of libLLVM-3.4.so.1 to usr/lib/llvm-3.4/lib/libLLVM-3.4.so
    to fix make the llvm-config-3.4 --libdir work (Closes: #708677)
  * Various packages rename to allow co installations:
    * libclang1 => libclang1-3.4
    * libclang1-dbg => libclang1-3.4-dbg
    * libclang-dev => libclang-3.4-dev
    * libclang-common-dev => libclang-common-3.4-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
582
582
def imm0_3 : Operand<i32> { let ParserMatchClass = Imm0_3AsmOperand; }
583
583
 
584
584
/// imm0_4 predicate - Immediate in the range [0,4].
585
 
def Imm0_4AsmOperand : ImmAsmOperand { let Name = "Imm0_4"; }
 
585
def Imm0_4AsmOperand : ImmAsmOperand
 
586
 
587
  let Name = "Imm0_4"; 
 
588
  let DiagnosticType = "ImmRange0_4";  
 
589
}
586
590
def imm0_4 : Operand<i32>, ImmLeaf<i32, [{ return Imm >= 0 && Imm < 5; }]> {
587
591
  let ParserMatchClass = Imm0_4AsmOperand;
588
592
  let DecoderMethod = "DecodeImm0_4";
2309
2313
     let Inst{23} = offset{12};
2310
2314
     let Inst{19-16} = addr;
2311
2315
     let Inst{11-0} = offset{11-0};
 
2316
     let Inst{4} = 0;
2312
2317
 
2313
2318
    let DecoderMethod = "DecodeAddrMode2IdxInstruction";
2314
2319
   }
4631
4636
                   (MCR p_imm:$cop, imm0_7:$opc1, GPR:$Rt, c_imm:$CRn,
4632
4637
                        c_imm:$CRm, 0, pred:$p)>;
4633
4638
def MRC : MovRCopro<"mrc", 1 /* from coprocessor to ARM core register */,
4634
 
                    (outs GPR:$Rt),
 
4639
                    (outs GPRwithAPSR:$Rt),
4635
4640
                    (ins p_imm:$cop, imm0_7:$opc1, c_imm:$CRn, c_imm:$CRm,
4636
4641
                         imm0_7:$opc2), []>;
4637
4642
def : ARMInstAlias<"mrc${p} $cop, $opc1, $Rt, $CRn, $CRm",
4638
 
                   (MRC GPR:$Rt, p_imm:$cop, imm0_7:$opc1, c_imm:$CRn,
 
4643
                   (MRC GPRwithAPSR:$Rt, p_imm:$cop, imm0_7:$opc1, c_imm:$CRn,
4639
4644
                        c_imm:$CRm, 0, pred:$p)>;
4640
4645
 
4641
4646
def : ARMPat<(int_arm_mrc imm:$cop, imm:$opc1, imm:$CRn, imm:$CRm, imm:$opc2),
4645
4650
                 list<dag> pattern>
4646
4651
  : ABXI<0b1110, oops, iops, NoItinerary,
4647
4652
         !strconcat(opc, "\t$cop, $opc1, $Rt, $CRn, $CRm, $opc2"), pattern> {
4648
 
  let Inst{31-28} = 0b1111;
 
4653
  let Inst{31-24} = 0b11111110;
4649
4654
  let Inst{20} = direction;
4650
4655
  let Inst{4} = 1;
4651
4656
 
4674
4679
                   (MCR2 p_imm:$cop, imm0_7:$opc1, GPR:$Rt, c_imm:$CRn,
4675
4680
                         c_imm:$CRm, 0)>;
4676
4681
def MRC2 : MovRCopro2<"mrc2", 1 /* from coprocessor to ARM core register */,
4677
 
                      (outs GPR:$Rt),
 
4682
                      (outs GPRwithAPSR:$Rt),
4678
4683
                      (ins p_imm:$cop, imm0_7:$opc1, c_imm:$CRn, c_imm:$CRm,
4679
4684
                           imm0_7:$opc2), []>;
4680
4685
def : ARMInstAlias<"mrc2$ $cop, $opc1, $Rt, $CRn, $CRm",
4681
 
                   (MRC2 GPR:$Rt, p_imm:$cop, imm0_7:$opc1, c_imm:$CRn,
 
4686
                   (MRC2 GPRwithAPSR:$Rt, p_imm:$cop, imm0_7:$opc1, c_imm:$CRn,
4682
4687
                         c_imm:$CRm, 0)>;
4683
4688
 
4684
4689
def : ARMV5TPat<(int_arm_mrc2 imm:$cop, imm:$opc1, imm:$CRn,