summaryrefslogtreecommitdiffstats
path: root/lib/Target/Alpha/Alpha.td
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/Alpha/Alpha.td')
-rw-r--r--lib/Target/Alpha/Alpha.td56
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/Target/Alpha/Alpha.td b/lib/Target/Alpha/Alpha.td
new file mode 100644
index 0000000..e48bea1
--- /dev/null
+++ b/lib/Target/Alpha/Alpha.td
@@ -0,0 +1,56 @@
+//===- Alpha.td - Describe the Alpha Target Machine ----*- tablegen -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+//
+//===----------------------------------------------------------------------===//
+
+// Get the target-independent interfaces which we are implementing...
+//
+include "../Target.td"
+
+//Alpha is little endian
+
+//===----------------------------------------------------------------------===//
+// Register File Description
+//===----------------------------------------------------------------------===//
+
+include "AlphaRegisterInfo.td"
+
+//===----------------------------------------------------------------------===//
+// Instruction Descriptions
+//===----------------------------------------------------------------------===//
+
+include "AlphaInstrInfo.td"
+
+def AlphaInstrInfo : InstrInfo {
+ let PHIInst = PHI;
+
+ // Define how we want to layout our target-specific information field.
+ // let TSFlagsFields = [];
+ // let TSFlagsShifts = [];
+}
+
+def Alpha : Target {
+ // Pointers on Alpha are 64-bits in size.
+ let PointerType = i64;
+
+ let CalleeSavedRegisters =
+ //saved regs
+ [R9, R10, R11, R12, R13, R14,
+ //Frame pointer
+ R15,
+ //return address
+ R26,
+ //Stack Pointer
+ R30,
+ F2, F3, F4, F5, F6, F7, F8, F9];
+
+ // Pull in Instruction Info:
+ let InstructionSet = AlphaInstrInfo;
+}