list<Register> regList> {
string Namespace = namespace;
- // RegType - Specify the ValueType of the registers in this register class.
- // Note that all registers in a register class must have the same ValueType.
+ // RegType - Specify the list ValueType of the registers in this register
+ // class. Note that all registers in a register class must have the same
+ // ValueTypes. This is a list because some targets permit storing different
+ // types in same register, for example vector values with 128-bit total size,
+ // but different count/size of items, like SSE on x86.
//
list<ValueType> RegTypes = regTypes;
//===----------------------------------------------------------------------===//
// Pull in the common support for scheduling
//
-include "../TargetSchedule.td"
+include "TargetSchedule.td"
class Predicate; // Forward def
/// of operands.
def variable_ops;
+/// ptr_rc definition - Mark this operand as being a pointer value whose
+/// register class is resolved dynamically via a callback to TargetInstrInfo.
+/// FIXME: We should probably change this to a class which contain a list of
+/// flags. But currently we have but one flag.
+def ptr_rc;
+
/// 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.
def PHI : Instruction {
let OperandList = (ops variable_ops);
let AsmString = "PHINODE";
+ let Namespace = "TargetInstrInfo";
}
def INLINEASM : Instruction {
let OperandList = (ops variable_ops);
let AsmString = "";
+ let Namespace = "TargetInstrInfo";
}
//===----------------------------------------------------------------------===//
// Target - This class contains the "global" target information
//
class Target {
- // CalleeSavedRegisters - As you might guess, this is a list of the callee
- // saved registers for a target.
- list<Register> CalleeSavedRegisters = [];
-
- // PointerType - Specify the value type to be used to represent pointers in
- // this target. Typically this is an i32 or i64 type.
- ValueType PointerType;
-
// InstructionSet - Instruction set description for this target.
InstrInfo InstructionSet;
//===----------------------------------------------------------------------===//
// Pull in the common support for DAG isel generation
//
-include "../TargetSelectionDAG.td"
+include "TargetSelectionDAG.td"