blob: 6efdf554e1760f63ab480037c6ce5893b2350771 [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001//===- Alpha.td - Describe the Alpha Target Machine --------*- tablegen -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
Chris Lattner081ce942007-12-29 20:36:04 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Dan Gohmanf17a25c2007-07-18 16:29:46 +00007//
8//===----------------------------------------------------------------------===//
9//
10//
11//===----------------------------------------------------------------------===//
12
13// Get the target-independent interfaces which we are implementing...
14//
Evan Cheng301aaf52008-11-24 07:34:46 +000015include "llvm/Target/Target.td"
Dan Gohmanf17a25c2007-07-18 16:29:46 +000016
17//Alpha is little endian
18
19//===----------------------------------------------------------------------===//
20// Subtarget Features
21//===----------------------------------------------------------------------===//
22
23def FeatureCIX : SubtargetFeature<"cix", "HasCT", "true",
24 "Enable CIX extentions">;
25
26//===----------------------------------------------------------------------===//
27// Register File Description
28//===----------------------------------------------------------------------===//
29
30include "AlphaRegisterInfo.td"
31
32//===----------------------------------------------------------------------===//
Eli Friedmanc52e5592009-07-19 01:11:32 +000033// Calling Convention Description
34//===----------------------------------------------------------------------===//
35
36include "AlphaCallingConv.td"
37
38//===----------------------------------------------------------------------===//
Dan Gohmanf17a25c2007-07-18 16:29:46 +000039// Schedule Description
40//===----------------------------------------------------------------------===//
41
42include "AlphaSchedule.td"
43
44//===----------------------------------------------------------------------===//
45// Instruction Descriptions
46//===----------------------------------------------------------------------===//
47
48include "AlphaInstrInfo.td"
49
50def AlphaInstrInfo : InstrInfo {
51 // Define how we want to layout our target-specific information field.
52 // let TSFlagsFields = [];
53 // let TSFlagsShifts = [];
54}
55
56//===----------------------------------------------------------------------===//
57// Alpha Processor Definitions
58//===----------------------------------------------------------------------===//
59
60def : Processor<"generic", Alpha21264Itineraries, []>;
61def : Processor<"ev6" , Alpha21264Itineraries, []>;
62def : Processor<"ev67" , Alpha21264Itineraries, [FeatureCIX]>;
63
64//===----------------------------------------------------------------------===//
65// The Alpha Target
66//===----------------------------------------------------------------------===//
67
68
69def Alpha : Target {
70 // Pull in Instruction Info:
71 let InstructionSet = AlphaInstrInfo;
72}