14 const Instruction*
instr)
const {
15 switch (
instr->arch_opcode()) {
17 case kPPC_AndComplement:
19 case kPPC_OrComplement:
21 case kPPC_ShiftLeft32:
22 case kPPC_ShiftLeft64:
23 case kPPC_ShiftLeftPair:
24 case kPPC_ShiftRight32:
25 case kPPC_ShiftRight64:
26 case kPPC_ShiftRightPair:
27 case kPPC_ShiftRightAlg32:
28 case kPPC_ShiftRightAlg64:
29 case kPPC_ShiftRightAlgPair:
33 case kPPC_RotLeftAndMask32:
34 case kPPC_RotLeftAndClear64:
35 case kPPC_RotLeftAndClearLeft64:
36 case kPPC_RotLeftAndClearRight64:
39 case kPPC_AddWithOverflow32:
43 case kPPC_SubWithOverflow32:
47 case kPPC_Mul32WithHigh32:
68 case kPPC_FloorDouble:
70 case kPPC_TruncateDouble:
71 case kPPC_RoundDouble:
84 case kPPC_ExtendSignWord8:
85 case kPPC_ExtendSignWord16:
86 case kPPC_ExtendSignWord32:
87 case kPPC_Uint32ToUint64:
88 case kPPC_Int64ToInt32:
89 case kPPC_Int64ToFloat32:
90 case kPPC_Int64ToDouble:
91 case kPPC_Uint64ToFloat32:
92 case kPPC_Uint64ToDouble:
93 case kPPC_Int32ToFloat32:
94 case kPPC_Int32ToDouble:
95 case kPPC_Uint32ToFloat32:
96 case kPPC_Uint32ToDouble:
97 case kPPC_Float32ToInt32:
98 case kPPC_Float32ToUint32:
99 case kPPC_Float32ToDouble:
100 case kPPC_Float64SilenceNaN:
101 case kPPC_DoubleToInt32:
102 case kPPC_DoubleToUint32:
103 case kPPC_DoubleToInt64:
104 case kPPC_DoubleToUint64:
105 case kPPC_DoubleToFloat32:
106 case kPPC_DoubleExtractLowWord32:
107 case kPPC_DoubleExtractHighWord32:
108 case kPPC_DoubleFromWord32Pair:
109 case kPPC_DoubleInsertLowWord32:
110 case kPPC_DoubleInsertHighWord32:
111 case kPPC_DoubleConstruct:
112 case kPPC_BitcastInt32ToFloat32:
113 case kPPC_BitcastFloat32ToInt32:
114 case kPPC_BitcastInt64ToDouble:
115 case kPPC_BitcastDoubleToInt64:
134 case kPPC_F64x2Floor:
135 case kPPC_F64x2Trunc:
138 case kPPC_F64x2ConvertLowI32x4S:
139 case kPPC_F64x2ConvertLowI32x4U:
140 case kPPC_F64x2PromoteLowF32x4:
151 case kPPC_F32x4SConvertI32x4:
152 case kPPC_F32x4UConvertI32x4:
159 case kPPC_F32x4Floor:
160 case kPPC_F32x4Trunc:
163 case kPPC_F32x4DemoteF64x2Zero:
175 case kPPC_I64x2BitMask:
176 case kPPC_I64x2SConvertI32x4Low:
177 case kPPC_I64x2SConvertI32x4High:
178 case kPPC_I64x2UConvertI32x4Low:
179 case kPPC_I64x2UConvertI32x4High:
180 case kPPC_I64x2ExtMulLowI32x4S:
181 case kPPC_I64x2ExtMulHighI32x4S:
182 case kPPC_I64x2ExtMulLowI32x4U:
183 case kPPC_I64x2ExtMulHighI32x4U:
203 case kPPC_I32x4SConvertF32x4:
204 case kPPC_I32x4UConvertF32x4:
205 case kPPC_I32x4SConvertI16x8Low:
206 case kPPC_I32x4SConvertI16x8High:
207 case kPPC_I32x4UConvertI16x8Low:
208 case kPPC_I32x4UConvertI16x8High:
209 case kPPC_I32x4BitMask:
210 case kPPC_I32x4DotI16x8S:
211 case kPPC_I32x4ExtAddPairwiseI16x8S:
212 case kPPC_I32x4ExtAddPairwiseI16x8U:
213 case kPPC_I32x4ExtMulLowI16x8S:
214 case kPPC_I32x4ExtMulHighI16x8S:
215 case kPPC_I32x4ExtMulLowI16x8U:
216 case kPPC_I32x4ExtMulHighI16x8U:
217 case kPPC_I32x4TruncSatF64x2SZero:
218 case kPPC_I32x4TruncSatF64x2UZero:
219 case kPPC_I32x4DotI8x16AddS:
238 case kPPC_I16x8SConvertI32x4:
239 case kPPC_I16x8UConvertI32x4:
240 case kPPC_I16x8SConvertI8x16Low:
241 case kPPC_I16x8SConvertI8x16High:
242 case kPPC_I16x8UConvertI8x16Low:
243 case kPPC_I16x8UConvertI8x16High:
244 case kPPC_I16x8AddSatS:
245 case kPPC_I16x8SubSatS:
246 case kPPC_I16x8AddSatU:
247 case kPPC_I16x8SubSatU:
248 case kPPC_I16x8RoundingAverageU:
249 case kPPC_I16x8BitMask:
250 case kPPC_I16x8ExtAddPairwiseI8x16S:
251 case kPPC_I16x8ExtAddPairwiseI8x16U:
252 case kPPC_I16x8Q15MulRSatS:
253 case kPPC_I16x8ExtMulLowI8x16S:
254 case kPPC_I16x8ExtMulHighI8x16S:
255 case kPPC_I16x8ExtMulLowI8x16U:
256 case kPPC_I16x8ExtMulHighI8x16U:
257 case kPPC_I16x8DotI8x16S:
275 case kPPC_I8x16SConvertI16x8:
276 case kPPC_I8x16UConvertI16x8:
277 case kPPC_I8x16AddSatS:
278 case kPPC_I8x16SubSatS:
279 case kPPC_I8x16AddSatU:
280 case kPPC_I8x16SubSatU:
281 case kPPC_I8x16RoundingAverageU:
282 case kPPC_I8x16Shuffle:
283 case kPPC_I8x16Swizzle:
284 case kPPC_I8x16BitMask:
285 case kPPC_I8x16Popcnt:
286 case kPPC_I64x2AllTrue:
287 case kPPC_I32x4AllTrue:
288 case kPPC_I16x8AllTrue:
289 case kPPC_I8x16AllTrue:
290 case kPPC_V128AnyTrue:
296 case kPPC_S128AllOnes:
298 case kPPC_S128Select:
299 case kPPC_S128AndNot:
300 case kPPC_FExtractLane:
301 case kPPC_IExtractLane:
302 case kPPC_IExtractLaneU:
303 case kPPC_IExtractLaneS:
304 case kPPC_FReplaceLane:
305 case kPPC_IReplaceLane:
308 case kPPC_LoadReverseSimd128RR:
311 case kPPC_LoadWordS8:
312 case kPPC_LoadWordU8:
313 case kPPC_LoadWordS16:
314 case kPPC_LoadWordU16:
315 case kPPC_LoadWordS32:
316 case kPPC_LoadWordU32:
317 case kPPC_LoadByteRev32:
318 case kPPC_LoadWord64:
319 case kPPC_LoadByteRev64:
320 case kPPC_LoadFloat32:
321 case kPPC_LoadDouble:
322 case kPPC_LoadSimd128:
324 case kPPC_LoadDecompressTaggedSigned:
325 case kPPC_LoadDecompressTagged:
326 case kPPC_LoadDecodeSandboxedPointer:
327 case kPPC_S128Load8Splat:
328 case kPPC_S128Load16Splat:
329 case kPPC_S128Load32Splat:
330 case kPPC_S128Load64Splat:
331 case kPPC_S128Load8x8S:
332 case kPPC_S128Load8x8U:
333 case kPPC_S128Load16x4S:
334 case kPPC_S128Load16x4U:
335 case kPPC_S128Load32x2S:
336 case kPPC_S128Load32x2U:
337 case kPPC_S128Load32Zero:
338 case kPPC_S128Load64Zero:
339 case kPPC_S128Load8Lane:
340 case kPPC_S128Load16Lane:
341 case kPPC_S128Load32Lane:
342 case kPPC_S128Load64Lane:
345 case kPPC_StoreWord8:
346 case kPPC_StoreWord16:
347 case kPPC_StoreWord32:
348 case kPPC_StoreByteRev32:
349 case kPPC_StoreWord64:
350 case kPPC_StoreByteRev64:
351 case kPPC_StoreFloat32:
352 case kPPC_StoreDouble:
353 case kPPC_StoreSimd128:
354 case kPPC_StoreCompressTagged:
355 case kPPC_StoreIndirectPointer:
356 case kPPC_StoreEncodeSandboxedPointer:
359 case kPPC_StoreToStackSlot:
361 case kPPC_S128Store8Lane:
362 case kPPC_S128Store16Lane:
363 case kPPC_S128Store32Lane:
364 case kPPC_S128Store64Lane:
367 case kPPC_AtomicExchangeUint8:
368 case kPPC_AtomicExchangeUint16:
369 case kPPC_AtomicExchangeWord32:
370 case kPPC_AtomicExchangeWord64:
371 case kPPC_AtomicCompareExchangeUint8:
372 case kPPC_AtomicCompareExchangeUint16:
373 case kPPC_AtomicCompareExchangeWord32:
374 case kPPC_AtomicCompareExchangeWord64:
375 case kPPC_AtomicAddUint8:
376 case kPPC_AtomicAddUint16:
377 case kPPC_AtomicAddUint32:
378 case kPPC_AtomicAddUint64:
379 case kPPC_AtomicAddInt8:
380 case kPPC_AtomicAddInt16:
381 case kPPC_AtomicAddInt32:
382 case kPPC_AtomicAddInt64:
383 case kPPC_AtomicSubUint8:
384 case kPPC_AtomicSubUint16:
385 case kPPC_AtomicSubUint32:
386 case kPPC_AtomicSubUint64:
387 case kPPC_AtomicSubInt8:
388 case kPPC_AtomicSubInt16:
389 case kPPC_AtomicSubInt32:
390 case kPPC_AtomicSubInt64:
391 case kPPC_AtomicAndUint8:
392 case kPPC_AtomicAndUint16:
393 case kPPC_AtomicAndUint32:
394 case kPPC_AtomicAndUint64:
395 case kPPC_AtomicAndInt8:
396 case kPPC_AtomicAndInt16:
397 case kPPC_AtomicAndInt32:
398 case kPPC_AtomicAndInt64:
399 case kPPC_AtomicOrUint8:
400 case kPPC_AtomicOrUint16:
401 case kPPC_AtomicOrUint32:
402 case kPPC_AtomicOrUint64:
403 case kPPC_AtomicOrInt8:
404 case kPPC_AtomicOrInt16:
405 case kPPC_AtomicOrInt32:
406 case kPPC_AtomicOrInt64:
407 case kPPC_AtomicXorUint8:
408 case kPPC_AtomicXorUint16:
409 case kPPC_AtomicXorUint32:
410 case kPPC_AtomicXorUint64:
411 case kPPC_AtomicXorInt8:
412 case kPPC_AtomicXorInt16:
413 case kPPC_AtomicXorInt32:
414 case kPPC_AtomicXorInt64:
417#define CASE(Name) case k##Name:
static bool SchedulerSupported()
int GetTargetInstructionFlags(const Instruction *instr) const
static int GetInstructionLatency(const Instruction *instr)
#define COMMON_ARCH_OPCODE_LIST(V)