1 //===- Alpha.td - Describe the Alpha Target Machine --------*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
13 // Get the target-independent interfaces which we are implementing...
15 include "../Target.td"
17 //Alpha is little endian
19 //===----------------------------------------------------------------------===//
21 //===----------------------------------------------------------------------===//
23 def FeatureCIX : SubtargetFeature<"CIX", "Enable CIX extentions">;
24 def FeatureFIX : SubtargetFeature<"FIX", "Enable FIX extentions">;
26 //===----------------------------------------------------------------------===//
27 // Register File Description
28 //===----------------------------------------------------------------------===//
30 include "AlphaRegisterInfo.td"
32 //===----------------------------------------------------------------------===//
33 // Instruction Descriptions
34 //===----------------------------------------------------------------------===//
36 include "AlphaInstrInfo.td"
38 def AlphaInstrInfo : InstrInfo {
41 // Define how we want to layout our target-specific information field.
42 // let TSFlagsFields = [];
43 // let TSFlagsShifts = [];
46 //===----------------------------------------------------------------------===//
47 // Alpha Processor Definitions
48 //===----------------------------------------------------------------------===//
50 def : Processor<"generic", NoItineraries, []>;
51 def : Processor<"pca56" , NoItineraries, []>;
52 def : Processor<"ev56" , NoItineraries, []>;
53 def : Processor<"ev6" , NoItineraries, [FeatureFIX]>;
54 def : Processor<"ev67" , NoItineraries, [FeatureFIX, FeatureCIX]>;
56 //===----------------------------------------------------------------------===//
58 //===----------------------------------------------------------------------===//
62 // Pointers on Alpha are 64-bits in size.
63 let PointerType = i64;
65 let CalleeSavedRegisters =
67 [R9, R10, R11, R12, R13, R14,
74 F2, F3, F4, F5, F6, F7, F8, F9];
76 // Pull in Instruction Info:
77 let InstructionSet = AlphaInstrInfo;