• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//===- MBlaze.td - Describe the MBlaze 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 MBlaze target.
10//===----------------------------------------------------------------------===//
11
12//===----------------------------------------------------------------------===//
13// Target-independent interfaces
14//===----------------------------------------------------------------------===//
15
16include "llvm/Target/Target.td"
17
18//===----------------------------------------------------------------------===//
19// Register File, Calling Conv, Instruction Descriptions
20//===----------------------------------------------------------------------===//
21
22include "MBlazeRegisterInfo.td"
23include "MBlazeSchedule.td"
24include "MBlazeIntrinsics.td"
25include "MBlazeInstrInfo.td"
26include "MBlazeCallingConv.td"
27
28def MBlazeInstrInfo : InstrInfo;
29
30//===----------------------------------------------------------------------===//
31// Microblaze Subtarget features                                              //
32//===----------------------------------------------------------------------===//
33
34def FeatureBarrel      : SubtargetFeature<"barrel", "HasBarrel", "true",
35                                "Implements barrel shifter">;
36def FeatureDiv         : SubtargetFeature<"div", "HasDiv", "true",
37                                "Implements hardware divider">;
38def FeatureMul         : SubtargetFeature<"mul", "HasMul", "true",
39                                "Implements hardware multiplier">;
40def FeaturePatCmp      : SubtargetFeature<"patcmp", "HasPatCmp", "true",
41                                "Implements pattern compare instruction">;
42def FeatureFPU         : SubtargetFeature<"fpu", "HasFPU", "true",
43                                "Implements floating point unit">;
44def FeatureMul64       : SubtargetFeature<"mul64", "HasMul64", "true",
45                                "Implements multiplier with 64-bit result">;
46def FeatureSqrt        : SubtargetFeature<"sqrt", "HasSqrt", "true",
47                                "Implements sqrt and floating point convert">;
48
49//===----------------------------------------------------------------------===//
50// MBlaze processors supported.
51//===----------------------------------------------------------------------===//
52
53def : Processor<"mblaze",  MBlazeGenericItineraries, []>;
54def : Processor<"mblaze3", MBlazePipe3Itineraries, []>;
55def : Processor<"mblaze5", MBlazePipe5Itineraries, []>;
56
57//===----------------------------------------------------------------------===//
58// Instruction Descriptions
59//===----------------------------------------------------------------------===//
60
61def MBlazeAsmWriter : AsmWriter {
62  string AsmWriterClassName  = "InstPrinter";
63  bit isMCAsmWriter = 1;
64}
65
66//===----------------------------------------------------------------------===//
67// Target Declaration
68//===----------------------------------------------------------------------===//
69
70def MBlaze : Target {
71  let InstructionSet = MBlazeInstrInfo;
72  let AssemblyWriters = [MBlazeAsmWriter];
73}
74