1 //===-- Nios2Schedule.td - Nios2 Scheduling Definitions ----*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 //===----------------------------------------------------------------------===//
11 // Functional units across Nios2 chips sets. Based on GCC/Nios2 backend files.
12 //===----------------------------------------------------------------------===//
14 def IMULDIV : FuncUnit;
16 //===----------------------------------------------------------------------===//
17 // Instruction Itinerary classes used for Nios2
18 //===----------------------------------------------------------------------===//
19 def IIAlu : InstrItinClass;
20 def IILoad : InstrItinClass;
21 def IIStore : InstrItinClass;
22 def IIFlush : InstrItinClass;
23 def IIIdiv : InstrItinClass;
24 def IIBranch : InstrItinClass;
26 def IIPseudo : InstrItinClass;
28 //===----------------------------------------------------------------------===//
29 // Nios2 Generic instruction itineraries.
30 //===----------------------------------------------------------------------===//
31 //@ http://llvm.org/docs/doxygen/html/structllvm_1_1InstrStage.html
32 def 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]>]>