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