1 //===- MSP430.td - Describe the MSP430 Target Machine ---------*- tblgen -*-==// 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 //===----------------------------------------------------------------------===// 26 // MSP430 supported processors. 27 //===----------------------------------------------------------------------===// 28 class Proc<string Name, list<SubtargetFeature> Features> 29 : Processor<Name, NoItineraries, Features>; 30 31 def : Proc<"generic", []>; 32 33 //===----------------------------------------------------------------------===// 34 // Register File Description 35 //===----------------------------------------------------------------------===// 36 37 include "MSP430RegisterInfo.td" 38 39 //===----------------------------------------------------------------------===// 40 // Calling Convention Description 41 //===----------------------------------------------------------------------===// 42 43 include "MSP430CallingConv.td" 44 45 //===----------------------------------------------------------------------===// 46 // Instruction Descriptions 47 //===----------------------------------------------------------------------===// 48 49 include "MSP430InstrInfo.td" 50 51 def MSP430InstrInfo : InstrInfo; 52 53 def MSP430InstPrinter : AsmWriter { 54 string AsmWriterClassName = "InstPrinter"; 55 bit isMCAsmWriter = 1; 56 } 57 58 //===----------------------------------------------------------------------===// 59 // Target Declaration 60 //===----------------------------------------------------------------------===// 61 62 def MSP430 : Target { 63 let InstructionSet = MSP430InstrInfo; 64 let AssemblyWriters = [MSP430InstPrinter]; 65 } 66 67