• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
16include "llvm/Target/Target.td"
17
18//===----------------------------------------------------------------------===//
19// Subtarget Features.
20//===----------------------------------------------------------------------===//
21def FeatureX
22 : SubtargetFeature<"ext", "ExtendedInsts", "true",
23                    "Enable MSP430-X extensions">;
24
25def FeatureHWMult16
26 : SubtargetFeature<"hwmult16", "HWMultMode", "HWMult16",
27                    "Enable 16-bit hardware multiplier">;
28
29def FeatureHWMult32
30 : SubtargetFeature<"hwmult32", "HWMultMode", "HWMult32",
31                    "Enable 32-bit hardware multiplier">;
32
33def FeatureHWMultF5
34 : SubtargetFeature<"hwmultf5", "HWMultMode", "HWMultF5",
35                    "Enable F5 series hardware multiplier">;
36
37//===----------------------------------------------------------------------===//
38// MSP430 supported processors.
39//===----------------------------------------------------------------------===//
40class Proc<string Name, list<SubtargetFeature> Features>
41 : Processor<Name, NoItineraries, Features>;
42
43def : Proc<"generic",         []>;
44def : Proc<"msp430",          []>;
45def : Proc<"msp430x",         [FeatureX]>;
46
47//===----------------------------------------------------------------------===//
48// Register File Description
49//===----------------------------------------------------------------------===//
50
51include "MSP430RegisterInfo.td"
52
53//===----------------------------------------------------------------------===//
54// Calling Convention Description
55//===----------------------------------------------------------------------===//
56
57include "MSP430CallingConv.td"
58
59//===----------------------------------------------------------------------===//
60// Instruction Descriptions
61//===----------------------------------------------------------------------===//
62
63include "MSP430InstrInfo.td"
64
65def MSP430InstrInfo : InstrInfo;
66
67//===----------------------------------------------------------------------===//
68// Target Declaration
69//===----------------------------------------------------------------------===//
70
71def MSP430 : Target {
72  let InstructionSet = MSP430InstrInfo;
73}
74
75