clean this function up some
[oota-llvm.git] / lib / Target / Alpha / Alpha.td
index 13445f3da460b98fa838f1afc2961a6c36d6fd90..7cbb0f181f774c660062dacf487d4d8dfb1e727b 100644 (file)
@@ -16,6 +16,15 @@ include "../Target.td"
 
 //Alpha is little endian
 
+//===----------------------------------------------------------------------===//
+// Subtarget Features
+//===----------------------------------------------------------------------===//
+
+def FeatureCIX : SubtargetFeature<"CIX", "bool", "HasCT",
+                                  "Enable CIX extentions">;
+def FeatureFIX : SubtargetFeature<"FIX", "bool", "HasF2I",
+                                  "Enable FIX extentions">;
+
 //===----------------------------------------------------------------------===//
 // Register File Description
 //===----------------------------------------------------------------------===//
@@ -36,6 +45,21 @@ def AlphaInstrInfo : InstrInfo {
  // let TSFlagsShifts = [];
 }
 
+//===----------------------------------------------------------------------===//
+// Alpha Processor Definitions
+//===----------------------------------------------------------------------===//
+
+def : Processor<"generic", NoItineraries, []>;
+def : Processor<"pca56"  , NoItineraries, []>;
+def : Processor<"ev56"   , NoItineraries, []>;
+def : Processor<"ev6"    , NoItineraries, [FeatureFIX]>;
+def : Processor<"ev67"   , NoItineraries, [FeatureFIX, FeatureCIX]>;
+
+//===----------------------------------------------------------------------===//
+// The Alpha Target
+//===----------------------------------------------------------------------===//
+
+
 def Alpha : Target {
   // Pointers on Alpha are 64-bits in size.
   let PointerType = i64;
@@ -44,11 +68,11 @@ def Alpha : Target {
        //saved regs
        [R9, R10, R11, R12, R13, R14, 
        //Frame pointer
-       R15, 
+//     R15, 
        //return address
-       R26, 
+//     R26, 
        //Stack Pointer
-       R30,
+//     R30,
          F2, F3, F4, F5, F6, F7, F8, F9];
 
   // Pull in Instruction Info: