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 75