@@ -106,15 +106,15 @@ def M3UnitNSHF : ProcResGroup<[M3UnitNSHF0,
106
106
//===----------------------------------------------------------------------===//
107
107
// Predicates.
108
108
109
- def M3BranchLinkFastPred : SchedPredicate<[{MI->getOpcode() == AArch64::BLR &&
110
- MI->getOperand(0).isReg() &&
111
- MI->getOperand(0).getReg() != AArch64::LR}]>;
112
- def M3ResetFastPred : SchedPredicate<[{TII->isExynosResetFast(*MI)}]>;
113
- def M3RotateRightFastPred : SchedPredicate<[{(MI->getOpcode() == AArch64::EXTRWrri ||
114
- MI->getOpcode() == AArch64::EXTRXrri) &&
115
- MI->getOperand(1).isReg() && MI->getOperand(2).isReg() &&
116
- MI->getOperand(1).getReg() == MI->getOperand(2).getReg()}]>;
117
- def M3ShiftLeftFastPred : SchedPredicate<[{TII->isExynosShiftLeftFast (*MI)}]>;
109
+ def M3BranchLinkPred : SchedPredicate<[{MI->getOpcode() == AArch64::BLR &&
110
+ MI->getOperand(0).isReg() &&
111
+ MI->getOperand(0).getReg() != AArch64::LR}]>;
112
+ def M3ResetPred : SchedPredicate<[{TII->isExynosResetFast(*MI)}]>;
113
+ def M3RotatePred : SchedPredicate<[{(MI->getOpcode() == AArch64::EXTRWrri ||
114
+ MI->getOpcode() == AArch64::EXTRXrri) &&
115
+ MI->getOperand(1).isReg() && MI->getOperand(2).isReg() &&
116
+ MI->getOperand(1).getReg() == MI->getOperand(2).getReg()}]>;
117
+ def M3ShiftExtPred : SchedPredicate<[{TII->isExynosShiftExtFast (*MI)}]>;
118
118
119
119
//===----------------------------------------------------------------------===//
120
120
// Coarse scheduling model.
@@ -137,15 +137,15 @@ def M3WriteAD : SchedWriteRes<[M3UnitALU,
137
137
let NumMicroOps = 2; }
138
138
def M3WriteC1 : SchedWriteRes<[M3UnitC]> { let Latency = 1; }
139
139
def M3WriteC2 : SchedWriteRes<[M3UnitC]> { let Latency = 2; }
140
- def M3WriteAX : SchedWriteVariant<[SchedVar<M3ResetFastPred, [M3WriteZ0]>,
141
- SchedVar<M3ShiftLeftFastPred , [M3WriteA1]>,
142
- SchedVar<NoSchedPred, [M3WriteAA]>]>;
143
- def M3WriteAY : SchedWriteVariant<[SchedVar<M3RotateRightFastPred , [M3WriteA1]>,
144
- SchedVar<NoSchedPred, [M3WriteAA]>]>;
140
+ def M3WriteAX : SchedWriteVariant<[SchedVar<M3ResetPred, [M3WriteZ0]>,
141
+ SchedVar<M3ShiftExtPred , [M3WriteA1]>,
142
+ SchedVar<NoSchedPred, [M3WriteAA]>]>;
143
+ def M3WriteAY : SchedWriteVariant<[SchedVar<M3RotatePred , [M3WriteA1]>,
144
+ SchedVar<NoSchedPred, [M3WriteAA]>]>;
145
145
146
146
def M3WriteB1 : SchedWriteRes<[M3UnitB]> { let Latency = 1; }
147
- def M3WriteBX : SchedWriteVariant<[SchedVar<M3BranchLinkFastPred , [M3WriteAB]>,
148
- SchedVar<NoSchedPred, [M3WriteAC]>]>;
147
+ def M3WriteBX : SchedWriteVariant<[SchedVar<M3BranchLinkPred , [M3WriteAB]>,
148
+ SchedVar<NoSchedPred, [M3WriteAC]>]>;
149
149
150
150
def M3WriteL4 : SchedWriteRes<[M3UnitL]> { let Latency = 4; }
151
151
def M3WriteL5 : SchedWriteRes<[M3UnitL]> { let Latency = 5; }
@@ -165,8 +165,8 @@ def M3WriteLD : SchedWriteRes<[M3UnitA,
165
165
def M3WriteLH : SchedWriteRes<[]> { let Latency = 5;
166
166
let NumMicroOps = 0; }
167
167
168
- def M3WriteLX : SchedWriteVariant<[SchedVar<M3ShiftLeftFastPred , [M3WriteL5]>,
169
- SchedVar<NoSchedPred, [M3WriteLB]>]>;
168
+ def M3WriteLX : SchedWriteVariant<[SchedVar<M3ShiftExtPred , [M3WriteL5]>,
169
+ SchedVar<NoSchedPred, [M3WriteLB]>]>;
170
170
171
171
def M3WriteS1 : SchedWriteRes<[M3UnitS]> { let Latency = 1; }
172
172
def M3WriteSA : SchedWriteRes<[M3UnitA,
@@ -180,10 +180,10 @@ def M3WriteSC : SchedWriteRes<[M3UnitA,
180
180
M3UnitS]> { let Latency = 2;
181
181
let NumMicroOps = 2; }
182
182
183
- def M3WriteSX : SchedWriteVariant<[SchedVar<M3ShiftLeftFastPred , [M3WriteS1]>,
184
- SchedVar<NoSchedPred, [M3WriteSB]>]>;
185
- def M3WriteSY : SchedWriteVariant<[SchedVar<M3ShiftLeftFastPred , [M3WriteS1]>,
186
- SchedVar<NoSchedPred, [M3WriteSC]>]>;
183
+ def M3WriteSX : SchedWriteVariant<[SchedVar<M3ShiftExtPred , [M3WriteS1]>,
184
+ SchedVar<NoSchedPred, [M3WriteSB]>]>;
185
+ def M3WriteSY : SchedWriteVariant<[SchedVar<M3ShiftExtPred , [M3WriteS1]>,
186
+ SchedVar<NoSchedPred, [M3WriteSC]>]>;
187
187
188
188
def M3ReadAdrBase : SchedReadVariant<[SchedVar<ScaledIdxPred, [ReadDefault]>,
189
189
SchedVar<NoSchedPred, [ReadDefault]>]>;
@@ -481,8 +481,8 @@ def M3WriteAES : SchedWriteRes<[M3UnitNCRY]> { let Latency = 1; }
481
481
def M3ReadAES : SchedReadAdvance<1, [M3WriteAES]>;
482
482
def M3ReadFMAC : SchedReadAdvance<1, [M3WriteFMAC4,
483
483
M3WriteFMAC5]>;
484
- def M3WriteMOVI : SchedWriteVariant<[SchedVar<M3ResetFastPred , [M3WriteZ0]>,
485
- SchedVar<NoSchedPred, [M3WriteNALU1]>]>;
484
+ def M3WriteMOVI : SchedWriteVariant<[SchedVar<M3ResetPred , [M3WriteZ0]>,
485
+ SchedVar<NoSchedPred, [M3WriteNALU1]>]>;
486
486
def M3ReadNMUL : SchedReadAdvance<1, [M3WriteNMUL3]>;
487
487
488
488
// Branch instructions
0 commit comments