]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/MSP430/MSP430.td
Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304149, and update
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / MSP430 / MSP430.td
1 //===-- MSP430.td - Describe the MSP430 Target Machine -----*- tablegen -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source 
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 // This is the top level entry point for the MSP430 target.
10 //===----------------------------------------------------------------------===//
11
12 //===----------------------------------------------------------------------===//
13 // Target-independent interfaces
14 //===----------------------------------------------------------------------===//
15
16 include "llvm/Target/Target.td"
17
18 //===----------------------------------------------------------------------===//
19 // Subtarget Features. 
20 //===----------------------------------------------------------------------===//
21 def FeatureX
22  : SubtargetFeature<"ext", "ExtendedInsts", "true",
23                     "Enable MSP430-X extensions">;
24
25 def FeatureHWMult16
26  : SubtargetFeature<"hwmult16", "HWMultMode", "HWMult16",
27                     "Enable 16-bit hardware multiplier">;
28
29 def FeatureHWMult32
30  : SubtargetFeature<"hwmult32", "HWMultMode", "HWMult32",
31                     "Enable 32-bit hardware multiplier">;
32
33 def FeatureHWMultF5
34  : SubtargetFeature<"hwmultf5", "HWMultMode", "HWMultF5",
35                     "Enable F5 series hardware multiplier">;
36
37 //===----------------------------------------------------------------------===//
38 // MSP430 supported processors.
39 //===----------------------------------------------------------------------===//
40 class Proc<string Name, list<SubtargetFeature> Features>
41  : Processor<Name, NoItineraries, Features>;
42
43 def : Proc<"generic",         []>;
44 def : Proc<"msp430",          []>;
45 def : Proc<"msp430x",         [FeatureX]>;
46
47 //===----------------------------------------------------------------------===//
48 // Register File Description
49 //===----------------------------------------------------------------------===//
50
51 include "MSP430RegisterInfo.td"
52
53 //===----------------------------------------------------------------------===//
54 // Calling Convention Description
55 //===----------------------------------------------------------------------===//
56
57 include "MSP430CallingConv.td"
58
59 //===----------------------------------------------------------------------===//
60 // Instruction Descriptions
61 //===----------------------------------------------------------------------===//
62
63 include "MSP430InstrInfo.td"
64
65 def MSP430InstrInfo : InstrInfo;
66
67 //===----------------------------------------------------------------------===//
68 // Target Declaration
69 //===----------------------------------------------------------------------===//
70
71 def MSP430 : Target {
72   let InstructionSet = MSP430InstrInfo;
73 }
74