blob: a5ca773ef1d990afa0c6bc4333edfc405ace066a [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 Goodwinbcf81622009-08-10 15:56:13 +000013def FU_Pipe0 : FuncUnit; // pipeline 0 issue
14def FU_Pipe1 : FuncUnit; // pipeline 1 issue
15def FU_LdSt0 : FuncUnit; // pipeline 0 load/store
16def FU_LdSt1 : FuncUnit; // pipeline 1 load/store
Evan Cheng8557c2b2009-06-19 01:51:50 +000017
18//===----------------------------------------------------------------------===//
19// Instruction Itinerary classes used for ARM
20//
21def IIC_iALU : InstrItinClass;
22def IIC_iLoad : InstrItinClass;
23def IIC_iStore : InstrItinClass;
24def IIC_fpALU : InstrItinClass;
25def IIC_fpLoad : InstrItinClass;
26def IIC_fpStore : InstrItinClass;
27def IIC_Br : InstrItinClass;
28
29//===----------------------------------------------------------------------===//
30// Processor instruction itineraries.
31
David Goodwinbcf81622009-08-10 15:56:13 +000032def GenericItineraries : ProcessorItineraries<[
33 InstrItinData<IIC_iALU , [InstrStage<1, [FU_Pipe0]>]>,
34 InstrItinData<IIC_iLoad , [InstrStage<1, [FU_Pipe0]>, InstrStage<1, [FU_LdSt0]>]>,
35 InstrItinData<IIC_fpLoad , [InstrStage<1, [FU_Pipe0]>, InstrStage<1, [FU_LdSt0]>]>,
36 InstrItinData<IIC_iStore , [InstrStage<1, [FU_Pipe0]>]>,
37 InstrItinData<IIC_fpStore , [InstrStage<1, [FU_Pipe0]>]>,
38 InstrItinData<IIC_fpALU , [InstrStage<1, [FU_Pipe0]>]>,
39 InstrItinData<IIC_Br , [InstrStage<1, [FU_Pipe0]>]>
40]>;
41
Evan Cheng8557c2b2009-06-19 01:51:50 +000042
43include "ARMScheduleV6.td"
Evan Cheng6762d912009-07-21 18:54:14 +000044include "ARMScheduleV7.td"