11cb0ef41Sopenharmony_ci// Copyright 2015 the V8 project authors. All rights reserved.
21cb0ef41Sopenharmony_ci// Use of this source code is governed by a BSD-style license that can be
31cb0ef41Sopenharmony_ci// found in the LICENSE file.
41cb0ef41Sopenharmony_ci
51cb0ef41Sopenharmony_ci#include "src/compiler/backend/instruction-scheduler.h"
61cb0ef41Sopenharmony_ci
71cb0ef41Sopenharmony_cinamespace v8 {
81cb0ef41Sopenharmony_cinamespace internal {
91cb0ef41Sopenharmony_cinamespace compiler {
101cb0ef41Sopenharmony_ci
111cb0ef41Sopenharmony_cibool InstructionScheduler::SchedulerSupported() { return true; }
121cb0ef41Sopenharmony_ci
131cb0ef41Sopenharmony_ciint InstructionScheduler::GetTargetInstructionFlags(
141cb0ef41Sopenharmony_ci    const Instruction* instr) const {
151cb0ef41Sopenharmony_ci  switch (instr->arch_opcode()) {
161cb0ef41Sopenharmony_ci    case kS390_Abs32:
171cb0ef41Sopenharmony_ci    case kS390_Abs64:
181cb0ef41Sopenharmony_ci    case kS390_And32:
191cb0ef41Sopenharmony_ci    case kS390_And64:
201cb0ef41Sopenharmony_ci    case kS390_Or32:
211cb0ef41Sopenharmony_ci    case kS390_Or64:
221cb0ef41Sopenharmony_ci    case kS390_Xor32:
231cb0ef41Sopenharmony_ci    case kS390_Xor64:
241cb0ef41Sopenharmony_ci    case kS390_ShiftLeft32:
251cb0ef41Sopenharmony_ci    case kS390_ShiftLeft64:
261cb0ef41Sopenharmony_ci    case kS390_ShiftRight32:
271cb0ef41Sopenharmony_ci    case kS390_ShiftRight64:
281cb0ef41Sopenharmony_ci    case kS390_ShiftRightArith32:
291cb0ef41Sopenharmony_ci    case kS390_ShiftRightArith64:
301cb0ef41Sopenharmony_ci    case kS390_RotRight32:
311cb0ef41Sopenharmony_ci    case kS390_RotRight64:
321cb0ef41Sopenharmony_ci    case kS390_Not32:
331cb0ef41Sopenharmony_ci    case kS390_Not64:
341cb0ef41Sopenharmony_ci    case kS390_RotLeftAndClear64:
351cb0ef41Sopenharmony_ci    case kS390_RotLeftAndClearLeft64:
361cb0ef41Sopenharmony_ci    case kS390_RotLeftAndClearRight64:
371cb0ef41Sopenharmony_ci    case kS390_Lay:
381cb0ef41Sopenharmony_ci    case kS390_Add32:
391cb0ef41Sopenharmony_ci    case kS390_Add64:
401cb0ef41Sopenharmony_ci    case kS390_AddFloat:
411cb0ef41Sopenharmony_ci    case kS390_AddDouble:
421cb0ef41Sopenharmony_ci    case kS390_Sub32:
431cb0ef41Sopenharmony_ci    case kS390_Sub64:
441cb0ef41Sopenharmony_ci    case kS390_SubFloat:
451cb0ef41Sopenharmony_ci    case kS390_SubDouble:
461cb0ef41Sopenharmony_ci    case kS390_Mul32:
471cb0ef41Sopenharmony_ci    case kS390_Mul32WithOverflow:
481cb0ef41Sopenharmony_ci    case kS390_Mul64:
491cb0ef41Sopenharmony_ci    case kS390_MulHigh32:
501cb0ef41Sopenharmony_ci    case kS390_MulHighU32:
511cb0ef41Sopenharmony_ci    case kS390_MulFloat:
521cb0ef41Sopenharmony_ci    case kS390_MulDouble:
531cb0ef41Sopenharmony_ci    case kS390_Div32:
541cb0ef41Sopenharmony_ci    case kS390_Div64:
551cb0ef41Sopenharmony_ci    case kS390_DivU32:
561cb0ef41Sopenharmony_ci    case kS390_DivU64:
571cb0ef41Sopenharmony_ci    case kS390_DivFloat:
581cb0ef41Sopenharmony_ci    case kS390_DivDouble:
591cb0ef41Sopenharmony_ci    case kS390_Mod32:
601cb0ef41Sopenharmony_ci    case kS390_Mod64:
611cb0ef41Sopenharmony_ci    case kS390_ModU32:
621cb0ef41Sopenharmony_ci    case kS390_ModU64:
631cb0ef41Sopenharmony_ci    case kS390_ModDouble:
641cb0ef41Sopenharmony_ci    case kS390_Neg32:
651cb0ef41Sopenharmony_ci    case kS390_Neg64:
661cb0ef41Sopenharmony_ci    case kS390_NegDouble:
671cb0ef41Sopenharmony_ci    case kS390_NegFloat:
681cb0ef41Sopenharmony_ci    case kS390_SqrtFloat:
691cb0ef41Sopenharmony_ci    case kS390_FloorFloat:
701cb0ef41Sopenharmony_ci    case kS390_CeilFloat:
711cb0ef41Sopenharmony_ci    case kS390_TruncateFloat:
721cb0ef41Sopenharmony_ci    case kS390_FloatNearestInt:
731cb0ef41Sopenharmony_ci    case kS390_AbsFloat:
741cb0ef41Sopenharmony_ci    case kS390_SqrtDouble:
751cb0ef41Sopenharmony_ci    case kS390_FloorDouble:
761cb0ef41Sopenharmony_ci    case kS390_CeilDouble:
771cb0ef41Sopenharmony_ci    case kS390_TruncateDouble:
781cb0ef41Sopenharmony_ci    case kS390_RoundDouble:
791cb0ef41Sopenharmony_ci    case kS390_DoubleNearestInt:
801cb0ef41Sopenharmony_ci    case kS390_MaxFloat:
811cb0ef41Sopenharmony_ci    case kS390_MaxDouble:
821cb0ef41Sopenharmony_ci    case kS390_MinFloat:
831cb0ef41Sopenharmony_ci    case kS390_MinDouble:
841cb0ef41Sopenharmony_ci    case kS390_AbsDouble:
851cb0ef41Sopenharmony_ci    case kS390_Cntlz32:
861cb0ef41Sopenharmony_ci    case kS390_Cntlz64:
871cb0ef41Sopenharmony_ci    case kS390_Popcnt32:
881cb0ef41Sopenharmony_ci    case kS390_Popcnt64:
891cb0ef41Sopenharmony_ci    case kS390_Cmp32:
901cb0ef41Sopenharmony_ci    case kS390_Cmp64:
911cb0ef41Sopenharmony_ci    case kS390_CmpFloat:
921cb0ef41Sopenharmony_ci    case kS390_CmpDouble:
931cb0ef41Sopenharmony_ci    case kS390_Tst32:
941cb0ef41Sopenharmony_ci    case kS390_Tst64:
951cb0ef41Sopenharmony_ci    case kS390_SignExtendWord8ToInt32:
961cb0ef41Sopenharmony_ci    case kS390_SignExtendWord16ToInt32:
971cb0ef41Sopenharmony_ci    case kS390_SignExtendWord8ToInt64:
981cb0ef41Sopenharmony_ci    case kS390_SignExtendWord16ToInt64:
991cb0ef41Sopenharmony_ci    case kS390_SignExtendWord32ToInt64:
1001cb0ef41Sopenharmony_ci    case kS390_Uint32ToUint64:
1011cb0ef41Sopenharmony_ci    case kS390_Int64ToInt32:
1021cb0ef41Sopenharmony_ci    case kS390_Int64ToFloat32:
1031cb0ef41Sopenharmony_ci    case kS390_Int64ToDouble:
1041cb0ef41Sopenharmony_ci    case kS390_Uint64ToFloat32:
1051cb0ef41Sopenharmony_ci    case kS390_Uint64ToDouble:
1061cb0ef41Sopenharmony_ci    case kS390_Int32ToFloat32:
1071cb0ef41Sopenharmony_ci    case kS390_Int32ToDouble:
1081cb0ef41Sopenharmony_ci    case kS390_Uint32ToFloat32:
1091cb0ef41Sopenharmony_ci    case kS390_Uint32ToDouble:
1101cb0ef41Sopenharmony_ci    case kS390_Float32ToInt32:
1111cb0ef41Sopenharmony_ci    case kS390_Float32ToUint32:
1121cb0ef41Sopenharmony_ci    case kS390_Float32ToUint64:
1131cb0ef41Sopenharmony_ci    case kS390_Float32ToDouble:
1141cb0ef41Sopenharmony_ci    case kS390_Float64SilenceNaN:
1151cb0ef41Sopenharmony_ci    case kS390_DoubleToInt32:
1161cb0ef41Sopenharmony_ci    case kS390_DoubleToUint32:
1171cb0ef41Sopenharmony_ci    case kS390_Float32ToInt64:
1181cb0ef41Sopenharmony_ci    case kS390_DoubleToInt64:
1191cb0ef41Sopenharmony_ci    case kS390_DoubleToUint64:
1201cb0ef41Sopenharmony_ci    case kS390_DoubleToFloat32:
1211cb0ef41Sopenharmony_ci    case kS390_DoubleExtractLowWord32:
1221cb0ef41Sopenharmony_ci    case kS390_DoubleExtractHighWord32:
1231cb0ef41Sopenharmony_ci    case kS390_DoubleInsertLowWord32:
1241cb0ef41Sopenharmony_ci    case kS390_DoubleInsertHighWord32:
1251cb0ef41Sopenharmony_ci    case kS390_DoubleConstruct:
1261cb0ef41Sopenharmony_ci    case kS390_BitcastInt32ToFloat32:
1271cb0ef41Sopenharmony_ci    case kS390_BitcastFloat32ToInt32:
1281cb0ef41Sopenharmony_ci    case kS390_BitcastInt64ToDouble:
1291cb0ef41Sopenharmony_ci    case kS390_BitcastDoubleToInt64:
1301cb0ef41Sopenharmony_ci    case kS390_LoadReverse16RR:
1311cb0ef41Sopenharmony_ci    case kS390_LoadReverse32RR:
1321cb0ef41Sopenharmony_ci    case kS390_LoadReverse64RR:
1331cb0ef41Sopenharmony_ci    case kS390_LoadReverseSimd128RR:
1341cb0ef41Sopenharmony_ci    case kS390_LoadAndTestWord32:
1351cb0ef41Sopenharmony_ci    case kS390_LoadAndTestWord64:
1361cb0ef41Sopenharmony_ci    case kS390_LoadAndTestFloat32:
1371cb0ef41Sopenharmony_ci    case kS390_LoadAndTestFloat64:
1381cb0ef41Sopenharmony_ci    case kS390_F64x2Splat:
1391cb0ef41Sopenharmony_ci    case kS390_F64x2ReplaceLane:
1401cb0ef41Sopenharmony_ci    case kS390_F64x2Abs:
1411cb0ef41Sopenharmony_ci    case kS390_F64x2Neg:
1421cb0ef41Sopenharmony_ci    case kS390_F64x2Sqrt:
1431cb0ef41Sopenharmony_ci    case kS390_F64x2Add:
1441cb0ef41Sopenharmony_ci    case kS390_F64x2Sub:
1451cb0ef41Sopenharmony_ci    case kS390_F64x2Mul:
1461cb0ef41Sopenharmony_ci    case kS390_F64x2Div:
1471cb0ef41Sopenharmony_ci    case kS390_F64x2Eq:
1481cb0ef41Sopenharmony_ci    case kS390_F64x2Ne:
1491cb0ef41Sopenharmony_ci    case kS390_F64x2Lt:
1501cb0ef41Sopenharmony_ci    case kS390_F64x2Le:
1511cb0ef41Sopenharmony_ci    case kS390_F64x2Min:
1521cb0ef41Sopenharmony_ci    case kS390_F64x2Max:
1531cb0ef41Sopenharmony_ci    case kS390_F64x2ExtractLane:
1541cb0ef41Sopenharmony_ci    case kS390_F64x2Qfma:
1551cb0ef41Sopenharmony_ci    case kS390_F64x2Qfms:
1561cb0ef41Sopenharmony_ci    case kS390_F64x2Pmin:
1571cb0ef41Sopenharmony_ci    case kS390_F64x2Pmax:
1581cb0ef41Sopenharmony_ci    case kS390_F64x2Ceil:
1591cb0ef41Sopenharmony_ci    case kS390_F64x2Floor:
1601cb0ef41Sopenharmony_ci    case kS390_F64x2Trunc:
1611cb0ef41Sopenharmony_ci    case kS390_F64x2NearestInt:
1621cb0ef41Sopenharmony_ci    case kS390_F64x2ConvertLowI32x4S:
1631cb0ef41Sopenharmony_ci    case kS390_F64x2ConvertLowI32x4U:
1641cb0ef41Sopenharmony_ci    case kS390_F64x2PromoteLowF32x4:
1651cb0ef41Sopenharmony_ci    case kS390_F32x4Splat:
1661cb0ef41Sopenharmony_ci    case kS390_F32x4ExtractLane:
1671cb0ef41Sopenharmony_ci    case kS390_F32x4ReplaceLane:
1681cb0ef41Sopenharmony_ci    case kS390_F32x4Add:
1691cb0ef41Sopenharmony_ci    case kS390_F32x4Sub:
1701cb0ef41Sopenharmony_ci    case kS390_F32x4Mul:
1711cb0ef41Sopenharmony_ci    case kS390_F32x4Eq:
1721cb0ef41Sopenharmony_ci    case kS390_F32x4Ne:
1731cb0ef41Sopenharmony_ci    case kS390_F32x4Lt:
1741cb0ef41Sopenharmony_ci    case kS390_F32x4Le:
1751cb0ef41Sopenharmony_ci    case kS390_F32x4Abs:
1761cb0ef41Sopenharmony_ci    case kS390_F32x4Neg:
1771cb0ef41Sopenharmony_ci    case kS390_F32x4RecipApprox:
1781cb0ef41Sopenharmony_ci    case kS390_F32x4RecipSqrtApprox:
1791cb0ef41Sopenharmony_ci    case kS390_F32x4SConvertI32x4:
1801cb0ef41Sopenharmony_ci    case kS390_F32x4UConvertI32x4:
1811cb0ef41Sopenharmony_ci    case kS390_F32x4Sqrt:
1821cb0ef41Sopenharmony_ci    case kS390_F32x4Div:
1831cb0ef41Sopenharmony_ci    case kS390_F32x4Min:
1841cb0ef41Sopenharmony_ci    case kS390_F32x4Max:
1851cb0ef41Sopenharmony_ci    case kS390_F32x4Qfma:
1861cb0ef41Sopenharmony_ci    case kS390_F32x4Qfms:
1871cb0ef41Sopenharmony_ci    case kS390_F32x4Pmin:
1881cb0ef41Sopenharmony_ci    case kS390_F32x4Pmax:
1891cb0ef41Sopenharmony_ci    case kS390_F32x4Ceil:
1901cb0ef41Sopenharmony_ci    case kS390_F32x4Floor:
1911cb0ef41Sopenharmony_ci    case kS390_F32x4Trunc:
1921cb0ef41Sopenharmony_ci    case kS390_F32x4NearestInt:
1931cb0ef41Sopenharmony_ci    case kS390_F32x4DemoteF64x2Zero:
1941cb0ef41Sopenharmony_ci    case kS390_I64x2Neg:
1951cb0ef41Sopenharmony_ci    case kS390_I64x2Add:
1961cb0ef41Sopenharmony_ci    case kS390_I64x2Sub:
1971cb0ef41Sopenharmony_ci    case kS390_I64x2Shl:
1981cb0ef41Sopenharmony_ci    case kS390_I64x2ShrS:
1991cb0ef41Sopenharmony_ci    case kS390_I64x2ShrU:
2001cb0ef41Sopenharmony_ci    case kS390_I64x2Mul:
2011cb0ef41Sopenharmony_ci    case kS390_I64x2Splat:
2021cb0ef41Sopenharmony_ci    case kS390_I64x2ReplaceLane:
2031cb0ef41Sopenharmony_ci    case kS390_I64x2ExtractLane:
2041cb0ef41Sopenharmony_ci    case kS390_I64x2Eq:
2051cb0ef41Sopenharmony_ci    case kS390_I64x2BitMask:
2061cb0ef41Sopenharmony_ci    case kS390_I64x2ExtMulLowI32x4S:
2071cb0ef41Sopenharmony_ci    case kS390_I64x2ExtMulHighI32x4S:
2081cb0ef41Sopenharmony_ci    case kS390_I64x2ExtMulLowI32x4U:
2091cb0ef41Sopenharmony_ci    case kS390_I64x2ExtMulHighI32x4U:
2101cb0ef41Sopenharmony_ci    case kS390_I64x2SConvertI32x4Low:
2111cb0ef41Sopenharmony_ci    case kS390_I64x2SConvertI32x4High:
2121cb0ef41Sopenharmony_ci    case kS390_I64x2UConvertI32x4Low:
2131cb0ef41Sopenharmony_ci    case kS390_I64x2UConvertI32x4High:
2141cb0ef41Sopenharmony_ci    case kS390_I64x2Ne:
2151cb0ef41Sopenharmony_ci    case kS390_I64x2GtS:
2161cb0ef41Sopenharmony_ci    case kS390_I64x2GeS:
2171cb0ef41Sopenharmony_ci    case kS390_I64x2Abs:
2181cb0ef41Sopenharmony_ci    case kS390_I32x4Splat:
2191cb0ef41Sopenharmony_ci    case kS390_I32x4ExtractLane:
2201cb0ef41Sopenharmony_ci    case kS390_I32x4ReplaceLane:
2211cb0ef41Sopenharmony_ci    case kS390_I32x4Add:
2221cb0ef41Sopenharmony_ci    case kS390_I32x4Sub:
2231cb0ef41Sopenharmony_ci    case kS390_I32x4Mul:
2241cb0ef41Sopenharmony_ci    case kS390_I32x4MinS:
2251cb0ef41Sopenharmony_ci    case kS390_I32x4MinU:
2261cb0ef41Sopenharmony_ci    case kS390_I32x4MaxS:
2271cb0ef41Sopenharmony_ci    case kS390_I32x4MaxU:
2281cb0ef41Sopenharmony_ci    case kS390_I32x4Eq:
2291cb0ef41Sopenharmony_ci    case kS390_I32x4Ne:
2301cb0ef41Sopenharmony_ci    case kS390_I32x4GtS:
2311cb0ef41Sopenharmony_ci    case kS390_I32x4GeS:
2321cb0ef41Sopenharmony_ci    case kS390_I32x4GtU:
2331cb0ef41Sopenharmony_ci    case kS390_I32x4GeU:
2341cb0ef41Sopenharmony_ci    case kS390_I32x4Shl:
2351cb0ef41Sopenharmony_ci    case kS390_I32x4ShrS:
2361cb0ef41Sopenharmony_ci    case kS390_I32x4ShrU:
2371cb0ef41Sopenharmony_ci    case kS390_I32x4Neg:
2381cb0ef41Sopenharmony_ci    case kS390_I32x4SConvertF32x4:
2391cb0ef41Sopenharmony_ci    case kS390_I32x4UConvertF32x4:
2401cb0ef41Sopenharmony_ci    case kS390_I32x4SConvertI16x8Low:
2411cb0ef41Sopenharmony_ci    case kS390_I32x4SConvertI16x8High:
2421cb0ef41Sopenharmony_ci    case kS390_I32x4UConvertI16x8Low:
2431cb0ef41Sopenharmony_ci    case kS390_I32x4UConvertI16x8High:
2441cb0ef41Sopenharmony_ci    case kS390_I32x4Abs:
2451cb0ef41Sopenharmony_ci    case kS390_I32x4BitMask:
2461cb0ef41Sopenharmony_ci    case kS390_I32x4DotI16x8S:
2471cb0ef41Sopenharmony_ci    case kS390_I32x4ExtMulLowI16x8S:
2481cb0ef41Sopenharmony_ci    case kS390_I32x4ExtMulHighI16x8S:
2491cb0ef41Sopenharmony_ci    case kS390_I32x4ExtMulLowI16x8U:
2501cb0ef41Sopenharmony_ci    case kS390_I32x4ExtMulHighI16x8U:
2511cb0ef41Sopenharmony_ci    case kS390_I32x4ExtAddPairwiseI16x8S:
2521cb0ef41Sopenharmony_ci    case kS390_I32x4ExtAddPairwiseI16x8U:
2531cb0ef41Sopenharmony_ci    case kS390_I32x4TruncSatF64x2SZero:
2541cb0ef41Sopenharmony_ci    case kS390_I32x4TruncSatF64x2UZero:
2551cb0ef41Sopenharmony_ci    case kS390_I16x8Splat:
2561cb0ef41Sopenharmony_ci    case kS390_I16x8ExtractLaneU:
2571cb0ef41Sopenharmony_ci    case kS390_I16x8ExtractLaneS:
2581cb0ef41Sopenharmony_ci    case kS390_I16x8ReplaceLane:
2591cb0ef41Sopenharmony_ci    case kS390_I16x8Add:
2601cb0ef41Sopenharmony_ci    case kS390_I16x8Sub:
2611cb0ef41Sopenharmony_ci    case kS390_I16x8Mul:
2621cb0ef41Sopenharmony_ci    case kS390_I16x8MinS:
2631cb0ef41Sopenharmony_ci    case kS390_I16x8MinU:
2641cb0ef41Sopenharmony_ci    case kS390_I16x8MaxS:
2651cb0ef41Sopenharmony_ci    case kS390_I16x8MaxU:
2661cb0ef41Sopenharmony_ci    case kS390_I16x8Eq:
2671cb0ef41Sopenharmony_ci    case kS390_I16x8Ne:
2681cb0ef41Sopenharmony_ci    case kS390_I16x8GtS:
2691cb0ef41Sopenharmony_ci    case kS390_I16x8GeS:
2701cb0ef41Sopenharmony_ci    case kS390_I16x8GtU:
2711cb0ef41Sopenharmony_ci    case kS390_I16x8GeU:
2721cb0ef41Sopenharmony_ci    case kS390_I16x8Shl:
2731cb0ef41Sopenharmony_ci    case kS390_I16x8ShrS:
2741cb0ef41Sopenharmony_ci    case kS390_I16x8ShrU:
2751cb0ef41Sopenharmony_ci    case kS390_I16x8Neg:
2761cb0ef41Sopenharmony_ci    case kS390_I16x8SConvertI32x4:
2771cb0ef41Sopenharmony_ci    case kS390_I16x8UConvertI32x4:
2781cb0ef41Sopenharmony_ci    case kS390_I16x8SConvertI8x16Low:
2791cb0ef41Sopenharmony_ci    case kS390_I16x8SConvertI8x16High:
2801cb0ef41Sopenharmony_ci    case kS390_I16x8UConvertI8x16Low:
2811cb0ef41Sopenharmony_ci    case kS390_I16x8UConvertI8x16High:
2821cb0ef41Sopenharmony_ci    case kS390_I16x8AddSatS:
2831cb0ef41Sopenharmony_ci    case kS390_I16x8SubSatS:
2841cb0ef41Sopenharmony_ci    case kS390_I16x8AddSatU:
2851cb0ef41Sopenharmony_ci    case kS390_I16x8SubSatU:
2861cb0ef41Sopenharmony_ci    case kS390_I16x8RoundingAverageU:
2871cb0ef41Sopenharmony_ci    case kS390_I16x8Abs:
2881cb0ef41Sopenharmony_ci    case kS390_I16x8BitMask:
2891cb0ef41Sopenharmony_ci    case kS390_I16x8ExtMulLowI8x16S:
2901cb0ef41Sopenharmony_ci    case kS390_I16x8ExtMulHighI8x16S:
2911cb0ef41Sopenharmony_ci    case kS390_I16x8ExtMulLowI8x16U:
2921cb0ef41Sopenharmony_ci    case kS390_I16x8ExtMulHighI8x16U:
2931cb0ef41Sopenharmony_ci    case kS390_I16x8ExtAddPairwiseI8x16S:
2941cb0ef41Sopenharmony_ci    case kS390_I16x8ExtAddPairwiseI8x16U:
2951cb0ef41Sopenharmony_ci    case kS390_I16x8Q15MulRSatS:
2961cb0ef41Sopenharmony_ci    case kS390_I8x16Splat:
2971cb0ef41Sopenharmony_ci    case kS390_I8x16ExtractLaneU:
2981cb0ef41Sopenharmony_ci    case kS390_I8x16ExtractLaneS:
2991cb0ef41Sopenharmony_ci    case kS390_I8x16ReplaceLane:
3001cb0ef41Sopenharmony_ci    case kS390_I8x16Add:
3011cb0ef41Sopenharmony_ci    case kS390_I8x16Sub:
3021cb0ef41Sopenharmony_ci    case kS390_I8x16MinS:
3031cb0ef41Sopenharmony_ci    case kS390_I8x16MinU:
3041cb0ef41Sopenharmony_ci    case kS390_I8x16MaxS:
3051cb0ef41Sopenharmony_ci    case kS390_I8x16MaxU:
3061cb0ef41Sopenharmony_ci    case kS390_I8x16Eq:
3071cb0ef41Sopenharmony_ci    case kS390_I8x16Ne:
3081cb0ef41Sopenharmony_ci    case kS390_I8x16GtS:
3091cb0ef41Sopenharmony_ci    case kS390_I8x16GeS:
3101cb0ef41Sopenharmony_ci    case kS390_I8x16GtU:
3111cb0ef41Sopenharmony_ci    case kS390_I8x16GeU:
3121cb0ef41Sopenharmony_ci    case kS390_I8x16Shl:
3131cb0ef41Sopenharmony_ci    case kS390_I8x16ShrS:
3141cb0ef41Sopenharmony_ci    case kS390_I8x16ShrU:
3151cb0ef41Sopenharmony_ci    case kS390_I8x16Neg:
3161cb0ef41Sopenharmony_ci    case kS390_I8x16SConvertI16x8:
3171cb0ef41Sopenharmony_ci    case kS390_I8x16UConvertI16x8:
3181cb0ef41Sopenharmony_ci    case kS390_I8x16AddSatS:
3191cb0ef41Sopenharmony_ci    case kS390_I8x16SubSatS:
3201cb0ef41Sopenharmony_ci    case kS390_I8x16AddSatU:
3211cb0ef41Sopenharmony_ci    case kS390_I8x16SubSatU:
3221cb0ef41Sopenharmony_ci    case kS390_I8x16RoundingAverageU:
3231cb0ef41Sopenharmony_ci    case kS390_I8x16Abs:
3241cb0ef41Sopenharmony_ci    case kS390_I8x16BitMask:
3251cb0ef41Sopenharmony_ci    case kS390_I8x16Shuffle:
3261cb0ef41Sopenharmony_ci    case kS390_I8x16Swizzle:
3271cb0ef41Sopenharmony_ci    case kS390_I8x16Popcnt:
3281cb0ef41Sopenharmony_ci    case kS390_I64x2AllTrue:
3291cb0ef41Sopenharmony_ci    case kS390_I32x4AllTrue:
3301cb0ef41Sopenharmony_ci    case kS390_I16x8AllTrue:
3311cb0ef41Sopenharmony_ci    case kS390_I8x16AllTrue:
3321cb0ef41Sopenharmony_ci    case kS390_V128AnyTrue:
3331cb0ef41Sopenharmony_ci    case kS390_S128And:
3341cb0ef41Sopenharmony_ci    case kS390_S128Or:
3351cb0ef41Sopenharmony_ci    case kS390_S128Xor:
3361cb0ef41Sopenharmony_ci    case kS390_S128Const:
3371cb0ef41Sopenharmony_ci    case kS390_S128Zero:
3381cb0ef41Sopenharmony_ci    case kS390_S128AllOnes:
3391cb0ef41Sopenharmony_ci    case kS390_S128Not:
3401cb0ef41Sopenharmony_ci    case kS390_S128Select:
3411cb0ef41Sopenharmony_ci    case kS390_S128AndNot:
3421cb0ef41Sopenharmony_ci      return kNoOpcodeFlags;
3431cb0ef41Sopenharmony_ci
3441cb0ef41Sopenharmony_ci    case kS390_LoadWordS8:
3451cb0ef41Sopenharmony_ci    case kS390_LoadWordU8:
3461cb0ef41Sopenharmony_ci    case kS390_LoadWordS16:
3471cb0ef41Sopenharmony_ci    case kS390_LoadWordU16:
3481cb0ef41Sopenharmony_ci    case kS390_LoadWordS32:
3491cb0ef41Sopenharmony_ci    case kS390_LoadWordU32:
3501cb0ef41Sopenharmony_ci    case kS390_LoadWord64:
3511cb0ef41Sopenharmony_ci    case kS390_LoadFloat32:
3521cb0ef41Sopenharmony_ci    case kS390_LoadDouble:
3531cb0ef41Sopenharmony_ci    case kS390_LoadSimd128:
3541cb0ef41Sopenharmony_ci    case kS390_LoadReverse16:
3551cb0ef41Sopenharmony_ci    case kS390_LoadReverse32:
3561cb0ef41Sopenharmony_ci    case kS390_LoadReverse64:
3571cb0ef41Sopenharmony_ci    case kS390_LoadReverseSimd128:
3581cb0ef41Sopenharmony_ci    case kS390_Peek:
3591cb0ef41Sopenharmony_ci    case kS390_LoadDecompressTaggedSigned:
3601cb0ef41Sopenharmony_ci    case kS390_LoadDecompressTaggedPointer:
3611cb0ef41Sopenharmony_ci    case kS390_LoadDecompressAnyTagged:
3621cb0ef41Sopenharmony_ci    case kS390_S128Load8Splat:
3631cb0ef41Sopenharmony_ci    case kS390_S128Load16Splat:
3641cb0ef41Sopenharmony_ci    case kS390_S128Load32Splat:
3651cb0ef41Sopenharmony_ci    case kS390_S128Load64Splat:
3661cb0ef41Sopenharmony_ci    case kS390_S128Load8x8S:
3671cb0ef41Sopenharmony_ci    case kS390_S128Load8x8U:
3681cb0ef41Sopenharmony_ci    case kS390_S128Load16x4S:
3691cb0ef41Sopenharmony_ci    case kS390_S128Load16x4U:
3701cb0ef41Sopenharmony_ci    case kS390_S128Load32x2S:
3711cb0ef41Sopenharmony_ci    case kS390_S128Load32x2U:
3721cb0ef41Sopenharmony_ci    case kS390_S128Load32Zero:
3731cb0ef41Sopenharmony_ci    case kS390_S128Load64Zero:
3741cb0ef41Sopenharmony_ci    case kS390_S128Load8Lane:
3751cb0ef41Sopenharmony_ci    case kS390_S128Load16Lane:
3761cb0ef41Sopenharmony_ci    case kS390_S128Load32Lane:
3771cb0ef41Sopenharmony_ci    case kS390_S128Load64Lane:
3781cb0ef41Sopenharmony_ci      return kIsLoadOperation;
3791cb0ef41Sopenharmony_ci
3801cb0ef41Sopenharmony_ci    case kS390_StoreWord8:
3811cb0ef41Sopenharmony_ci    case kS390_StoreWord16:
3821cb0ef41Sopenharmony_ci    case kS390_StoreWord32:
3831cb0ef41Sopenharmony_ci    case kS390_StoreWord64:
3841cb0ef41Sopenharmony_ci    case kS390_StoreReverseSimd128:
3851cb0ef41Sopenharmony_ci    case kS390_StoreReverse16:
3861cb0ef41Sopenharmony_ci    case kS390_StoreReverse32:
3871cb0ef41Sopenharmony_ci    case kS390_StoreReverse64:
3881cb0ef41Sopenharmony_ci    case kS390_StoreFloat32:
3891cb0ef41Sopenharmony_ci    case kS390_StoreDouble:
3901cb0ef41Sopenharmony_ci    case kS390_StoreSimd128:
3911cb0ef41Sopenharmony_ci    case kS390_StoreCompressTagged:
3921cb0ef41Sopenharmony_ci    case kS390_Push:
3931cb0ef41Sopenharmony_ci    case kS390_PushFrame:
3941cb0ef41Sopenharmony_ci    case kS390_StoreToStackSlot:
3951cb0ef41Sopenharmony_ci    case kS390_S128Store8Lane:
3961cb0ef41Sopenharmony_ci    case kS390_S128Store16Lane:
3971cb0ef41Sopenharmony_ci    case kS390_S128Store32Lane:
3981cb0ef41Sopenharmony_ci    case kS390_S128Store64Lane:
3991cb0ef41Sopenharmony_ci      return kHasSideEffect;
4001cb0ef41Sopenharmony_ci
4011cb0ef41Sopenharmony_ci    case kS390_Word64AtomicExchangeUint64:
4021cb0ef41Sopenharmony_ci    case kS390_Word64AtomicCompareExchangeUint64:
4031cb0ef41Sopenharmony_ci    case kS390_Word64AtomicAddUint64:
4041cb0ef41Sopenharmony_ci    case kS390_Word64AtomicSubUint64:
4051cb0ef41Sopenharmony_ci    case kS390_Word64AtomicAndUint64:
4061cb0ef41Sopenharmony_ci    case kS390_Word64AtomicOrUint64:
4071cb0ef41Sopenharmony_ci    case kS390_Word64AtomicXorUint64:
4081cb0ef41Sopenharmony_ci      return kHasSideEffect;
4091cb0ef41Sopenharmony_ci
4101cb0ef41Sopenharmony_ci#define CASE(Name) case k##Name:
4111cb0ef41Sopenharmony_ci      COMMON_ARCH_OPCODE_LIST(CASE)
4121cb0ef41Sopenharmony_ci#undef CASE
4131cb0ef41Sopenharmony_ci      // Already covered in architecture independent code.
4141cb0ef41Sopenharmony_ci      UNREACHABLE();
4151cb0ef41Sopenharmony_ci  }
4161cb0ef41Sopenharmony_ci
4171cb0ef41Sopenharmony_ci  UNREACHABLE();
4181cb0ef41Sopenharmony_ci}
4191cb0ef41Sopenharmony_ci
4201cb0ef41Sopenharmony_ciint InstructionScheduler::GetInstructionLatency(const Instruction* instr) {
4211cb0ef41Sopenharmony_ci  // TODO(all): Add instruction cost modeling.
4221cb0ef41Sopenharmony_ci  return 1;
4231cb0ef41Sopenharmony_ci}
4241cb0ef41Sopenharmony_ci
4251cb0ef41Sopenharmony_ci}  // namespace compiler
4261cb0ef41Sopenharmony_ci}  // namespace internal
4271cb0ef41Sopenharmony_ci}  // namespace v8
428