mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-16 14:31:59 +00:00
Fix incorrect scheduling itineraries for NEON vld1/vst1 instructions.
I added these instructions recently but I have no idea where these "1" values in the NextCycles field came from. As far as I can tell now, these instruction stages are clearly intended to overlap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120193 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ad1252498d
commit
8d41294664
@ -465,13 +465,13 @@ def CortexA8Itineraries : ProcessorItineraries<
|
||||
//
|
||||
// VLD1ln
|
||||
InstrItinData<IIC_VLD1ln, [InstrStage<1, [A8_Pipe0, A8_Pipe1]>,
|
||||
InstrStage<3, [A8_NLSPipe], 1>,
|
||||
InstrStage<3, [A8_NLSPipe], 0>,
|
||||
InstrStage<3, [A8_LSPipe]>],
|
||||
[3, 1, 1, 1]>,
|
||||
//
|
||||
// VLD1lnu
|
||||
InstrItinData<IIC_VLD1lnu, [InstrStage<1, [A8_Pipe0, A8_Pipe1]>,
|
||||
InstrStage<3, [A8_NLSPipe], 1>,
|
||||
InstrStage<3, [A8_NLSPipe], 0>,
|
||||
InstrStage<3, [A8_LSPipe]>],
|
||||
[3, 2, 1, 1, 1, 1]>,
|
||||
//
|
||||
@ -609,13 +609,13 @@ def CortexA8Itineraries : ProcessorItineraries<
|
||||
//
|
||||
// VST1ln
|
||||
InstrItinData<IIC_VST1ln, [InstrStage<1, [A8_Pipe0, A8_Pipe1]>,
|
||||
InstrStage<2, [A8_NLSPipe], 1>,
|
||||
InstrStage<2, [A8_NLSPipe], 0>,
|
||||
InstrStage<2, [A8_LSPipe]>],
|
||||
[1, 1, 1]>,
|
||||
//
|
||||
// VST1lnu
|
||||
InstrItinData<IIC_VST1lnu, [InstrStage<1, [A8_Pipe0, A8_Pipe1]>,
|
||||
InstrStage<2, [A8_NLSPipe], 1>,
|
||||
InstrStage<2, [A8_NLSPipe], 0>,
|
||||
InstrStage<2, [A8_LSPipe]>],
|
||||
[2, 1, 1, 1, 1]>,
|
||||
//
|
||||
|
@ -800,7 +800,7 @@ def CortexA9Itineraries : ProcessorItineraries<
|
||||
InstrStage<1, [A9_MUX0], 0>,
|
||||
InstrStage<1, [A9_DRegsN], 0, Required>,
|
||||
InstrStage<9, [A9_DRegsVFP], 0, Reserved>,
|
||||
InstrStage<3, [A9_NPipe], 1>,
|
||||
InstrStage<3, [A9_NPipe], 0>,
|
||||
InstrStage<3, [A9_LSUnit]>],
|
||||
[4, 1, 1, 1]>,
|
||||
//
|
||||
@ -809,7 +809,7 @@ def CortexA9Itineraries : ProcessorItineraries<
|
||||
InstrStage<1, [A9_MUX0], 0>,
|
||||
InstrStage<1, [A9_DRegsN], 0, Required>,
|
||||
InstrStage<9, [A9_DRegsVFP], 0, Reserved>,
|
||||
InstrStage<3, [A9_NPipe], 1>,
|
||||
InstrStage<3, [A9_NPipe], 0>,
|
||||
InstrStage<3, [A9_LSUnit]>],
|
||||
[4, 2, 1, 1, 1, 1]>,
|
||||
//
|
||||
@ -1018,7 +1018,7 @@ def CortexA9Itineraries : ProcessorItineraries<
|
||||
InstrStage<1, [A9_MUX0], 0>,
|
||||
InstrStage<1, [A9_DRegsN], 0, Required>,
|
||||
InstrStage<2, [A9_DRegsVFP], 0, Reserved>,
|
||||
InstrStage<2, [A9_NPipe], 1>,
|
||||
InstrStage<2, [A9_NPipe], 0>,
|
||||
InstrStage<2, [A9_LSUnit]>],
|
||||
[1, 1, 1]>,
|
||||
//
|
||||
@ -1027,7 +1027,7 @@ def CortexA9Itineraries : ProcessorItineraries<
|
||||
InstrStage<1, [A9_MUX0], 0>,
|
||||
InstrStage<1, [A9_DRegsN], 0, Required>,
|
||||
InstrStage<3, [A9_DRegsVFP], 0, Reserved>,
|
||||
InstrStage<3, [A9_NPipe], 1>,
|
||||
InstrStage<3, [A9_NPipe], 0>,
|
||||
InstrStage<3, [A9_LSUnit]>],
|
||||
[2, 1, 1, 1, 1]>,
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user