blob: 6efdf554e1760f63ab480037c6ce5893b2350771 [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//
Chris Lattner4ee451d2007-12-29 20:36:04 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Andrew Lenharth304d0f32005-01-22 23:41:55 +00007//
8//===----------------------------------------------------------------------===//
9//
10//
11//===----------------------------------------------------------------------===//
12
13// Get the target-independent interfaces which we are implementing...
14//
Evan Cheng027fdbe2008-11-24 07:34:46 +000015include "llvm/Target/Target.td"
Andrew Lenharth304d0f32005-01-22 23:41:55 +000016
17//Alpha is little endian
18
19//===----------------------------------------------------------------------===//
Chris Lattner5882e402005-10-23 22:08:45 +000020// Subtarget Features
21//===----------------------------------------------------------------------===//
22
Reid Spencer2b85c452007-04-16 14:06:19 +000023def FeatureCIX : SubtargetFeature<"cix", "HasCT", "true",
Jim Laskeyf0c2be42005-10-26 17:28:23 +000024 "Enable CIX extentions">;
Chris Lattner5882e402005-10-23 22:08:45 +000025
26//===----------------------------------------------------------------------===//
Andrew Lenharth304d0f32005-01-22 23:41:55 +000027// Register File Description
28//===----------------------------------------------------------------------===//
29
30include "AlphaRegisterInfo.td"
31
32//===----------------------------------------------------------------------===//
Eli Friedman796492d2009-07-19 01:11:32 +000033// Calling Convention Description
34//===----------------------------------------------------------------------===//
35
36include "AlphaCallingConv.td"
37
38//===----------------------------------------------------------------------===//
Andrew Lenharth017c5562006-03-09 17:16:45 +000039// Schedule Description
40//===----------------------------------------------------------------------===//
41
42include "AlphaSchedule.td"
43
44//===----------------------------------------------------------------------===//
Andrew Lenharth304d0f32005-01-22 23:41:55 +000045// Instruction Descriptions
46//===----------------------------------------------------------------------===//
47
48include "AlphaInstrInfo.td"
49
50def AlphaInstrInfo : InstrInfo {
Andrew Lenharth304d0f32005-01-22 23:41:55 +000051 // Define how we want to layout our target-specific information field.
52 // let TSFlagsFields = [];
53 // let TSFlagsShifts = [];
54}
55
Chris Lattner5882e402005-10-23 22:08:45 +000056//===----------------------------------------------------------------------===//
57// Alpha Processor Definitions
58//===----------------------------------------------------------------------===//
59
Andrew Lenharth017c5562006-03-09 17:16:45 +000060def : Processor<"generic", Alpha21264Itineraries, []>;
Andrew Lenharth3553d862007-01-24 21:09:16 +000061def : Processor<"ev6" , Alpha21264Itineraries, []>;
62def : Processor<"ev67" , Alpha21264Itineraries, [FeatureCIX]>;
Chris Lattner5882e402005-10-23 22:08:45 +000063
64//===----------------------------------------------------------------------===//
65// The Alpha Target
66//===----------------------------------------------------------------------===//
67
68
Andrew Lenharth304d0f32005-01-22 23:41:55 +000069def Alpha : Target {
Andrew Lenharth304d0f32005-01-22 23:41:55 +000070 // Pull in Instruction Info:
71 let InstructionSet = AlphaInstrInfo;
72}