Lines Matching refs:OperandMode
15 enum class OperandMode : uint32_t { enum
39 typedef base::Flags<OperandMode, uint32_t> OperandModes;
42 OperandMode::kShift32Imm | OperandMode::kShift64Imm |
43 OperandMode::kInt32Imm | OperandMode::kInt32Imm_Negate |
44 OperandMode::kUint32Imm | OperandMode::kInt20Imm;
47 ((OperandMode::kAllowRM | \
48 (CpuFeatures::IsSupported(DISTINCT_OPS) ? OperandMode::kAllowRRR \
49 : OperandMode::kNone)))
55 (AndCommonMode | OperandMode::kAllowRI | OperandMode::kUint32Imm)
60 ((OperandMode::kAllowRI | OperandMode::kShift64Imm | \
62 ? (OperandMode::kAllowRRR | OperandMode::kAllowRRI) \
63 : OperandMode::kNone)))
66 ((OperandMode::kAllowRI | OperandMode::kShift64Imm | \
67 OperandMode::kAllowRRR | OperandMode::kAllowRRI))
70 ((OperandMode::kArithmeticCommonMode | OperandMode::kInt32Imm | \
72 ? (OperandMode::kAllowRRR | OperandMode::kAllowRRI) \
73 : OperandMode::kArithmeticCommonMode)))
75 ((OperandMode::kArithmeticCommonMode | OperandMode::kInt32Imm_Negate | \
77 ? (OperandMode::kAllowRRR | OperandMode::kAllowRRI) \
78 : OperandMode::kArithmeticCommonMode)))
80 (OperandMode::kArithmeticCommonMode | OperandMode::kInt32Imm)
124 if (mode & OperandMode::kShift32Imm) in CanBeImmediate()
126 else if (mode & OperandMode::kShift64Imm) in CanBeImmediate()
128 else if (mode & OperandMode::kInt32Imm) in CanBeImmediate()
130 else if (mode & OperandMode::kInt32Imm_Negate) in CanBeImmediate()
132 else if (mode & OperandMode::kUint32Imm) in CanBeImmediate()
134 else if (mode & OperandMode::kInt20Imm) in CanBeImmediate()
136 else if (mode & OperandMode::kUint12Imm) in CanBeImmediate()
213 OperandModes immediate_mode = OperandMode::kInt20Imm) { in GetEffectiveAddressMemoryOperand()
280 (S390OpcodeOnlySupport12BitDisp(op) ? OperandMode::kUint12Imm \
281 : OperandMode::kInt20Imm)
456 if ((operand_mode & OperandMode::kAllowImmediate) && in GenerateRightOperands()
460 operand_mode &= OperandMode::kAllowImmediate; in GenerateRightOperands()
461 } else if (operand_mode & OperandMode::kAllowMemoryOperand) { in GenerateRightOperands()
468 operand_mode &= ~OperandMode::kAllowImmediate; in GenerateRightOperands()
469 if (operand_mode & OperandMode::kAllowRM) in GenerateRightOperands()
470 operand_mode &= ~OperandMode::kAllowDistinctOps; in GenerateRightOperands()
471 } else if (operand_mode & OperandMode::kAllowRM) { in GenerateRightOperands()
472 DCHECK(!(operand_mode & OperandMode::kAllowRRM)); in GenerateRightOperands()
476 ~OperandMode::kAllowImmediate & ~OperandMode::kAllowDistinctOps; in GenerateRightOperands()
477 } else if (operand_mode & OperandMode::kAllowRRM) { in GenerateRightOperands()
478 DCHECK(!(operand_mode & OperandMode::kAllowRM)); in GenerateRightOperands()
481 operand_mode &= ~OperandMode::kAllowImmediate; in GenerateRightOperands()
488 operand_mode &= OperandMode::kAllowRRR; in GenerateRightOperands()
506 operand_mode &= OperandMode::kAllowRRR; in GenerateBinOpOperands()
653 if ((operand_mode & OperandMode::kAllowDistinctOps) && in VisitBinOp()
736 if (g.CanBeImmediate(offset, OperandMode::kInt20Imm)) { in VisitStore()
1146 VisitWord32UnaryOp(this, node, kS390_Abs32, OperandMode::kNone); in VisitInt32AbsWithOverflow()
1150 VisitWord64UnaryOp(this, node, kS390_Abs64, OperandMode::kNone); in VisitInt64AbsWithOverflow()
1210 if (g.CanBeImmediate(right, OperandMode::kInt32Imm) && in TryMatchShiftFromMul()
1259 selector, node, OperandMode::kAllowRRR | OperandMode::kAllowRM); in TryMatchInt32MulWithOverflow()
1263 OperandMode::kInt32Imm | OperandMode::kAllowDistinctOps, in TryMatchInt32MulWithOverflow()
1332 OperandMode::kAllowRM, null) \
1334 OperandMode::kAllowRM, null) \
1336 OperandMode::kNone, null) \
1338 OperandMode::kNone, null) \
1339 V(Float64, RoundFloat64ToInt32, kS390_DoubleToInt32, OperandMode::kNone, \
1341 V(Float32, TruncateFloat32ToInt32, kS390_Float32ToInt32, OperandMode::kNone, \
1344 OperandMode::kNone, null) \
1346 OperandMode::kNone, null) \
1347 V(Float64, ChangeFloat64ToInt32, kS390_DoubleToInt32, OperandMode::kNone, \
1349 V(Float64, ChangeFloat64ToUint32, kS390_DoubleToUint32, OperandMode::kNone, \
1351 V(Float64, Float64SilenceNaN, kS390_Float64SilenceNaN, OperandMode::kNone, \
1353 V(Float32, Float32Abs, kS390_AbsFloat, OperandMode::kNone, null) \
1354 V(Float64, Float64Abs, kS390_AbsDouble, OperandMode::kNone, null) \
1355 V(Float32, Float32Sqrt, kS390_SqrtFloat, OperandMode::kNone, null) \
1356 V(Float64, Float64Sqrt, kS390_SqrtDouble, OperandMode::kNone, null) \
1357 V(Float32, Float32RoundDown, kS390_FloorFloat, OperandMode::kNone, null) \
1358 V(Float64, Float64RoundDown, kS390_FloorDouble, OperandMode::kNone, null) \
1359 V(Float32, Float32RoundUp, kS390_CeilFloat, OperandMode::kNone, null) \
1360 V(Float64, Float64RoundUp, kS390_CeilDouble, OperandMode::kNone, null) \
1361 V(Float32, Float32RoundTruncate, kS390_TruncateFloat, OperandMode::kNone, \
1363 V(Float64, Float64RoundTruncate, kS390_TruncateDouble, OperandMode::kNone, \
1365 V(Float64, Float64RoundTiesAway, kS390_RoundDouble, OperandMode::kNone, \
1367 V(Float32, Float32Neg, kS390_NegFloat, OperandMode::kNone, null) \
1368 V(Float64, Float64Neg, kS390_NegDouble, OperandMode::kNone, null) \
1371 OperandMode::kNone, null) \
1373 OperandMode::kNone, null)
1376 V(Float32, Float32Add, kS390_AddFloat, OperandMode::kAllowRM, null) \
1377 V(Float64, Float64Add, kS390_AddDouble, OperandMode::kAllowRM, null) \
1378 V(Float32, Float32Sub, kS390_SubFloat, OperandMode::kAllowRM, null) \
1379 V(Float64, Float64Sub, kS390_SubDouble, OperandMode::kAllowRM, null) \
1380 V(Float32, Float32Mul, kS390_MulFloat, OperandMode::kAllowRM, null) \
1381 V(Float64, Float64Mul, kS390_MulDouble, OperandMode::kAllowRM, null) \
1382 V(Float32, Float32Div, kS390_DivFloat, OperandMode::kAllowRM, null) \
1383 V(Float64, Float64Div, kS390_DivDouble, OperandMode::kAllowRM, null) \
1384 V(Float32, Float32Max, kS390_MaxFloat, OperandMode::kNone, null) \
1385 V(Float64, Float64Max, kS390_MaxDouble, OperandMode::kNone, null) \
1386 V(Float32, Float32Min, kS390_MinFloat, OperandMode::kNone, null) \
1387 V(Float64, Float64Min, kS390_MinDouble, OperandMode::kNone, null)
1390 V(Word32, Word32Clz, kS390_Cntlz32, OperandMode::kNone, null) \
1391 V(Word32, Word32Popcnt, kS390_Popcnt32, OperandMode::kNone, null) \
1392 V(Word32, RoundInt32ToFloat32, kS390_Int32ToFloat32, OperandMode::kNone, \
1394 V(Word32, RoundUint32ToFloat32, kS390_Uint32ToFloat32, OperandMode::kNone, \
1396 V(Word32, ChangeInt32ToFloat64, kS390_Int32ToDouble, OperandMode::kNone, \
1398 V(Word32, ChangeUint32ToFloat64, kS390_Uint32ToDouble, OperandMode::kNone, \
1401 OperandMode::kNone, null) \
1403 OperandMode::kNone, null) \
1405 OperandMode::kNone, null)
1410 V(Float64, ChangeFloat64ToUint64, kS390_DoubleToUint64, OperandMode::kNone, \
1413 OperandMode::kNone, null)
1417 OperandMode::kNone, null) \
1419 OperandMode::kNone, null) \
1421 OperandMode::kNone, null) \
1423 OperandMode::kNone, null) \
1424 V(Word32, ChangeUint32ToUint64, kS390_Uint32ToUint64, OperandMode::kNone, \
1454 OperandMode::kInt32Imm | OperandMode::kAllowDistinctOps, null) \
1456 OperandMode::kAllowRRM | OperandMode::kAllowRRR, null) \
1458 OperandMode::kAllowRRM | OperandMode::kAllowRRR, null) \
1460 OperandMode::kAllowRRM | OperandMode::kAllowRRR, null) \
1462 OperandMode::kAllowRRM | OperandMode::kAllowRRR, null) \
1464 OperandMode::kAllowRRM | OperandMode::kAllowRRR, null) \
1466 OperandMode::kAllowRI | OperandMode::kAllowRRR | OperandMode::kAllowRRI | \
1467 OperandMode::kShift32Imm, \
1477 OperandMode::kAllowRRR, \
1480 OperandMode::kAllowRRR, \
1484 V(Word64, Word64Popcnt, kS390_Popcnt64, OperandMode::kNone, null) \
1485 V(Word64, Word64Clz, kS390_Cntlz64, OperandMode::kNone, null) \
1486 V(Word64, TruncateInt64ToInt32, kS390_Int64ToInt32, OperandMode::kNone, \
1488 V(Word64, RoundInt64ToFloat32, kS390_Int64ToFloat32, OperandMode::kNone, \
1490 V(Word64, RoundInt64ToFloat64, kS390_Int64ToDouble, OperandMode::kNone, \
1492 V(Word64, RoundUint64ToFloat32, kS390_Uint64ToFloat32, OperandMode::kNone, \
1494 V(Word64, RoundUint64ToFloat64, kS390_Uint64ToDouble, OperandMode::kNone, \
1497 OperandMode::kNone, null)
1513 OperandMode::kAllowRRM | OperandMode::kAllowRRR, null) \
1515 OperandMode::kAllowRRM | OperandMode::kAllowRRR, null) \
1517 OperandMode::kAllowRRM | OperandMode::kAllowRRR, null) \
1519 OperandMode::kAllowRRM | OperandMode::kAllowRRR, null) \
1696 (CompareLogical(cont) ? OperandMode::kUint32Imm : OperandMode::kInt32Imm); in VisitWord32Compare()
1704 (CompareLogical(cont) ? OperandMode::kUint32Imm : OperandMode::kInt32Imm); in VisitWord64Compare()
1712 VisitWordCompare(selector, node, kS390_CmpFloat, cont, OperandMode::kNone); in VisitFloat32Compare()
1718 VisitWordCompare(selector, node, kS390_CmpDouble, cont, OperandMode::kNone); in VisitFloat64Compare()
1730 if (!g.CanBeImmediate(right, OperandMode::kUint32Imm) && in VisitTestUnderMask()
1731 g.CanBeImmediate(left, OperandMode::kUint32Imm)) { in VisitTestUnderMask()
1735 g.UseOperand(right, OperandMode::kUint32Imm), cont); in VisitTestUnderMask()
1908 OperandMode::kAllowRRR | OperandMode::kAllowRM, cont); in VisitWordCompareZero()
1913 OperandMode::kInt32Imm | OperandMode::kAllowDistinctOps, in VisitWordCompareZero()
1919 OperandMode::kNone, cont); in VisitWordCompareZero()
1924 OperandMode::kNone, cont); in VisitWordCompareZero()
2318 if (g.CanBeImmediate(index, OperandMode::kInt20Imm)) { in VisitWord32AtomicCompareExchange()
2365 if (g.CanBeImmediate(index, OperandMode::kInt20Imm)) { in VisitWord32AtomicBinaryOperation()