Classes need to have a prefix name, so that they can be tacked on to the pieces
[oota-llvm.git] / lib / Target / Target.td
index 0ee5c37f81dc446550e03b58517ac0e8100b7e6f..6fada3452e6068ca5171613b181ad579db9a34f8 100644 (file)
@@ -106,11 +106,12 @@ class RegisterClass<ValueType regType, int alignment, list<Register> regList> {
 // the Target/TargetInstrInfo.h file.
 //
 class Instruction {
-  string Name;              // The opcode string for this instruction
+  string Name = "";         // The opcode string for this instruction
   string Namespace = "";
+  string ClassPrefix = "";
 
   dag OperandList;          // An dag containing the MI operand list.
-  string AsmString;         // The .s format to print the instruction with.
+  string AsmString = "";    // The .s format to print the instruction with.
 
   // Pattern - Set to the DAG pattern for this instruction, if we know of one,
   // otherwise, uninitialized.
@@ -147,6 +148,14 @@ class InstrInfo {
   list<int>    TSFlagsShifts = [];
 }
 
+/// ops definition - This is just a simple marker used to identify the operands
+/// 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;
 
 //===----------------------------------------------------------------------===//
 // Target - This class contains the "global" target information