• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
10def f32ImmOperand : AsmOperandClass { let Name = "f32Imm"; }
11def f32Imm : Operand<f32> { let ParserMatchClass = f32ImmOperand; }
12def f64ImmOperand : AsmOperandClass { let Name = "f64Imm"; }
13def f64Imm : Operand<f64> { let ParserMatchClass = f64ImmOperand; }
14def s8_0Imm64Pred  : PatLeaf<(i64 imm), [{ return isInt<8>(N->getSExtValue()); }]>;
15def s9_0ImmOperand : AsmOperandClass { let Name = "s9_0Imm"; }
16def s9_0Imm : Operand<i32> { let ParserMatchClass = s9_0ImmOperand; }
17def s27_2ImmOperand : AsmOperandClass { let Name = "s27_2Imm"; let RenderMethod = "addSignedImmOperands"; }
18def s27_2Imm : Operand<i32> { let ParserMatchClass = s27_2ImmOperand; }
19def r32_0ImmPred  : PatLeaf<(i32 imm), [{
20  int64_t v = (int64_t)N->getSExtValue();
21  return isInt<32>(v);
22}]>;
23def u9_0ImmPred  : PatLeaf<(i32 imm), [{
24  int64_t v = (int64_t)N->getSExtValue();
25  return isUInt<9>(v);
26}]>;
27def u64_0ImmOperand : AsmOperandClass { let Name = "u64_0Imm"; let RenderMethod = "addImmOperands"; }
28def u64_0Imm : Operand<i64> { let ParserMatchClass = u64_0ImmOperand; }
29def n1ConstOperand : AsmOperandClass { let Name = "n1Const"; }
30def n1Const : Operand<i32> { let ParserMatchClass = n1ConstOperand; }
31
32def bblabel : Operand<i32>;
33def bbl     : SDNode<"ISD::BasicBlock", SDTPtrLeaf, [], "BasicBlockSDNode">;
34