blob: 39c185b47ba47d99f1f1a5e9de35c8778065a395 [file] [log] [blame]
Misha Brukman2a8350a2005-02-05 02:24:26 +00001//===- Alpha.td - Describe the Alpha Target Machine --------*- tablegen -*-===//
Andrew Lenharth304d0f32005-01-22 23:41:55 +00002//
3// The LLVM Compiler Infrastructure
4//
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.
7//
8//===----------------------------------------------------------------------===//
9//
10//
11//===----------------------------------------------------------------------===//
12
13// Get the target-independent interfaces which we are implementing...
14//
15include "../Target.td"
16
17//Alpha is little endian
18
19//===----------------------------------------------------------------------===//
Chris Lattner5882e402005-10-23 22:08:45 +000020// Subtarget Features
21//===----------------------------------------------------------------------===//
22
Evan Cheng19c95502006-01-27 08:09:42 +000023def FeatureCIX : SubtargetFeature<"CIX", "HasCT", "true",
Jim Laskeyf0c2be42005-10-26 17:28:23 +000024 "Enable CIX extentions">;
Evan Cheng19c95502006-01-27 08:09:42 +000025def FeatureFIX : SubtargetFeature<"FIX", "HasF2I", "true",
Jim Laskeyf0c2be42005-10-26 17:28:23 +000026 "Enable FIX extentions">;
Chris Lattner5882e402005-10-23 22:08:45 +000027
28//===----------------------------------------------------------------------===//
Andrew Lenharth304d0f32005-01-22 23:41:55 +000029// Register File Description
30//===----------------------------------------------------------------------===//
31
32include "AlphaRegisterInfo.td"
33
34//===----------------------------------------------------------------------===//
Andrew Lenharth017c5562006-03-09 17:16:45 +000035// Schedule Description
36//===----------------------------------------------------------------------===//
37
38include "AlphaSchedule.td"
39
40//===----------------------------------------------------------------------===//
Andrew Lenharth304d0f32005-01-22 23:41:55 +000041// Instruction Descriptions
42//===----------------------------------------------------------------------===//
43
44include "AlphaInstrInfo.td"
45
46def AlphaInstrInfo : InstrInfo {
Andrew Lenharth304d0f32005-01-22 23:41:55 +000047 // Define how we want to layout our target-specific information field.
48 // let TSFlagsFields = [];
49 // let TSFlagsShifts = [];
50}
51
Chris Lattner5882e402005-10-23 22:08:45 +000052//===----------------------------------------------------------------------===//
53// Alpha Processor Definitions
54//===----------------------------------------------------------------------===//
55
Andrew Lenharth017c5562006-03-09 17:16:45 +000056def : Processor<"generic", Alpha21264Itineraries, []>;
57def : Processor<"pca56" , Alpha21264Itineraries, []>;
58def : Processor<"ev56" , Alpha21264Itineraries, []>;
59def : Processor<"ev6" , Alpha21264Itineraries, [FeatureFIX]>;
60def : Processor<"ev67" , Alpha21264Itineraries, [FeatureFIX, FeatureCIX]>;
Chris Lattner5882e402005-10-23 22:08:45 +000061
62//===----------------------------------------------------------------------===//
63// The Alpha Target
64//===----------------------------------------------------------------------===//
65
66
Andrew Lenharth304d0f32005-01-22 23:41:55 +000067def Alpha : Target {
Andrew Lenharth304d0f32005-01-22 23:41:55 +000068 // Pull in Instruction Info:
69 let InstructionSet = AlphaInstrInfo;
70}