summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMScheduleV6.td
diff options
context:
space:
mode:
authorDavid Goodwin <david_goodwin@apple.com>2009-08-11 22:38:43 +0000
committerDavid Goodwin <david_goodwin@apple.com>2009-08-11 22:38:43 +0000
commit546952fd600ddba3f1eb6d4f93ff4eb42821a962 (patch)
tree7b06ab7ec67d14a1bab1d9a63a36c71cb7d6cae7 /lib/Target/ARM/ARMScheduleV6.td
parente28a2e8b70e926324575ddec0a1565c6dba7d404 (diff)
downloadllvm-546952fd600ddba3f1eb6d4f93ff4eb42821a962.tar.gz
llvm-546952fd600ddba3f1eb6d4f93ff4eb42821a962.tar.bz2
llvm-546952fd600ddba3f1eb6d4f93ff4eb42821a962.tar.xz
Allow a zero cycle stage to reserve/require a FU without advancing the cycle counter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78736 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMScheduleV6.td')
-rw-r--r--lib/Target/ARM/ARMScheduleV6.td16
1 files changed, 7 insertions, 9 deletions
diff --git a/lib/Target/ARM/ARMScheduleV6.td b/lib/Target/ARM/ARMScheduleV6.td
index f0b8116a03..755547a678 100644
--- a/lib/Target/ARM/ARMScheduleV6.td
+++ b/lib/Target/ARM/ARMScheduleV6.td
@@ -11,18 +11,16 @@
//
//===----------------------------------------------------------------------===//
+// TODO: this should model an ARM11
// Single issue pipeline so every itinerary starts with FU_pipe0
def V6Itineraries : ProcessorItineraries<[
- // single-cycle integer ALU
InstrItinData<IIC_iALU , [InstrStage<1, [FU_Pipe0]>]>,
- // loads have an extra cycle of latency, but are fully pipelined
+ InstrItinData<IIC_iMPY , [InstrStage<1, [FU_Pipe0]>]>,
InstrItinData<IIC_iLoad , [InstrStage<1, [FU_Pipe0]>, InstrStage<1, [FU_LdSt0]>]>,
- InstrItinData<IIC_fpLoad , [InstrStage<1, [FU_Pipe0]>, InstrStage<1, [FU_LdSt0]>]>,
- // fully-pipelined stores
InstrItinData<IIC_iStore , [InstrStage<1, [FU_Pipe0]>]>,
- InstrItinData<IIC_fpStore , [InstrStage<1, [FU_Pipe0]>]>,
- // fp ALU is not pipelined
- InstrItinData<IIC_fpALU , [InstrStage<6, [FU_Pipe0]>]>,
- // no delay slots, so the latency of a branch is unimportant
- InstrItinData<IIC_Br , [InstrStage<1, [FU_Pipe0]>]>
+ InstrItinData<IIC_Br , [InstrStage<1, [FU_Pipe0]>]>,
+ InstrItinData<IIC_fpALU , [InstrStage<1, [FU_Pipe0]>]>,
+ InstrItinData<IIC_fpMPY , [InstrStage<1, [FU_Pipe0]>]>,
+ InstrItinData<IIC_fpLoad , [InstrStage<1, [FU_Pipe0]>, InstrStage<1, [FU_LdSt0]>]>,
+ InstrItinData<IIC_fpStore , [InstrStage<1, [FU_Pipe0]>]>
]>;