blob: 4508eda897d2b98aacbcd419ab00ce53754d8869 [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
Jakob Stoklund Olesenfddb7662010-04-05 03:10:20 +000050def AlphaInstrInfo : InstrInfo;
Andrew Lenharth304d0f32005-01-22 23:41:55 +000051
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, []>;
Andrew Lenharth3553d862007-01-24 21:09:16 +000057def : Processor<"ev6" , Alpha21264Itineraries, []>;
58def : Processor<"ev67" , Alpha21264Itineraries, [FeatureCIX]>;
Chris Lattner5882e402005-10-23 22:08:45 +000059
60//===----------------------------------------------------------------------===//
61// The Alpha Target
62//===----------------------------------------------------------------------===//
63
64
Andrew Lenharth304d0f32005-01-22 23:41:55 +000065def Alpha : Target {
Andrew Lenharth304d0f32005-01-22 23:41:55 +000066 // Pull in Instruction Info:
67 let InstructionSet = AlphaInstrInfo;
68}