mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-04 17:58:22 +00:00
Fixup PPC440 load/store operand latencies
The operand latencies for loads and stores in the PPC440 itinerary were wrong (the store operands are all inputs, and the "with update" (pre-increment) instructions need a latency for the additional output). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195948 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b5ff1bb218
commit
6e33f489a1
@ -228,70 +228,70 @@ def PPC440Itineraries : ProcessorItineraries<
|
|||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1],
|
[1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStDCBF, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStDCBF, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1],
|
[1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStDCBI, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStDCBI, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1],
|
[1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStLoad, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStLoad, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<2, [P440_LWB]>],
|
InstrStage<2, [P440_LWB]>],
|
||||||
[5, 1],
|
[5, 1, 1],
|
||||||
[P440_GPR_Bypass, P440_GPR_Bypass]>,
|
[P440_GPR_Bypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStLoadUpd,[InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStLoadUpd,[InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<2, [P440_LWB]>],
|
InstrStage<2, [P440_LWB]>],
|
||||||
[5, 1],
|
[5, 2, 1, 1],
|
||||||
[P440_GPR_Bypass, P440_GPR_Bypass]>,
|
[P440_GPR_Bypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStStore, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStStore, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<2, [P440_LWB]>],
|
InstrStage<2, [P440_LWB]>],
|
||||||
[4, 1],
|
[1, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStStoreUpd,[InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStStoreUpd,[InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<2, [P440_LWB]>],
|
InstrStage<2, [P440_LWB]>],
|
||||||
[4, 1],
|
[2, 1, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStICBI, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStICBI, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1],
|
[4, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStSTFD, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStSTFD, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1, 1],
|
[1, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStSTFDU, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStSTFDU, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1, 1],
|
[2, 1, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStLFD, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStLFD, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
@ -305,28 +305,28 @@ def PPC440Itineraries : ProcessorItineraries<
|
|||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[5, 1, 1],
|
[5, 2, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStLHA, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStLHA, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1],
|
[4, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStLHAU, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStLHAU, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1],
|
[4, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStLMW, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStLMW, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1],
|
[4, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStLWARX, [InstrStage<1, [P440_DISS1]>,
|
InstrItinData<IIC_LdStLWARX, [InstrStage<1, [P440_DISS1]>,
|
||||||
InstrStage<1, [P440_IRACC], 0>,
|
InstrStage<1, [P440_IRACC], 0>,
|
||||||
@ -335,21 +335,21 @@ def PPC440Itineraries : ProcessorItineraries<
|
|||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1],
|
[4, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStSTD, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStSTD, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<2, [P440_LWB]>],
|
InstrStage<2, [P440_LWB]>],
|
||||||
[4, 1],
|
[4, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStSTDU, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStSTDU, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<2, [P440_LWB]>],
|
InstrStage<2, [P440_LWB]>],
|
||||||
[4, 1],
|
[2, 1, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStSTDCX, [InstrStage<1, [P440_DISS1]>,
|
InstrItinData<IIC_LdStSTDCX, [InstrStage<1, [P440_DISS1]>,
|
||||||
InstrStage<1, [P440_IRACC], 0>,
|
InstrStage<1, [P440_IRACC], 0>,
|
||||||
@ -358,7 +358,7 @@ def PPC440Itineraries : ProcessorItineraries<
|
|||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1],
|
[4, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStSTWCX, [InstrStage<1, [P440_DISS1]>,
|
InstrItinData<IIC_LdStSTWCX, [InstrStage<1, [P440_DISS1]>,
|
||||||
InstrStage<1, [P440_IRACC], 0>,
|
InstrStage<1, [P440_IRACC], 0>,
|
||||||
@ -367,7 +367,7 @@ def PPC440Itineraries : ProcessorItineraries<
|
|||||||
InstrStage<1, [P440_AGEN]>,
|
InstrStage<1, [P440_AGEN]>,
|
||||||
InstrStage<1, [P440_CRD]>,
|
InstrStage<1, [P440_CRD]>,
|
||||||
InstrStage<1, [P440_LWB]>],
|
InstrStage<1, [P440_LWB]>],
|
||||||
[4, 1],
|
[4, 1, 1],
|
||||||
[NoBypass, P440_GPR_Bypass]>,
|
[NoBypass, P440_GPR_Bypass]>,
|
||||||
InstrItinData<IIC_LdStSync, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
InstrItinData<IIC_LdStSync, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
|
||||||
InstrStage<1, [P440_LRACC]>,
|
InstrStage<1, [P440_LRACC]>,
|
||||||
|
Loading…
Reference in New Issue
Block a user