blob: 65a760bdbe0ad7ff2de57b48ac5b03410add2d19 [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//
15include "../Target.td"
16
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//===----------------------------------------------------------------------===//
Andrew Lenharth017c5562006-03-09 17:16:45 +000033// Schedule Description
34//===----------------------------------------------------------------------===//
35
36include "AlphaSchedule.td"
37
38//===----------------------------------------------------------------------===//
Andrew Lenharth304d0f32005-01-22 23:41:55 +000039// Instruction Descriptions
40//===----------------------------------------------------------------------===//
41
42include "AlphaInstrInfo.td"
43
44def AlphaInstrInfo : InstrInfo {
Andrew Lenharth304d0f32005-01-22 23:41:55 +000045 // Define how we want to layout our target-specific information field.
46 // let TSFlagsFields = [];
47 // let TSFlagsShifts = [];
48}
49
Chris Lattner5882e402005-10-23 22:08:45 +000050//===----------------------------------------------------------------------===//
51// Alpha Processor Definitions
52//===----------------------------------------------------------------------===//
53
Andrew Lenharth017c5562006-03-09 17:16:45 +000054def : Processor<"generic", Alpha21264Itineraries, []>;
Andrew Lenharth3553d862007-01-24 21:09:16 +000055def : Processor<"ev6" , Alpha21264Itineraries, []>;
56def : Processor<"ev67" , Alpha21264Itineraries, [FeatureCIX]>;
Chris Lattner5882e402005-10-23 22:08:45 +000057
58//===----------------------------------------------------------------------===//
59// The Alpha Target
60//===----------------------------------------------------------------------===//
61
62
Andrew Lenharth304d0f32005-01-22 23:41:55 +000063def Alpha : Target {
Andrew Lenharth304d0f32005-01-22 23:41:55 +000064 // Pull in Instruction Info:
65 let InstructionSet = AlphaInstrInfo;
66}