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