| //===- MBlaze.td - Describe the MBlaze 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 MBlaze target. |
| //===----------------------------------------------------------------------===// |
| |
| //===----------------------------------------------------------------------===// |
| // Target-independent interfaces |
| //===----------------------------------------------------------------------===// |
| |
| include "llvm/Target/Target.td" |
| |
| //===----------------------------------------------------------------------===// |
| // Register File, Calling Conv, Instruction Descriptions |
| //===----------------------------------------------------------------------===// |
| |
| include "MBlazeRegisterInfo.td" |
| include "MBlazeSchedule.td" |
| include "MBlazeIntrinsics.td" |
| include "MBlazeInstrInfo.td" |
| include "MBlazeCallingConv.td" |
| |
| def MBlazeInstrInfo : InstrInfo; |
| |
| //===----------------------------------------------------------------------===// |
| // Microblaze Subtarget features // |
| //===----------------------------------------------------------------------===// |
| |
| def FeatureBarrel : SubtargetFeature<"barrel", "HasBarrel", "true", |
| "Implements barrel shifter">; |
| def FeatureDiv : SubtargetFeature<"div", "HasDiv", "true", |
| "Implements hardware divider">; |
| def FeatureMul : SubtargetFeature<"mul", "HasMul", "true", |
| "Implements hardware multiplier">; |
| def FeaturePatCmp : SubtargetFeature<"patcmp", "HasPatCmp", "true", |
| "Implements pattern compare instruction">; |
| def FeatureFPU : SubtargetFeature<"fpu", "HasFPU", "true", |
| "Implements floating point unit">; |
| def FeatureMul64 : SubtargetFeature<"mul64", "HasMul64", "true", |
| "Implements multiplier with 64-bit result">; |
| def FeatureSqrt : SubtargetFeature<"sqrt", "HasSqrt", "true", |
| "Implements sqrt and floating point convert">; |
| |
| //===----------------------------------------------------------------------===// |
| // MBlaze processors supported. |
| //===----------------------------------------------------------------------===// |
| |
| def : Processor<"mblaze", MBlazeGenericItineraries, []>; |
| def : Processor<"mblaze3", MBlazePipe3Itineraries, []>; |
| def : Processor<"mblaze5", MBlazePipe5Itineraries, []>; |
| |
| //===----------------------------------------------------------------------===// |
| // Instruction Descriptions |
| //===----------------------------------------------------------------------===// |
| |
| def MBlazeAsmWriter : AsmWriter { |
| string AsmWriterClassName = "InstPrinter"; |
| bit isMCAsmWriter = 1; |
| } |
| |
| //===----------------------------------------------------------------------===// |
| // Target Declaration |
| //===----------------------------------------------------------------------===// |
| |
| def MBlaze : Target { |
| let InstructionSet = MBlazeInstrInfo; |
| let AssemblyWriters = [MBlazeAsmWriter]; |
| } |