Lines Matching refs:right
187 if (mright.right().Is(0xff) || mright.right().Is(0xffff)) { in TryMatchAnyExtend()
188 int32_t mask = mright.right().Value(); in TryMatchAnyExtend()
200 if ((mright.right().Is(16) && mleft_of_right.right().Is(16)) || in TryMatchAnyExtend()
201 (mright.right().Is(24) && mleft_of_right.right().Is(24))) { in TryMatchAnyExtend()
202 int32_t shift = mright.right().Value(); in TryMatchAnyExtend()
238 Node* right_node = m.right().node(); in VisitBinop()
261 inputs[input_count++] = g.UseImmediate(m_shift.right().node()); in VisitBinop()
268 inputs[input_count++] = g.UseImmediate(m_shift.right().node()); in VisitBinop()
311 if (m.right().HasValue() && (m.right().Value() < 0) && in VisitAddSub()
312 g.CanBeImmediate(-m.right().Value(), kArithmeticImm)) { in VisitAddSub()
315 g.TempImmediate(static_cast<int32_t>(-m.right().Value()))); in VisitAddSub()
328 if (m->right().HasValue() && m->right().Value() >= 3) { in LeftShiftForReducedMultiply()
329 uint64_t value_minus_one = m->right().Value() - 1; in LeftShiftForReducedMultiply()
582 if (mleft.right().Is(-1)) { in VisitLogical()
585 g.UseRegister(m->right().node()), in VisitLogical()
592 if ((m->right().IsWord32Xor() || m->right().IsWord64Xor()) && in VisitLogical()
594 Matcher mright(m->right().node()); in VisitLogical()
595 if (mright.right().Is(-1)) { in VisitLogical()
604 if (m->IsWord32Xor() && m->right().Is(-1)) { in VisitLogical()
607 } else if (m->IsWord64Xor() && m->right().Is(-1)) { in VisitLogical()
620 m.right().HasValue()) { in VisitWord32And()
621 uint32_t mask = m.right().Value(); in VisitWord32And()
631 if (mleft.right().HasValue()) { in VisitWord32And()
633 uint32_t lsb = mleft.right().Value() & 0x1f; in VisitWord32And()
643 g.UseImmediateOrTemp(mleft.right().node(), lsb), in VisitWord32And()
652 CanCover(node, m.right().node()), kLogical32Imm); in VisitWord32And()
660 m.right().HasValue()) { in VisitWord64And()
661 uint64_t mask = m.right().Value(); in VisitWord64And()
671 if (mleft.right().HasValue()) { in VisitWord64And()
673 uint32_t lsb = static_cast<uint32_t>(mleft.right().Value() & 0x3f); in VisitWord64And()
683 g.UseImmediateOrTemp(mleft.right().node(), lsb), in VisitWord64And()
692 CanCover(node, m.right().node()), kLogical64Imm); in VisitWord64And()
700 CanCover(node, m.right().node()), kLogical32Imm); in VisitWord32Or()
708 CanCover(node, m.right().node()), kLogical64Imm); in VisitWord64Or()
716 CanCover(node, m.right().node()), kLogical32Imm); in VisitWord32Xor()
724 CanCover(node, m.right().node()), kLogical64Imm); in VisitWord64Xor()
731 m.right().IsInRange(1, 31)) { in VisitWord32Shl()
734 if (mleft.right().HasValue()) { in VisitWord32Shl()
735 uint32_t mask = mleft.right().Value(); in VisitWord32Shl()
739 uint32_t shift = m.right().Value(); in VisitWord32Shl()
748 g.UseImmediate(m.right().node())); in VisitWord32Shl()
755 g.UseImmediate(m.right().node()), g.TempImmediate(mask_width)); in VisitWord32Shl()
769 m.right().IsInRange(32, 63)) { in VisitWord64Shl()
774 g.UseImmediate(m.right().node())); in VisitWord64Shl()
790 if (mleft.right().HasValue() && m.right().HasValue() && in TryEmitBitfieldExtract32()
791 (mleft.right().Value() & 0x1f) == (m.right().Value() & 0x1f)) { in TryEmitBitfieldExtract32()
795 int right_val = m.right().Value() & 0x1f; in TryEmitBitfieldExtract32()
812 if (m.left().IsWord32And() && m.right().HasValue()) { in VisitWord32Shr()
813 uint32_t lsb = m.right().Value() & 0x1f; in VisitWord32Shr()
815 if (mleft.right().HasValue()) { in VisitWord32Shr()
818 uint32_t mask = (mleft.right().Value() >> lsb) << lsb; in VisitWord32Shr()
826 g.UseImmediateOrTemp(m.right().node(), lsb), in VisitWord32Shr()
835 if (m.left().IsUint32MulHigh() && m.right().HasValue() && in VisitWord32Shr()
841 int shift = m.right().Value() & 0x1f; in VisitWord32Shr()
856 if (m.left().IsWord64And() && m.right().HasValue()) { in VisitWord64Shr()
857 uint32_t lsb = m.right().Value() & 0x3f; in VisitWord64Shr()
859 if (mleft.right().HasValue()) { in VisitWord64Shr()
862 uint64_t mask = (mleft.right().Value() >> lsb) << lsb; in VisitWord64Shr()
870 g.UseImmediateOrTemp(m.right().node(), lsb), in VisitWord64Shr()
886 if (m.left().IsInt32MulHigh() && m.right().HasValue() && in VisitWord32Sar()
892 int shift = m.right().Value() & 0x1f; in VisitWord32Sar()
901 if (m.left().IsInt32Add() && m.right().HasValue() && in VisitWord32Sar()
982 g.UseRegister(mleft.right().node()), in VisitInt32Add()
983 g.UseRegister(m.right().node())); in VisitInt32Add()
988 if (m.right().IsInt32Mul() && CanCover(node, m.right().node())) { in VisitInt32Add()
989 Int32BinopMatcher mright(m.right().node()); in VisitInt32Add()
994 g.UseRegister(mright.right().node()), in VisitInt32Add()
1013 g.UseRegister(mleft.right().node()), in VisitInt64Add()
1014 g.UseRegister(m.right().node())); in VisitInt64Add()
1019 if (m.right().IsInt64Mul() && CanCover(node, m.right().node())) { in VisitInt64Add()
1020 Int64BinopMatcher mright(m.right().node()); in VisitInt64Add()
1025 g.UseRegister(mright.right().node()), in VisitInt64Add()
1039 if (m.right().IsInt32Mul() && CanCover(node, m.right().node())) { in VisitInt32Sub()
1040 Int32BinopMatcher mright(m.right().node()); in VisitInt32Sub()
1045 g.UseRegister(mright.right().node()), in VisitInt32Sub()
1060 if (m.right().IsInt64Mul() && CanCover(node, m.right().node())) { in VisitInt64Sub()
1061 Int64BinopMatcher mright(m.right().node()); in VisitInt64Sub()
1066 g.UseRegister(mright.right().node()), in VisitInt64Sub()
1096 g.UseRegister(mleft.right().node()), in VisitInt32Mul()
1097 g.UseRegister(m.right().node())); in VisitInt32Mul()
1102 if (m.right().IsInt32Sub() && CanCover(node, m.right().node())) { in VisitInt32Mul()
1103 Int32BinopMatcher mright(m.right().node()); in VisitInt32Mul()
1109 g.UseRegister(mright.right().node())); in VisitInt32Mul()
1138 g.UseRegister(mleft.right().node()), in VisitInt64Mul()
1139 g.UseRegister(m.right().node())); in VisitInt64Mul()
1144 if (m.right().IsInt64Sub() && CanCover(node, m.right().node())) { in VisitInt64Mul()
1145 Int64BinopMatcher mright(m.right().node()); in VisitInt64Mul()
1150 g.UseRegister(mright.right().node())); in VisitInt64Mul()
1376 if ((m.IsWord64Sar() && m.right().HasValue() && in VisitTruncateInt64ToInt32()
1377 (m.right().Value() == 32)) || in VisitTruncateInt64ToInt32()
1378 (m.IsWord64Shr() && m.right().IsInRange(32, 63))) { in VisitTruncateInt64ToInt32()
1380 g.UseImmediate(m.right().node())); in VisitTruncateInt64ToInt32()
1448 if (m.right().IsFloat64RoundDown() && in VisitFloat64Sub()
1449 CanCover(m.node(), m.right().node())) { in VisitFloat64Sub()
1450 if (m.right().InputAt(0)->opcode() == IrOpcode::kFloat64Sub && in VisitFloat64Sub()
1451 CanCover(m.right().node(), m.right().InputAt(0))) { in VisitFloat64Sub()
1452 Float64BinopMatcher mright0(m.right().InputAt(0)); in VisitFloat64Sub()
1455 g.UseRegister(mright0.right().node())); in VisitFloat64Sub()
1461 g.UseRegister(m.right().node())); in VisitFloat64Sub()
1628 InstructionOperand left, InstructionOperand right, in VisitCompare() argument
1633 selector->Emit(opcode, g.NoOutput(), left, right, in VisitCompare()
1637 selector->Emit(opcode, g.DefineAsRegister(cont->result()), left, right); in VisitCompare()
1648 Node* right = node->InputAt(1); in VisitWordCompare() local
1651 if (g.CanBeImmediate(right, immediate_mode)) { in VisitWordCompare()
1652 VisitCompare(selector, opcode, g.UseRegister(left), g.UseImmediate(right), in VisitWordCompare()
1656 VisitCompare(selector, opcode, g.UseRegister(right), g.UseImmediate(left), in VisitWordCompare()
1659 VisitCompare(selector, opcode, g.UseRegister(left), g.UseRegister(right), in VisitWordCompare()
1671 if (m.right().IsInt32Sub()) { in VisitWord32Compare()
1672 Node* sub = m.right().node(); in VisitWord32Compare()
1676 node->ReplaceInput(1, msub.right().node()); in VisitWord32Compare()
1718 if (m.right().Is(0.0f)) { in VisitFloat32Compare()
1720 g.UseImmediate(m.right().node()), cont); in VisitFloat32Compare()
1723 VisitCompare(selector, kArm64Float32Cmp, g.UseRegister(m.right().node()), in VisitFloat32Compare()
1727 g.UseRegister(m.right().node()), cont); in VisitFloat32Compare()
1737 if (m.right().Is(0.0)) { in VisitFloat64Compare()
1739 g.UseImmediate(m.right().node()), cont); in VisitFloat64Compare()
1742 VisitCompare(selector, kArm64Float64Cmp, g.UseRegister(m.right().node()), in VisitFloat64Compare()
1746 g.UseRegister(m.right().node()), cont); in VisitFloat64Compare()
1764 if (m.right().Is(0)) { in VisitBranch()
1871 if (m.right().HasValue() && in VisitBranch()
1872 (base::bits::CountPopulation32(m.right().Value()) == 1)) { in VisitBranch()
1879 base::bits::CountTrailingZeros32(m.right().Value())), in VisitBranch()
1888 if (m.right().HasValue() && in VisitBranch()
1889 (base::bits::CountPopulation64(m.right().Value()) == 1)) { in VisitBranch()
1896 base::bits::CountTrailingZeros64(m.right().Value())), in VisitBranch()
1947 if (m.right().Is(0)) { in VisitWord32Equal()
1964 node->ReplaceInput(1, mequal.right().node()); in VisitWord32Equal()
2006 if (m.right().Is(0)) { in VisitWord64Equal()
2144 Node* right = node->InputAt(1); in VisitFloat64InsertLowWord32() local
2148 Emit(kArm64Bfi, g.DefineSameAsFirst(right), g.UseRegister(right), in VisitFloat64InsertLowWord32()
2151 Emit(kArm64Float64MoveU64, g.DefineAsRegister(node), g.UseRegister(right)); in VisitFloat64InsertLowWord32()
2155 g.UseRegister(left), g.UseRegister(right)); in VisitFloat64InsertLowWord32()
2162 Node* right = node->InputAt(1); in VisitFloat64InsertHighWord32() local
2167 g.UseRegister(right), g.TempImmediate(32), g.TempImmediate(32)); in VisitFloat64InsertHighWord32()
2172 g.UseRegister(left), g.UseRegister(right)); in VisitFloat64InsertHighWord32()