Fill out immediate operand classes, add a new Operand class
authorChris Lattner <sabre@nondot.org>
Wed, 11 Aug 2004 01:53:34 +0000 (01:53 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 11 Aug 2004 01:53:34 +0000 (01:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15642 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Target.td

index e111f85d0f0f5af18339c584f41985d5ab9d6e38..7158d4b0ba4fffc88ed39ab18d2ae01043829b7d 100644 (file)
@@ -151,10 +151,20 @@ class InstrInfo {
 /// list for an instruction.  This should be used like this:
 ///     (ops R32:$dst, R32:$src) or something similar.
 def ops;
-def i8imm;
-def i16imm;
-def i32imm;
-def i64imm;
+
+/// Operand Types - These provide the built-in operand types that may be used
+/// by a target.  Targets can optionally provide their own operand types as
+/// needed, though this should not be needed for RISC targets.
+class Operand<ValueType ty> {
+  int NumMIOperands = 1;
+  ValueType Type = ty;
+  string PrintMethod = "printOperand";
+}
+
+def i8imm  : Operand<i8>;
+def i16imm : Operand<i16>;
+def i32imm : Operand<i32>;
+def i64imm : Operand<i64>;
 
 //===----------------------------------------------------------------------===//
 // Target - This class contains the "global" target information