14 const Instruction*
instr)
const {
15 switch (
instr->arch_opcode()) {
24 case kS390_ShiftLeft32:
25 case kS390_ShiftLeft64:
26 case kS390_ShiftRight32:
27 case kS390_ShiftRight64:
28 case kS390_ShiftRightArith32:
29 case kS390_ShiftRightArith64:
30 case kS390_RotRight32:
31 case kS390_RotRight64:
34 case kS390_RotLeftAndClear64:
35 case kS390_RotLeftAndClearLeft64:
36 case kS390_RotLeftAndClearRight64:
47 case kS390_Mul32WithOverflow:
49 case kS390_Mul64WithOverflow:
50 case kS390_MulHighS64:
51 case kS390_MulHighU64:
53 case kS390_MulHighU32:
72 case kS390_FloorFloat:
74 case kS390_TruncateFloat:
75 case kS390_FloatNearestInt:
77 case kS390_SqrtDouble:
78 case kS390_FloorDouble:
79 case kS390_CeilDouble:
80 case kS390_TruncateDouble:
81 case kS390_RoundDouble:
82 case kS390_DoubleNearestInt:
98 case kS390_SignExtendWord8ToInt32:
99 case kS390_SignExtendWord16ToInt32:
100 case kS390_SignExtendWord8ToInt64:
101 case kS390_SignExtendWord16ToInt64:
102 case kS390_SignExtendWord32ToInt64:
103 case kS390_Uint32ToUint64:
104 case kS390_Int64ToInt32:
105 case kS390_Int64ToFloat32:
106 case kS390_Int64ToDouble:
107 case kS390_Uint64ToFloat32:
108 case kS390_Uint64ToDouble:
109 case kS390_Int32ToFloat32:
110 case kS390_Int32ToDouble:
111 case kS390_Uint32ToFloat32:
112 case kS390_Uint32ToDouble:
113 case kS390_Float32ToInt32:
114 case kS390_Float32ToUint32:
115 case kS390_Float32ToUint64:
116 case kS390_Float32ToDouble:
117 case kS390_Float64SilenceNaN:
118 case kS390_DoubleToInt32:
119 case kS390_DoubleToUint32:
120 case kS390_Float32ToInt64:
121 case kS390_DoubleToInt64:
122 case kS390_DoubleToUint64:
123 case kS390_DoubleToFloat32:
124 case kS390_DoubleExtractLowWord32:
125 case kS390_DoubleExtractHighWord32:
126 case kS390_DoubleFromWord32Pair:
127 case kS390_DoubleInsertLowWord32:
128 case kS390_DoubleInsertHighWord32:
129 case kS390_DoubleConstruct:
130 case kS390_BitcastInt32ToFloat32:
131 case kS390_BitcastFloat32ToInt32:
132 case kS390_BitcastInt64ToDouble:
133 case kS390_BitcastDoubleToInt64:
134 case kS390_LoadReverse16RR:
135 case kS390_LoadReverse32RR:
136 case kS390_LoadReverse64RR:
137 case kS390_LoadReverseSimd128RR:
138 case kS390_LoadAndTestWord32:
139 case kS390_LoadAndTestWord64:
140 case kS390_LoadAndTestFloat32:
141 case kS390_LoadAndTestFloat64:
142 case kS390_F64x2Splat:
143 case kS390_F64x2ReplaceLane:
146 case kS390_F64x2Sqrt:
157 case kS390_F64x2ExtractLane:
158 case kS390_F64x2Qfma:
159 case kS390_F64x2Qfms:
160 case kS390_F64x2Pmin:
161 case kS390_F64x2Pmax:
162 case kS390_F64x2Ceil:
163 case kS390_F64x2Floor:
164 case kS390_F64x2Trunc:
165 case kS390_F64x2NearestInt:
166 case kS390_F64x2ConvertLowI32x4S:
167 case kS390_F64x2ConvertLowI32x4U:
168 case kS390_F64x2PromoteLowF32x4:
169 case kS390_F32x4Splat:
170 case kS390_F32x4ExtractLane:
171 case kS390_F32x4ReplaceLane:
181 case kS390_F32x4SConvertI32x4:
182 case kS390_F32x4UConvertI32x4:
183 case kS390_F32x4Sqrt:
187 case kS390_F32x4Qfma:
188 case kS390_F32x4Qfms:
189 case kS390_F32x4Pmin:
190 case kS390_F32x4Pmax:
191 case kS390_F32x4Ceil:
192 case kS390_F32x4Floor:
193 case kS390_F32x4Trunc:
194 case kS390_F32x4NearestInt:
195 case kS390_F32x4DemoteF64x2Zero:
200 case kS390_I64x2ShrS:
201 case kS390_I64x2ShrU:
203 case kS390_I64x2Splat:
204 case kS390_I64x2ReplaceLane:
205 case kS390_I64x2ExtractLane:
207 case kS390_I64x2BitMask:
208 case kS390_I64x2ExtMulLowI32x4S:
209 case kS390_I64x2ExtMulHighI32x4S:
210 case kS390_I64x2ExtMulLowI32x4U:
211 case kS390_I64x2ExtMulHighI32x4U:
212 case kS390_I64x2SConvertI32x4Low:
213 case kS390_I64x2SConvertI32x4High:
214 case kS390_I64x2UConvertI32x4Low:
215 case kS390_I64x2UConvertI32x4High:
220 case kS390_I32x4Splat:
221 case kS390_I32x4ExtractLane:
222 case kS390_I32x4ReplaceLane:
226 case kS390_I32x4MinS:
227 case kS390_I32x4MinU:
228 case kS390_I32x4MaxS:
229 case kS390_I32x4MaxU:
237 case kS390_I32x4ShrS:
238 case kS390_I32x4ShrU:
240 case kS390_I32x4SConvertF32x4:
241 case kS390_I32x4UConvertF32x4:
242 case kS390_I32x4SConvertI16x8Low:
243 case kS390_I32x4SConvertI16x8High:
244 case kS390_I32x4UConvertI16x8Low:
245 case kS390_I32x4UConvertI16x8High:
247 case kS390_I32x4BitMask:
248 case kS390_I32x4DotI16x8S:
249 case kS390_I32x4ExtMulLowI16x8S:
250 case kS390_I32x4ExtMulHighI16x8S:
251 case kS390_I32x4ExtMulLowI16x8U:
252 case kS390_I32x4ExtMulHighI16x8U:
253 case kS390_I32x4ExtAddPairwiseI16x8S:
254 case kS390_I32x4ExtAddPairwiseI16x8U:
255 case kS390_I32x4TruncSatF64x2SZero:
256 case kS390_I32x4TruncSatF64x2UZero:
257 case kS390_I32x4DotI8x16AddS:
258 case kS390_I16x8Splat:
259 case kS390_I16x8ExtractLaneU:
260 case kS390_I16x8ExtractLaneS:
261 case kS390_I16x8ReplaceLane:
265 case kS390_I16x8MinS:
266 case kS390_I16x8MinU:
267 case kS390_I16x8MaxS:
268 case kS390_I16x8MaxU:
276 case kS390_I16x8ShrS:
277 case kS390_I16x8ShrU:
279 case kS390_I16x8SConvertI32x4:
280 case kS390_I16x8UConvertI32x4:
281 case kS390_I16x8SConvertI8x16Low:
282 case kS390_I16x8SConvertI8x16High:
283 case kS390_I16x8UConvertI8x16Low:
284 case kS390_I16x8UConvertI8x16High:
285 case kS390_I16x8AddSatS:
286 case kS390_I16x8SubSatS:
287 case kS390_I16x8AddSatU:
288 case kS390_I16x8SubSatU:
289 case kS390_I16x8RoundingAverageU:
291 case kS390_I16x8BitMask:
292 case kS390_I16x8ExtMulLowI8x16S:
293 case kS390_I16x8ExtMulHighI8x16S:
294 case kS390_I16x8ExtMulLowI8x16U:
295 case kS390_I16x8ExtMulHighI8x16U:
296 case kS390_I16x8ExtAddPairwiseI8x16S:
297 case kS390_I16x8ExtAddPairwiseI8x16U:
298 case kS390_I16x8Q15MulRSatS:
299 case kS390_I16x8DotI8x16S:
300 case kS390_I8x16Splat:
301 case kS390_I8x16ExtractLaneU:
302 case kS390_I8x16ExtractLaneS:
303 case kS390_I8x16ReplaceLane:
306 case kS390_I8x16MinS:
307 case kS390_I8x16MinU:
308 case kS390_I8x16MaxS:
309 case kS390_I8x16MaxU:
317 case kS390_I8x16ShrS:
318 case kS390_I8x16ShrU:
320 case kS390_I8x16SConvertI16x8:
321 case kS390_I8x16UConvertI16x8:
322 case kS390_I8x16AddSatS:
323 case kS390_I8x16SubSatS:
324 case kS390_I8x16AddSatU:
325 case kS390_I8x16SubSatU:
326 case kS390_I8x16RoundingAverageU:
328 case kS390_I8x16BitMask:
329 case kS390_I8x16Shuffle:
330 case kS390_I8x16Swizzle:
331 case kS390_I8x16Popcnt:
332 case kS390_I64x2AllTrue:
333 case kS390_I32x4AllTrue:
334 case kS390_I16x8AllTrue:
335 case kS390_I8x16AllTrue:
336 case kS390_V128AnyTrue:
340 case kS390_S128Const:
342 case kS390_S128AllOnes:
344 case kS390_S128Select:
345 case kS390_S128AndNot:
348 case kS390_LoadWordS8:
349 case kS390_LoadWordU8:
350 case kS390_LoadWordS16:
351 case kS390_LoadWordU16:
352 case kS390_LoadWordS32:
353 case kS390_LoadWordU32:
354 case kS390_LoadWord64:
355 case kS390_LoadFloat32:
356 case kS390_LoadDouble:
357 case kS390_LoadSimd128:
358 case kS390_LoadReverse16:
359 case kS390_LoadReverse32:
360 case kS390_LoadReverse64:
361 case kS390_LoadReverseSimd128:
363 case kS390_LoadDecompressTaggedSigned:
364 case kS390_LoadDecompressTagged:
365 case kS390_S128Load8Splat:
366 case kS390_S128Load16Splat:
367 case kS390_S128Load32Splat:
368 case kS390_S128Load64Splat:
369 case kS390_S128Load8x8S:
370 case kS390_S128Load8x8U:
371 case kS390_S128Load16x4S:
372 case kS390_S128Load16x4U:
373 case kS390_S128Load32x2S:
374 case kS390_S128Load32x2U:
375 case kS390_S128Load32Zero:
376 case kS390_S128Load64Zero:
377 case kS390_S128Load8Lane:
378 case kS390_S128Load16Lane:
379 case kS390_S128Load32Lane:
380 case kS390_S128Load64Lane:
383 case kS390_StoreWord8:
384 case kS390_StoreWord16:
385 case kS390_StoreWord32:
386 case kS390_StoreWord64:
387 case kS390_StoreReverseSimd128:
388 case kS390_StoreReverse16:
389 case kS390_StoreReverse32:
390 case kS390_StoreReverse64:
391 case kS390_StoreFloat32:
392 case kS390_StoreDouble:
393 case kS390_StoreSimd128:
394 case kS390_StoreCompressTagged:
396 case kS390_PushFrame:
397 case kS390_StoreToStackSlot:
398 case kS390_S128Store8Lane:
399 case kS390_S128Store16Lane:
400 case kS390_S128Store32Lane:
401 case kS390_S128Store64Lane:
404 case kS390_Word64AtomicExchangeUint64:
405 case kS390_Word64AtomicCompareExchangeUint64:
406 case kS390_Word64AtomicAddUint64:
407 case kS390_Word64AtomicSubUint64:
408 case kS390_Word64AtomicAndUint64:
409 case kS390_Word64AtomicOrUint64:
410 case kS390_Word64AtomicXorUint64:
413#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)