Lines Matching refs:left
313 g.UseRegister(moffset.left().node()),
368 g.UseRegister(moffset.left().node()),
386 Node* left = m.left().node();
394 if (left == right) {
402 InstructionOperand const input = g.UseRegister(left);
406 inputs[input_count++] = g.UseRegister(left);
411 std::swap(left, right);
413 inputs[input_count++] = g.UseRegister(left);
454 Emit(kX64Movzxbl, g.DefineAsRegister(node), g.Use(m.left().node()));
456 Emit(kX64Movzxwl, g.DefineAsRegister(node), g.Use(m.left().node()));
482 Emit(kX64Not32, g.DefineSameAsFirst(node), g.UseRegister(m.left().node()));
493 Emit(kX64Not, g.DefineSameAsFirst(node), g.UseRegister(m.left().node()));
508 Node* left = m.left().node();
512 selector->Emit(opcode, g.DefineSameAsFirst(node), g.UseRegister(left),
515 selector->Emit(opcode, g.DefineSameAsFirst(node), g.UseRegister(left),
527 Node* left = m.left().node();
531 selector->Emit(opcode, g.DefineSameAsFirst(node), g.UseRegister(left),
537 right = mright.left().node();
540 selector->Emit(opcode, g.DefineSameAsFirst(node), g.UseRegister(left),
585 if ((m.left().IsChangeInt32ToInt64() || m.left().IsChangeUint32ToUint64()) &&
590 g.UseRegister(m.left().node()->InputAt(0)),
611 if (CanCover(m.node(), m.left().node()) && m.left().IsWord32Shl()) {
612 Int32BinopMatcher mleft(m.left().node());
614 Emit(kX64Movsxwl, g.DefineAsRegister(node), g.Use(mleft.left().node()));
617 Emit(kX64Movsxbl, g.DefineAsRegister(node), g.Use(mleft.left().node()));
628 if (CanCover(m.node(), m.left().node()) && m.left().IsLoad() &&
632 BaseWithIndexAndDisplacement64Matcher mleft(m.left().node(), true);
638 m.left().node(), inputs, &input_count);
786 if (m.left().Is(0)) {
793 g.DefineAsRegister(node), g.UseRegister(m.left().node()),
805 if (m.left().Is(0)) {
828 Node* left = m.left().node();
831 selector->Emit(opcode, g.DefineAsRegister(node), g.Use(left),
835 std::swap(left, right);
837 selector->Emit(opcode, g.DefineSameAsFirst(node), g.UseRegister(left),
846 Node* left = node->InputAt(0);
848 if (selector->IsLive(left) && !selector->IsLive(right)) {
849 std::swap(left, right);
854 selector->Emit(opcode, g.DefineAsFixed(node, rdx), g.UseFixed(left, rax),
1163 g.UseRegister(m.left().node()), g.TempImmediate(32));
1251 if (m.left().IsMinusZero()) {
1301 if (m.left().IsMinusZero()) {
1307 if (mright0.left().IsMinusZero()) {
1473 InstructionCode opcode, Node* left,
1476 DCHECK(left->opcode() == IrOpcode::kLoad);
1481 g.GetEffectiveAddressMemoryOperand(left, inputs, &input_count);
1502 InstructionOperand left, InstructionOperand right,
1507 selector->Emit(opcode, g.NoOutput(), left, right,
1510 selector->EmitDeoptimize(opcode, g.NoOutput(), left, right,
1514 selector->Emit(opcode, g.DefineAsRegister(cont->result()), left, right);
1521 Node* left, Node* right, FlagsContinuation* cont,
1525 std::swap(left, right);
1527 VisitCompare(selector, opcode, g.UseRegister(left), g.Use(right), cont);
1532 InstructionCode TryNarrowOpcodeSize(InstructionCode opcode, Node* left,
1541 if (left->opcode() != IrOpcode::kLoad || right->opcode() != IrOpcode::kLoad) {
1546 LoadRepresentation left_representation = LoadRepresentationOf(left->op());
1565 Node* left = node->InputAt(0);
1568 opcode = TryNarrowOpcodeSize(opcode, left, right);
1571 // if one of the two inputs is a memory operand, make sure it's on the left.
1578 if ((!g.CanBeImmediate(right) && g.CanBeImmediate(left)) ||
1580 !g.CanBeMemoryOperand(opcode, node, left, effect_level))) {
1582 std::swap(left, right);
1587 if (g.CanBeMemoryOperand(opcode, node, left, effect_level)) {
1588 return VisitCompareWithMemoryOperand(selector, opcode, left,
1591 return VisitCompare(selector, opcode, g.Use(left), g.UseImmediate(right),
1595 // Match memory operands on left side of comparison.
1596 if (g.CanBeMemoryOperand(opcode, node, left, effect_level)) {
1597 return VisitCompareWithMemoryOperand(selector, opcode, left,
1603 std::swap(left, right);
1606 return VisitCompare(selector, opcode, left, right, cont,
1615 if (m.left().IsLoad() && m.right().IsLoadStackPointer()) {
1616 LoadMatcher<ExternalReferenceMatcher> mleft(m.left().node());
1651 Node* const left = node->InputAt(0);
1655 VisitCompare(selector, opcode, right, left, cont, false);
1662 Node* const left = node->InputAt(0);
1666 VisitCompare(selector, opcode, right, left, cont, false);
1680 value = m.left().node();
1705 Node* const value = m.left().node();
1855 Node* value = m.left().node();
1862 value = m.left().node();
1918 Node* const value = m.left().node();
2036 Node* left = node->InputAt(0);
2038 Float64Matcher mleft(left);
2044 g.UseRegister(left), g.Use(right));
2050 Node* left = node->InputAt(0);
2053 g.UseRegister(left), g.Use(right));