aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMScheduleV6.td
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2010-09-29 00:49:25 +0000
committerEvan Cheng <evan.cheng@apple.com>2010-09-29 00:49:25 +0000
commit5d42c567c901508e80ab10ddba1bb30a5007d742 (patch)
treed23546c0e45665ec1377f623d98f344395f4e98b /lib/Target/ARM/ARMScheduleV6.td
parent98de5b46039984759f236cf991b0eebd179e9411 (diff)
downloadexternal_llvm-5d42c567c901508e80ab10ddba1bb30a5007d742.zip
external_llvm-5d42c567c901508e80ab10ddba1bb30a5007d742.tar.gz
external_llvm-5d42c567c901508e80ab10ddba1bb30a5007d742.tar.bz2
Separate itinerary classes for mvn from mov; for tst / teq from cmp / cmn.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115010 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMScheduleV6.td')
-rw-r--r--lib/Target/ARM/ARMScheduleV6.td12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMScheduleV6.td b/lib/Target/ARM/ARMScheduleV6.td
index 51b915f..f19d1d1 100644
--- a/lib/Target/ARM/ARMScheduleV6.td
+++ b/lib/Target/ARM/ARMScheduleV6.td
@@ -51,6 +51,12 @@ def ARMV6Itineraries : ProcessorItineraries<
InstrItinData<IIC_iCMPsi , [InstrStage<1, [V6_Pipe]>], [2, 1]>,
InstrItinData<IIC_iCMPsr , [InstrStage<2, [V6_Pipe]>], [3, 2, 1]>,
//
+ // Test instructions
+ InstrItinData<IIC_iTSTi , [InstrStage<1, [V6_Pipe]>], [2]>,
+ InstrItinData<IIC_iTSTr , [InstrStage<1, [V6_Pipe]>], [2, 2]>,
+ InstrItinData<IIC_iTSTsi , [InstrStage<1, [V6_Pipe]>], [2, 1]>,
+ InstrItinData<IIC_iTSTsr , [InstrStage<2, [V6_Pipe]>], [3, 2, 1]>,
+ //
// Move instructions, unconditional
InstrItinData<IIC_iMOVi , [InstrStage<1, [V6_Pipe]>], [2]>,
InstrItinData<IIC_iMOVr , [InstrStage<1, [V6_Pipe]>], [2, 2]>,
@@ -64,6 +70,12 @@ def ARMV6Itineraries : ProcessorItineraries<
InstrItinData<IIC_iCMOVr , [InstrStage<1, [V6_Pipe]>], [3, 2]>,
InstrItinData<IIC_iCMOVsi , [InstrStage<1, [V6_Pipe]>], [3, 1]>,
InstrItinData<IIC_iCMOVsr , [InstrStage<1, [V6_Pipe]>], [4, 2, 1]>,
+ //
+ // MVN instructions
+ InstrItinData<IIC_iMVNi , [InstrStage<1, [V6_Pipe]>], [2]>,
+ InstrItinData<IIC_iMVNr , [InstrStage<1, [V6_Pipe]>], [2, 2]>,
+ InstrItinData<IIC_iMVNsi , [InstrStage<1, [V6_Pipe]>], [2, 1]>,
+ InstrItinData<IIC_iMVNsr , [InstrStage<2, [V6_Pipe]>], [3, 2, 1]>,
// Integer multiply pipeline
//