Home | History | Annotate | Download | only in Hexagon
      1 //===--- HexagonOperands.td -----------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 def f32ImmOperand : AsmOperandClass { let Name = "f32Imm"; }
     11 def f32Imm : Operand<f32> { let ParserMatchClass = f32ImmOperand; }
     12 def f64ImmOperand : AsmOperandClass { let Name = "f64Imm"; }
     13 def f64Imm : Operand<f64> { let ParserMatchClass = f64ImmOperand; }
     14 def s8_0Imm64Pred  : PatLeaf<(i64 imm), [{ return isInt<8>(N->getSExtValue()); }]>;
     15 def s9_0ImmOperand : AsmOperandClass { let Name = "s9_0Imm"; }
     16 def s9_0Imm : Operand<i32> { let ParserMatchClass = s9_0ImmOperand; }
     17 def s27_2ImmOperand : AsmOperandClass { let Name = "s27_2Imm"; let RenderMethod = "addSignedImmOperands"; }
     18 def s27_2Imm : Operand<i32> { let ParserMatchClass = s27_2ImmOperand; }
     19 def r32_0ImmPred  : PatLeaf<(i32 imm), [{
     20   int64_t v = (int64_t)N->getSExtValue();
     21   return isInt<32>(v);
     22 }]>;
     23 def u9_0ImmPred  : PatLeaf<(i32 imm), [{
     24   int64_t v = (int64_t)N->getSExtValue();
     25   return isUInt<9>(v);
     26 }]>;
     27 def u64_0ImmOperand : AsmOperandClass { let Name = "u64_0Imm"; let RenderMethod = "addImmOperands"; }
     28 def u64_0Imm : Operand<i64> { let ParserMatchClass = u64_0ImmOperand; }
     29 def n1ConstOperand : AsmOperandClass { let Name = "n1Const"; }
     30 def n1Const : Operand<i32> { let ParserMatchClass = n1ConstOperand; }
     31 
     32 def bblabel : Operand<i32>;
     33 def bbl     : SDNode<"ISD::BasicBlock", SDTPtrLeaf, [], "BasicBlockSDNode">;
     34