1 //===-- MSP430.td - Describe the MSP430 Target Machine -----*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
9 // This is the top level entry point for the MSP430 target.
10 //===----------------------------------------------------------------------===//
12 //===----------------------------------------------------------------------===//
13 // Target-independent interfaces
14 //===----------------------------------------------------------------------===//
16 include "llvm/Target/Target.td"
18 //===----------------------------------------------------------------------===//
19 // Subtarget Features.
20 //===----------------------------------------------------------------------===//
22 : SubtargetFeature<"ext", "ExtendedInsts", "true",
23 "Enable MSP430-X extensions">;
26 : SubtargetFeature<"hwmult16", "HWMultMode", "HWMult16",
27 "Enable 16-bit hardware multiplier">;
30 : SubtargetFeature<"hwmult32", "HWMultMode", "HWMult32",
31 "Enable 32-bit hardware multiplier">;
34 : SubtargetFeature<"hwmultf5", "HWMultMode", "HWMultF5",
35 "Enable F5 series hardware multiplier">;
37 //===----------------------------------------------------------------------===//
38 // MSP430 supported processors.
39 //===----------------------------------------------------------------------===//
40 class Proc<string Name, list<SubtargetFeature> Features>
41 : Processor<Name, NoItineraries, Features>;
43 def : Proc<"generic", []>;
44 def : Proc<"msp430", []>;
45 def : Proc<"msp430x", [FeatureX]>;
47 //===----------------------------------------------------------------------===//
48 // Register File Description
49 //===----------------------------------------------------------------------===//
51 include "MSP430RegisterInfo.td"
53 //===----------------------------------------------------------------------===//
54 // Calling Convention Description
55 //===----------------------------------------------------------------------===//
57 include "MSP430CallingConv.td"
59 //===----------------------------------------------------------------------===//
60 // Instruction Descriptions
61 //===----------------------------------------------------------------------===//
63 include "MSP430InstrInfo.td"
65 def MSP430InstrInfo : InstrInfo;
67 //===----------------------------------------------------------------------===//
69 //===----------------------------------------------------------------------===//
72 let InstructionSet = MSP430InstrInfo;