mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Split several PPC instruction classes.
Slight reorganisation of PPC instruction classes for scheduling. No functionality change for existing subtargets. - Clearly separate load/store-with-update instructions from regular loads and stores. - Split IntRotateD -> IntRotateD and IntRotateDI - Split out fsub and fadd from FPGeneral -> FPAddSub - Update existing itineraries Patch by Tobias von Koch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162729 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -288,6 +288,15 @@ def PPC440Itineraries : ProcessorItineraries<
|
||||
InstrStage<2, [LWB]>],
|
||||
[9, 5],
|
||||
[GPR_Bypass, GPR_Bypass]>,
|
||||
InstrItinData<LdStLoadUpd , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
InstrStage<1, [LRACC]>,
|
||||
InstrStage<1, [AGEN]>,
|
||||
InstrStage<1, [CRD]>,
|
||||
InstrStage<2, [LWB]>],
|
||||
[9, 5],
|
||||
[GPR_Bypass, GPR_Bypass]>,
|
||||
InstrItinData<LdStStore , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
@@ -297,6 +306,15 @@ def PPC440Itineraries : ProcessorItineraries<
|
||||
InstrStage<2, [LWB]>],
|
||||
[8, 5],
|
||||
[NoBypass, GPR_Bypass]>,
|
||||
InstrItinData<LdStStoreUpd, [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
InstrStage<1, [LRACC]>,
|
||||
InstrStage<1, [AGEN]>,
|
||||
InstrStage<1, [CRD]>,
|
||||
InstrStage<2, [LWB]>],
|
||||
[8, 5],
|
||||
[NoBypass, GPR_Bypass]>,
|
||||
InstrItinData<LdStICBI , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
@@ -306,7 +324,7 @@ def PPC440Itineraries : ProcessorItineraries<
|
||||
InstrStage<1, [LWB]>],
|
||||
[8, 5],
|
||||
[NoBypass, GPR_Bypass]>,
|
||||
InstrItinData<LdStUX , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrItinData<LdStSTFD , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
InstrStage<1, [LRACC]>,
|
||||
@@ -315,6 +333,15 @@ def PPC440Itineraries : ProcessorItineraries<
|
||||
InstrStage<1, [LWB]>],
|
||||
[8, 5, 5],
|
||||
[NoBypass, GPR_Bypass, GPR_Bypass]>,
|
||||
InstrItinData<LdStSTFDU , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
InstrStage<1, [LRACC]>,
|
||||
InstrStage<1, [AGEN]>,
|
||||
InstrStage<1, [CRD]>,
|
||||
InstrStage<1, [LWB]>],
|
||||
[8, 5, 5],
|
||||
[NoBypass, GPR_Bypass, GPR_Bypass]>,
|
||||
InstrItinData<LdStLFD , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
@@ -342,6 +369,15 @@ def PPC440Itineraries : ProcessorItineraries<
|
||||
InstrStage<1, [LWB]>],
|
||||
[8, 5],
|
||||
[NoBypass, GPR_Bypass]>,
|
||||
InstrItinData<LdStLHAU , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
InstrStage<1, [LRACC]>,
|
||||
InstrStage<1, [AGEN]>,
|
||||
InstrStage<1, [CRD]>,
|
||||
InstrStage<1, [LWB]>],
|
||||
[8, 5],
|
||||
[NoBypass, GPR_Bypass]>,
|
||||
InstrItinData<LdStLMW , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
@@ -371,6 +407,15 @@ def PPC440Itineraries : ProcessorItineraries<
|
||||
InstrStage<2, [LWB]>],
|
||||
[8, 5],
|
||||
[NoBypass, GPR_Bypass]>,
|
||||
InstrItinData<LdStSTDU , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
InstrStage<1, [LRACC]>,
|
||||
InstrStage<1, [AGEN]>,
|
||||
InstrStage<1, [CRD]>,
|
||||
InstrStage<2, [LWB]>],
|
||||
[8, 5],
|
||||
[NoBypass, GPR_Bypass]>,
|
||||
InstrItinData<LdStSTDCX , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1]>,
|
||||
@@ -537,6 +582,19 @@ def PPC440Itineraries : ProcessorItineraries<
|
||||
InstrStage<1, [FWB]>],
|
||||
[10, 4, 4],
|
||||
[FPR_Bypass, FPR_Bypass, FPR_Bypass]>,
|
||||
InstrItinData<FPAddSub , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
InstrStage<1, [FRACC]>,
|
||||
InstrStage<1, [FEXE1]>,
|
||||
InstrStage<1, [FEXE2]>,
|
||||
InstrStage<1, [FEXE3]>,
|
||||
InstrStage<1, [FEXE4]>,
|
||||
InstrStage<1, [FEXE5]>,
|
||||
InstrStage<1, [FEXE6]>,
|
||||
InstrStage<1, [FWB]>],
|
||||
[10, 4, 4],
|
||||
[FPR_Bypass, FPR_Bypass, FPR_Bypass]>,
|
||||
InstrItinData<FPCompare , [InstrStage<1, [IFTH1, IFTH2]>,
|
||||
InstrStage<1, [PDCD1, PDCD2]>,
|
||||
InstrStage<1, [DISS1, DISS2]>,
|
||||
|
Reference in New Issue
Block a user