1234353Sdim//===-- MSP430.td - Describe the MSP430 Target Machine -----*- tablegen -*-===//
2193323Sed//
3193323Sed//                     The LLVM Compiler Infrastructure
4193323Sed//
5193323Sed// This file is distributed under the University of Illinois Open Source 
6193323Sed// License. See LICENSE.TXT for details.
7193323Sed//
8193323Sed//===----------------------------------------------------------------------===//
9193323Sed// This is the top level entry point for the MSP430 target.
10193323Sed//===----------------------------------------------------------------------===//
11193323Sed
12193323Sed//===----------------------------------------------------------------------===//
13193323Sed// Target-independent interfaces
14193323Sed//===----------------------------------------------------------------------===//
15193323Sed
16193323Sedinclude "llvm/Target/Target.td"
17193323Sed
18193323Sed//===----------------------------------------------------------------------===//
19193323Sed// Subtarget Features. 
20193323Sed//===----------------------------------------------------------------------===//
21193323Seddef FeatureX
22193323Sed : SubtargetFeature<"ext", "ExtendedInsts", "true",
23193323Sed                    "Enable MSP430-X extensions">;
24193323Sed
25193323Sed//===----------------------------------------------------------------------===//
26193323Sed// MSP430 supported processors.
27193323Sed//===----------------------------------------------------------------------===//
28193323Sedclass Proc<string Name, list<SubtargetFeature> Features>
29193323Sed : Processor<Name, NoItineraries, Features>;
30193323Sed
31193323Seddef : Proc<"generic",         []>;
32193323Sed
33193323Sed//===----------------------------------------------------------------------===//
34193323Sed// Register File Description
35193323Sed//===----------------------------------------------------------------------===//
36193323Sed
37193323Sedinclude "MSP430RegisterInfo.td"
38193323Sed
39193323Sed//===----------------------------------------------------------------------===//
40193323Sed// Calling Convention Description
41193323Sed//===----------------------------------------------------------------------===//
42193323Sed
43193323Sedinclude "MSP430CallingConv.td"
44193323Sed
45193323Sed//===----------------------------------------------------------------------===//
46193323Sed// Instruction Descriptions
47193323Sed//===----------------------------------------------------------------------===//
48193323Sed
49193323Sedinclude "MSP430InstrInfo.td"
50193323Sed
51206274Srdivackydef MSP430InstrInfo : InstrInfo;
52193323Sed
53199481Srdivackydef MSP430InstPrinter : AsmWriter {
54199481Srdivacky  string AsmWriterClassName  = "InstPrinter";
55218893Sdim  bit isMCAsmWriter = 1;
56199481Srdivacky}
57199481Srdivacky
58193323Sed//===----------------------------------------------------------------------===//
59193323Sed// Target Declaration
60193323Sed//===----------------------------------------------------------------------===//
61193323Sed
62193323Seddef MSP430 : Target {
63193323Sed  let InstructionSet = MSP430InstrInfo;
64199481Srdivacky  let AssemblyWriters = [MSP430InstPrinter];
65193323Sed}
66193323Sed
67