Home | History | Annotate | Download | only in MSP430
      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