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