blob: 11a7b2a717ad1b8adb392626de7884fec3dcd9cd [file] [log] [blame]
Evan Cheng8557c2b2009-06-19 01:51:50 +00001//===- ARMSchedule.td - ARM 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 ARM processors
12//
David Goodwin546952f2009-08-11 22:38:43 +000013def FU_Issue : FuncUnit; // issue
14def FU_Pipe0 : FuncUnit; // pipeline 0
15def FU_Pipe1 : FuncUnit; // pipeline 1
David Goodwinbcf81622009-08-10 15:56:13 +000016def FU_LdSt0 : FuncUnit; // pipeline 0 load/store
17def FU_LdSt1 : FuncUnit; // pipeline 1 load/store
Evan Cheng8557c2b2009-06-19 01:51:50 +000018
19//===----------------------------------------------------------------------===//
20// Instruction Itinerary classes used for ARM
21//
22def IIC_iALU : InstrItinClass;
David Goodwin546952f2009-08-11 22:38:43 +000023def IIC_iMPY : InstrItinClass;
Evan Cheng8557c2b2009-06-19 01:51:50 +000024def IIC_iLoad : InstrItinClass;
25def IIC_iStore : InstrItinClass;
26def IIC_fpALU : InstrItinClass;
David Goodwin546952f2009-08-11 22:38:43 +000027def IIC_fpMPY : InstrItinClass;
Evan Cheng8557c2b2009-06-19 01:51:50 +000028def IIC_fpLoad : InstrItinClass;
29def IIC_fpStore : InstrItinClass;
30def IIC_Br : InstrItinClass;
31
32//===----------------------------------------------------------------------===//
33// Processor instruction itineraries.
34
David Goodwinbcf81622009-08-10 15:56:13 +000035def GenericItineraries : ProcessorItineraries<[
36 InstrItinData<IIC_iALU , [InstrStage<1, [FU_Pipe0]>]>,
David Goodwin546952f2009-08-11 22:38:43 +000037 InstrItinData<IIC_iMPY , [InstrStage<1, [FU_Pipe0]>]>,
David Goodwinbcf81622009-08-10 15:56:13 +000038 InstrItinData<IIC_iLoad , [InstrStage<1, [FU_Pipe0]>, InstrStage<1, [FU_LdSt0]>]>,
David Goodwinbcf81622009-08-10 15:56:13 +000039 InstrItinData<IIC_iStore , [InstrStage<1, [FU_Pipe0]>]>,
David Goodwin546952f2009-08-11 22:38:43 +000040 InstrItinData<IIC_Br , [InstrStage<1, [FU_Pipe0]>]>,
David Goodwinbcf81622009-08-10 15:56:13 +000041 InstrItinData<IIC_fpALU , [InstrStage<1, [FU_Pipe0]>]>,
David Goodwin546952f2009-08-11 22:38:43 +000042 InstrItinData<IIC_fpMPY , [InstrStage<1, [FU_Pipe0]>]>,
43 InstrItinData<IIC_fpLoad , [InstrStage<1, [FU_Pipe0]>, InstrStage<1, [FU_LdSt0]>]>,
44 InstrItinData<IIC_fpStore , [InstrStage<1, [FU_Pipe0]>]>
David Goodwinbcf81622009-08-10 15:56:13 +000045]>;
46
Evan Cheng8557c2b2009-06-19 01:51:50 +000047
48include "ARMScheduleV6.td"
Evan Cheng6762d912009-07-21 18:54:14 +000049include "ARMScheduleV7.td"