| //===-- MSP430.td - Describe the MSP430 Target Machine -----*- tablegen -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // This is the top level entry point for the MSP430 target. |
| //===----------------------------------------------------------------------===// |
| |
| //===----------------------------------------------------------------------===// |
| // Target-independent interfaces |
| //===----------------------------------------------------------------------===// |
| |
| include "llvm/Target/Target.td" |
| |
| //===----------------------------------------------------------------------===// |
| // Subtarget Features. |
| //===----------------------------------------------------------------------===// |
| def FeatureX |
| : SubtargetFeature<"ext", "ExtendedInsts", "true", |
| "Enable MSP430-X extensions">; |
| |
| def FeatureHWMult16 |
| : SubtargetFeature<"hwmult16", "HWMultMode", "HWMult16", |
| "Enable 16-bit hardware multiplier">; |
| |
| def FeatureHWMult32 |
| : SubtargetFeature<"hwmult32", "HWMultMode", "HWMult32", |
| "Enable 32-bit hardware multiplier">; |
| |
| def FeatureHWMultF5 |
| : SubtargetFeature<"hwmultf5", "HWMultMode", "HWMultF5", |
| "Enable F5 series hardware multiplier">; |
| |
| //===----------------------------------------------------------------------===// |
| // MSP430 supported processors. |
| //===----------------------------------------------------------------------===// |
| class Proc<string Name, list<SubtargetFeature> Features> |
| : Processor<Name, NoItineraries, Features>; |
| |
| def : Proc<"generic", []>; |
| def : Proc<"msp430", []>; |
| def : Proc<"msp430x", [FeatureX]>; |
| |
| //===----------------------------------------------------------------------===// |
| // Register File Description |
| //===----------------------------------------------------------------------===// |
| |
| include "MSP430RegisterInfo.td" |
| |
| //===----------------------------------------------------------------------===// |
| // Calling Convention Description |
| //===----------------------------------------------------------------------===// |
| |
| include "MSP430CallingConv.td" |
| |
| //===----------------------------------------------------------------------===// |
| // Instruction Descriptions |
| //===----------------------------------------------------------------------===// |
| |
| include "MSP430InstrInfo.td" |
| |
| def MSP430InstrInfo : InstrInfo; |
| |
| //===----------------------------------------------------------------------===// |
| // Target Declaration |
| //===----------------------------------------------------------------------===// |
| |
| def MSP430 : Target { |
| let InstructionSet = MSP430InstrInfo; |
| } |
| |