mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-25 23:45:36 +00:00
Add a SchedMachineModel for the PPC A2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178848 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3bc45c2ed1
commit
575e9229bd
@ -155,7 +155,7 @@ def : ProcessorModel<"e500mc", PPCE500mcModel,
|
||||
def : ProcessorModel<"e5500", PPCE5500Model,
|
||||
[DirectiveE5500, FeatureMFOCRF, Feature64Bit,
|
||||
FeatureSTFIWX, FeatureBookE, FeatureISEL]>;
|
||||
def : Processor<"a2", PPCA2Itineraries,
|
||||
def : ProcessorModel<"a2", PPCA2Model,
|
||||
[DirectiveA2, FeatureBookE, FeatureMFOCRF,
|
||||
FeatureFSqrt, FeatureFRE, FeatureFRES,
|
||||
FeatureFRSQRTE, FeatureFRSQRTES, FeatureRecipPrec,
|
||||
@ -163,7 +163,7 @@ def : Processor<"a2", PPCA2Itineraries,
|
||||
FeatureFPRND, FeatureFPCVT, FeatureISEL,
|
||||
FeaturePOPCNTD, FeatureLDBRX, Feature64Bit
|
||||
/*, Feature64BitRegs */]>;
|
||||
def : Processor<"a2q", PPCA2Itineraries,
|
||||
def : ProcessorModel<"a2q", PPCA2Model,
|
||||
[DirectiveA2, FeatureBookE, FeatureMFOCRF,
|
||||
FeatureFSqrt, FeatureFRE, FeatureFRES,
|
||||
FeatureFRSQRTE, FeatureFRSQRTES, FeatureRecipPrec,
|
||||
|
@ -749,3 +749,18 @@ def PPCA2Itineraries : ProcessorItineraries<
|
||||
[15, 7],
|
||||
[FPR_Bypass, FPR_Bypass]>
|
||||
]>;
|
||||
|
||||
// ===---------------------------------------------------------------------===//
|
||||
// A2 machine model for scheduling and other instruction cost heuristics.
|
||||
|
||||
def PPCA2Model : SchedMachineModel {
|
||||
let IssueWidth = 1; // 2 micro-ops are dispatched per cycle.
|
||||
let MinLatency = -1; // OperandCycles are interpreted as MinLatency.
|
||||
let LoadLatency = 6; // Optimistic load latency assuming bypass.
|
||||
// This is overriden by OperandCycles if the
|
||||
// Itineraries are queried instead.
|
||||
let MispredictPenalty = 6;
|
||||
|
||||
let Itineraries = PPCA2Itineraries;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user