MipsSchedule.td revision 52b7321a48ae6f1a4f8f56047196d49fdb19ac16
1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//===-- MipsSchedule.td - Mips Scheduling Definitions ------*- tablegen -*-===//
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//                     The LLVM Compiler Infrastructure
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//
5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// This file is distributed under the University of Illinois Open Source
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// License. See LICENSE.TXT for details.
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch//
868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)//===----------------------------------------------------------------------===//
97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//===----------------------------------------------------------------------===//
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Functional units across Mips chips sets. Based on GCC/Mips backend files.
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)//===----------------------------------------------------------------------===//
134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)def ALU     : FuncUnit;
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)def IMULDIV : FuncUnit;
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci//===----------------------------------------------------------------------===//
174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Instruction Itinerary classes used for Mips
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//===----------------------------------------------------------------------===//
197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochdef IIAlu              : InstrItinClass;
207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochdef IIArith            : InstrItinClass;
217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochdef IILogic            : InstrItinClass;
227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochdef IILoad             : InstrItinClass;
237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochdef IIStore            : InstrItinClass;
247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochdef IIXfer             : InstrItinClass;
257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochdef IIBranch           : InstrItinClass;
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochdef IIHiLo             : InstrItinClass;
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIImul             : InstrItinClass;
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIImult            : InstrItinClass;
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIIdiv             : InstrItinClass;
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIseb              : InstrItinClass;
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIslt              : InstrItinClass;
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFcvt             : InstrItinClass;
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFmove            : InstrItinClass;
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFcmp             : InstrItinClass;
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFadd             : InstrItinClass;
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFmulSingle       : InstrItinClass;
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFmulDouble       : InstrItinClass;
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFdivSingle       : InstrItinClass;
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFdivDouble       : InstrItinClass;
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFsqrtSingle      : InstrItinClass;
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFsqrtDouble      : InstrItinClass;
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFrecipFsqrtStep  : InstrItinClass;
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFLoad            : InstrItinClass;
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFStore           : InstrItinClass;
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIFmoveC1          : InstrItinClass;
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef IIPseudo           : InstrItinClass;
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci//===----------------------------------------------------------------------===//
491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Mips Generic instruction itineraries.
501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci//===----------------------------------------------------------------------===//
511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef MipsGenericItineraries : ProcessorItineraries<[ALU, IMULDIV], [], [
521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIAlu              , [InstrStage<1,  [ALU]>]>,
531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIArith            , [InstrStage<1,  [ALU]>]>,
541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IILogic            , [InstrStage<1,  [ALU]>]>,
551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IILoad             , [InstrStage<3,  [ALU]>]>,
561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIStore            , [InstrStage<1,  [ALU]>]>,
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIXfer             , [InstrStage<2,  [ALU]>]>,
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIBranch           , [InstrStage<1,  [ALU]>]>,
591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIHiLo             , [InstrStage<1,  [IMULDIV]>]>,
601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIImul             , [InstrStage<17, [IMULDIV]>]>,
611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIIdiv             , [InstrStage<38, [IMULDIV]>]>,
621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFcvt             , [InstrStage<1,  [ALU]>]>,
631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFmove            , [InstrStage<2,  [ALU]>]>,
641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFcmp             , [InstrStage<3,  [ALU]>]>,
651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFadd             , [InstrStage<4,  [ALU]>]>,
661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFmulSingle       , [InstrStage<7,  [ALU]>]>,
671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFmulDouble       , [InstrStage<8,  [ALU]>]>,
681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFdivSingle       , [InstrStage<23, [ALU]>]>,
691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFdivDouble       , [InstrStage<36, [ALU]>]>,
701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFsqrtSingle      , [InstrStage<54, [ALU]>]>,
711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFsqrtDouble      , [InstrStage<12, [ALU]>]>,
721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFrecipFsqrtStep  , [InstrStage<5,  [ALU]>]>,
731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFLoad            , [InstrStage<3,  [ALU]>]>,
741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFStore           , [InstrStage<1,  [ALU]>]>,
751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  InstrItinData<IIFmoveC1          , [InstrStage<2,  [ALU]>]>
761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci]>;
771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci