• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//===-- Nios2Schedule.td - Nios2 Scheduling Definitions ----*- 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
10//===----------------------------------------------------------------------===//
11// Functional units across Nios2 chips sets. Based on GCC/Nios2 backend files.
12//===----------------------------------------------------------------------===//
13def ALU     : FuncUnit;
14def IMULDIV : FuncUnit;
15
16//===----------------------------------------------------------------------===//
17// Instruction Itinerary classes used for Nios2
18//===----------------------------------------------------------------------===//
19def IIAlu              : InstrItinClass;
20def IILoad             : InstrItinClass;
21def IIStore            : InstrItinClass;
22def IIFlush            : InstrItinClass;
23def IIIdiv             : InstrItinClass;
24def IIBranch           : InstrItinClass;
25
26def IIPseudo           : InstrItinClass;
27
28//===----------------------------------------------------------------------===//
29// Nios2 Generic instruction itineraries.
30//===----------------------------------------------------------------------===//
31//@ http://llvm.org/docs/doxygen/html/structllvm_1_1InstrStage.html
32def Nios2GenericItineraries : ProcessorItineraries<[ALU, IMULDIV], [], [
33  InstrItinData<IIAlu              , [InstrStage<1,  [ALU]>]>,
34  InstrItinData<IILoad             , [InstrStage<3,  [ALU]>]>,
35  InstrItinData<IIStore            , [InstrStage<1,  [ALU]>]>,
36  InstrItinData<IIFlush            , [InstrStage<1,  [ALU]>]>,
37  InstrItinData<IIIdiv             , [InstrStage<38, [IMULDIV]>]>,
38  InstrItinData<IIBranch           , [InstrStage<1,  [ALU]>]>
39]>;
40