Lines Matching refs:node

27   InstructionOperand UseOperand(Node* node, InstructionCode opcode) {  in UseOperand()  argument
28 if (CanBeImmediate(node, opcode)) { in UseOperand()
29 return UseImmediate(node); in UseOperand()
31 return UseRegister(node); in UseOperand()
34 bool CanBeImmediate(Node* node, InstructionCode opcode) { in CanBeImmediate() argument
35 Int32Matcher m(node); in CanBeImmediate()
65 Node* node) { in VisitRRR() argument
67 selector->Emit(opcode, g.DefineAsRegister(node), in VisitRRR()
68 g.UseRegister(node->InputAt(0)), in VisitRRR()
69 g.UseRegister(node->InputAt(1))); in VisitRRR()
74 Node* node) { in VisitRR() argument
76 selector->Emit(opcode, g.DefineAsRegister(node), in VisitRR()
77 g.UseRegister(node->InputAt(0))); in VisitRR()
82 Node* node) { in VisitRRO() argument
84 selector->Emit(opcode, g.DefineAsRegister(node), in VisitRRO()
85 g.UseRegister(node->InputAt(0)), in VisitRRO()
86 g.UseOperand(node->InputAt(1), opcode)); in VisitRRO()
90 static void VisitBinop(InstructionSelector* selector, Node* node, in VisitBinop() argument
93 Int32BinopMatcher m(node); in VisitBinop()
99 inputs[input_count++] = g.UseRegister(m.left().node()); in VisitBinop()
100 inputs[input_count++] = g.UseOperand(m.right().node(), opcode); in VisitBinop()
107 outputs[output_count++] = g.DefineAsRegister(node); in VisitBinop()
122 static void VisitBinop(InstructionSelector* selector, Node* node, in VisitBinop() argument
125 VisitBinop(selector, node, opcode, &cont); in VisitBinop()
129 void InstructionSelector::VisitLoad(Node* node) { in VisitLoad() argument
130 LoadRepresentation load_rep = LoadRepresentationOf(node->op()); in VisitLoad()
132 Node* base = node->InputAt(0); in VisitLoad()
133 Node* index = node->InputAt(1); in VisitLoad()
162 g.DefineAsRegister(node), g.UseRegister(base), g.UseImmediate(index)); in VisitLoad()
169 g.DefineAsRegister(node), addr_reg, g.TempImmediate(0)); in VisitLoad()
174 void InstructionSelector::VisitStore(Node* node) { in VisitStore() argument
176 Node* base = node->InputAt(0); in VisitStore()
177 Node* index = node->InputAt(1); in VisitStore()
178 Node* value = node->InputAt(2); in VisitStore()
180 StoreRepresentation store_rep = StoreRepresentationOf(node->op()); in VisitStore()
255 void InstructionSelector::VisitWord32And(Node* node) { in VisitWord32And() argument
257 Int32BinopMatcher m(node); in VisitWord32And()
258 if (m.left().IsWord32Shr() && CanCover(node, m.left().node()) && in VisitWord32And()
269 Int32BinopMatcher mleft(m.left().node()); in VisitWord32And()
280 Emit(kMipsExt, g.DefineAsRegister(node), in VisitWord32And()
281 g.UseRegister(mleft.left().node()), g.TempImmediate(lsb), in VisitWord32And()
295 Emit(kMipsIns, g.DefineSameAsFirst(node), g.UseRegister(m.left().node()), in VisitWord32And()
300 VisitBinop(this, node, kMipsAnd); in VisitWord32And()
304 void InstructionSelector::VisitWord32Or(Node* node) { in VisitWord32Or() argument
305 VisitBinop(this, node, kMipsOr); in VisitWord32Or()
309 void InstructionSelector::VisitWord32Xor(Node* node) { in VisitWord32Xor() argument
310 Int32BinopMatcher m(node); in VisitWord32Xor()
311 if (m.left().IsWord32Or() && CanCover(node, m.left().node()) && in VisitWord32Xor()
313 Int32BinopMatcher mleft(m.left().node()); in VisitWord32Xor()
316 Emit(kMipsNor, g.DefineAsRegister(node), in VisitWord32Xor()
317 g.UseRegister(mleft.left().node()), in VisitWord32Xor()
318 g.UseRegister(mleft.right().node())); in VisitWord32Xor()
325 Emit(kMipsNor, g.DefineAsRegister(node), g.UseRegister(m.left().node()), in VisitWord32Xor()
329 VisitBinop(this, node, kMipsXor); in VisitWord32Xor()
333 void InstructionSelector::VisitWord32Shl(Node* node) { in VisitWord32Shl() argument
334 Int32BinopMatcher m(node); in VisitWord32Shl()
335 if (m.left().IsWord32And() && CanCover(node, m.left().node()) && in VisitWord32Shl()
338 Int32BinopMatcher mleft(m.left().node()); in VisitWord32Shl()
352 Emit(kMipsShl, g.DefineAsRegister(node), in VisitWord32Shl()
353 g.UseRegister(mleft.left().node()), in VisitWord32Shl()
354 g.UseImmediate(m.right().node())); in VisitWord32Shl()
360 VisitRRO(this, kMipsShl, node); in VisitWord32Shl()
364 void InstructionSelector::VisitWord32Shr(Node* node) { in VisitWord32Shr() argument
365 Int32BinopMatcher m(node); in VisitWord32Shr()
368 Int32BinopMatcher mleft(m.left().node()); in VisitWord32Shr()
378 Emit(kMipsExt, g.DefineAsRegister(node), in VisitWord32Shr()
379 g.UseRegister(mleft.left().node()), g.TempImmediate(lsb), in VisitWord32Shr()
385 VisitRRO(this, kMipsShr, node); in VisitWord32Shr()
389 void InstructionSelector::VisitWord32Sar(Node* node) { in VisitWord32Sar() argument
390 VisitRRO(this, kMipsSar, node); in VisitWord32Sar()
394 void InstructionSelector::VisitWord32Ror(Node* node) { in VisitWord32Ror() argument
395 VisitRRO(this, kMipsRor, node); in VisitWord32Ror()
399 void InstructionSelector::VisitWord32Clz(Node* node) { in VisitWord32Clz() argument
400 VisitRR(this, kMipsClz, node); in VisitWord32Clz()
404 void InstructionSelector::VisitWord32Ctz(Node* node) { UNREACHABLE(); } in VisitWord32Ctz() argument
407 void InstructionSelector::VisitWord32Popcnt(Node* node) { UNREACHABLE(); } in VisitWord32Popcnt() argument
410 void InstructionSelector::VisitInt32Add(Node* node) { in VisitInt32Add() argument
414 VisitBinop(this, node, kMipsAdd); in VisitInt32Add()
418 void InstructionSelector::VisitInt32Sub(Node* node) { in VisitInt32Sub() argument
419 VisitBinop(this, node, kMipsSub); in VisitInt32Sub()
423 void InstructionSelector::VisitInt32Mul(Node* node) { in VisitInt32Mul() argument
425 Int32BinopMatcher m(node); in VisitInt32Mul()
430 g.DefineAsRegister(node), g.UseRegister(m.left().node()), in VisitInt32Mul()
437 g.UseRegister(m.left().node()), in VisitInt32Mul()
440 g.DefineAsRegister(node), g.UseRegister(m.left().node()), temp); in VisitInt32Mul()
446 g.UseRegister(m.left().node()), in VisitInt32Mul()
449 g.DefineAsRegister(node), temp, g.UseRegister(m.left().node())); in VisitInt32Mul()
453 VisitRRR(this, kMipsMul, node); in VisitInt32Mul()
457 void InstructionSelector::VisitInt32MulHigh(Node* node) { in VisitInt32MulHigh() argument
458 VisitRRR(this, kMipsMulHigh, node); in VisitInt32MulHigh()
462 void InstructionSelector::VisitUint32MulHigh(Node* node) { in VisitUint32MulHigh() argument
464 Emit(kMipsMulHighU, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0)), in VisitUint32MulHigh()
465 g.UseRegister(node->InputAt(1))); in VisitUint32MulHigh()
469 void InstructionSelector::VisitInt32Div(Node* node) { in VisitInt32Div() argument
471 Int32BinopMatcher m(node); in VisitInt32Div()
472 Emit(kMipsDiv, g.DefineSameAsFirst(node), g.UseRegister(m.left().node()), in VisitInt32Div()
473 g.UseRegister(m.right().node())); in VisitInt32Div()
477 void InstructionSelector::VisitUint32Div(Node* node) { in VisitUint32Div() argument
479 Int32BinopMatcher m(node); in VisitUint32Div()
480 Emit(kMipsDivU, g.DefineSameAsFirst(node), g.UseRegister(m.left().node()), in VisitUint32Div()
481 g.UseRegister(m.right().node())); in VisitUint32Div()
485 void InstructionSelector::VisitInt32Mod(Node* node) { in VisitInt32Mod() argument
487 Int32BinopMatcher m(node); in VisitInt32Mod()
488 Emit(kMipsMod, g.DefineAsRegister(node), g.UseRegister(m.left().node()), in VisitInt32Mod()
489 g.UseRegister(m.right().node())); in VisitInt32Mod()
493 void InstructionSelector::VisitUint32Mod(Node* node) { in VisitUint32Mod() argument
495 Int32BinopMatcher m(node); in VisitUint32Mod()
496 Emit(kMipsModU, g.DefineAsRegister(node), g.UseRegister(m.left().node()), in VisitUint32Mod()
497 g.UseRegister(m.right().node())); in VisitUint32Mod()
501 void InstructionSelector::VisitChangeFloat32ToFloat64(Node* node) { in VisitChangeFloat32ToFloat64() argument
502 VisitRR(this, kMipsCvtDS, node); in VisitChangeFloat32ToFloat64()
506 void InstructionSelector::VisitChangeInt32ToFloat64(Node* node) { in VisitChangeInt32ToFloat64() argument
507 VisitRR(this, kMipsCvtDW, node); in VisitChangeInt32ToFloat64()
511 void InstructionSelector::VisitChangeUint32ToFloat64(Node* node) { in VisitChangeUint32ToFloat64() argument
512 VisitRR(this, kMipsCvtDUw, node); in VisitChangeUint32ToFloat64()
516 void InstructionSelector::VisitChangeFloat64ToInt32(Node* node) { in VisitChangeFloat64ToInt32() argument
518 Node* value = node->InputAt(0); in VisitChangeFloat64ToInt32()
521 if (CanCover(node, value)) { in VisitChangeFloat64ToInt32()
524 Emit(kMipsFloorWD, g.DefineAsRegister(node), in VisitChangeFloat64ToInt32()
528 Emit(kMipsCeilWD, g.DefineAsRegister(node), in VisitChangeFloat64ToInt32()
532 Emit(kMipsRoundWD, g.DefineAsRegister(node), in VisitChangeFloat64ToInt32()
536 Emit(kMipsTruncWD, g.DefineAsRegister(node), in VisitChangeFloat64ToInt32()
548 Emit(kMipsFloorWS, g.DefineAsRegister(node), in VisitChangeFloat64ToInt32()
552 Emit(kMipsCeilWS, g.DefineAsRegister(node), in VisitChangeFloat64ToInt32()
556 Emit(kMipsRoundWS, g.DefineAsRegister(node), in VisitChangeFloat64ToInt32()
560 Emit(kMipsTruncWS, g.DefineAsRegister(node), in VisitChangeFloat64ToInt32()
564 Emit(kMipsTruncWS, g.DefineAsRegister(node), in VisitChangeFloat64ToInt32()
570 Emit(kMipsTruncWS, g.DefineAsRegister(node), in VisitChangeFloat64ToInt32()
576 VisitRR(this, kMipsTruncWD, node); in VisitChangeFloat64ToInt32()
580 void InstructionSelector::VisitChangeFloat64ToUint32(Node* node) { in VisitChangeFloat64ToUint32() argument
581 VisitRR(this, kMipsTruncUwD, node); in VisitChangeFloat64ToUint32()
585 void InstructionSelector::VisitTruncateFloat64ToFloat32(Node* node) { in VisitTruncateFloat64ToFloat32() argument
587 Node* value = node->InputAt(0); in VisitTruncateFloat64ToFloat32()
590 if (CanCover(node, value) && in VisitTruncateFloat64ToFloat32()
592 Emit(kMipsCvtSW, g.DefineAsRegister(node), in VisitTruncateFloat64ToFloat32()
596 VisitRR(this, kMipsCvtSD, node); in VisitTruncateFloat64ToFloat32()
600 void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) { in VisitTruncateFloat64ToInt32() argument
601 switch (TruncationModeOf(node->op())) { in VisitTruncateFloat64ToInt32()
603 return VisitRR(this, kArchTruncateDoubleToI, node); in VisitTruncateFloat64ToInt32()
605 return VisitRR(this, kMipsTruncWD, node); in VisitTruncateFloat64ToInt32()
611 void InstructionSelector::VisitBitcastFloat32ToInt32(Node* node) { in VisitBitcastFloat32ToInt32() argument
612 VisitRR(this, kMipsFloat64ExtractLowWord32, node); in VisitBitcastFloat32ToInt32()
616 void InstructionSelector::VisitBitcastInt32ToFloat32(Node* node) { in VisitBitcastInt32ToFloat32() argument
618 Emit(kMipsFloat64InsertLowWord32, g.DefineAsRegister(node), in VisitBitcastInt32ToFloat32()
620 g.UseRegister(node->InputAt(0))); in VisitBitcastInt32ToFloat32()
624 void InstructionSelector::VisitFloat32Add(Node* node) { in VisitFloat32Add() argument
625 VisitRRR(this, kMipsAddS, node); in VisitFloat32Add()
629 void InstructionSelector::VisitFloat64Add(Node* node) { in VisitFloat64Add() argument
630 VisitRRR(this, kMipsAddD, node); in VisitFloat64Add()
634 void InstructionSelector::VisitFloat32Sub(Node* node) { in VisitFloat32Sub() argument
635 VisitRRR(this, kMipsSubS, node); in VisitFloat32Sub()
639 void InstructionSelector::VisitFloat64Sub(Node* node) { in VisitFloat64Sub() argument
641 Float64BinopMatcher m(node); in VisitFloat64Sub()
643 CanCover(m.node(), m.right().node())) { in VisitFloat64Sub()
645 CanCover(m.right().node(), m.right().InputAt(0))) { in VisitFloat64Sub()
648 Emit(kMipsFloat64RoundUp, g.DefineAsRegister(node), in VisitFloat64Sub()
649 g.UseRegister(mright0.right().node())); in VisitFloat64Sub()
654 VisitRRR(this, kMipsSubD, node); in VisitFloat64Sub()
658 void InstructionSelector::VisitFloat32Mul(Node* node) { in VisitFloat32Mul() argument
659 VisitRRR(this, kMipsMulS, node); in VisitFloat32Mul()
663 void InstructionSelector::VisitFloat64Mul(Node* node) { in VisitFloat64Mul() argument
664 VisitRRR(this, kMipsMulD, node); in VisitFloat64Mul()
668 void InstructionSelector::VisitFloat32Div(Node* node) { in VisitFloat32Div() argument
669 VisitRRR(this, kMipsDivS, node); in VisitFloat32Div()
673 void InstructionSelector::VisitFloat64Div(Node* node) { in VisitFloat64Div() argument
674 VisitRRR(this, kMipsDivD, node); in VisitFloat64Div()
678 void InstructionSelector::VisitFloat64Mod(Node* node) { in VisitFloat64Mod() argument
680 Emit(kMipsModD, g.DefineAsFixed(node, f0), g.UseFixed(node->InputAt(0), f12), in VisitFloat64Mod()
681 g.UseFixed(node->InputAt(1), f14))->MarkAsCall(); in VisitFloat64Mod()
685 void InstructionSelector::VisitFloat32Max(Node* node) { in VisitFloat32Max() argument
688 Emit(kMipsFloat32Max, g.DefineAsRegister(node), in VisitFloat32Max()
689 g.UseUniqueRegister(node->InputAt(0)), in VisitFloat32Max()
690 g.UseUniqueRegister(node->InputAt(1))); in VisitFloat32Max()
694 Emit(kMipsFloat32Max, g.DefineSameAsFirst(node), in VisitFloat32Max()
695 g.UseRegister(node->InputAt(1)), g.UseRegister(node->InputAt(0))); in VisitFloat32Max()
700 void InstructionSelector::VisitFloat64Max(Node* node) { in VisitFloat64Max() argument
703 Emit(kMipsFloat64Max, g.DefineAsRegister(node), in VisitFloat64Max()
704 g.UseUniqueRegister(node->InputAt(0)), in VisitFloat64Max()
705 g.UseUniqueRegister(node->InputAt(1))); in VisitFloat64Max()
709 Emit(kMipsFloat64Max, g.DefineSameAsFirst(node), in VisitFloat64Max()
710 g.UseRegister(node->InputAt(1)), g.UseRegister(node->InputAt(0))); in VisitFloat64Max()
715 void InstructionSelector::VisitFloat32Min(Node* node) { in VisitFloat32Min() argument
718 Emit(kMipsFloat32Min, g.DefineAsRegister(node), in VisitFloat32Min()
719 g.UseUniqueRegister(node->InputAt(0)), in VisitFloat32Min()
720 g.UseUniqueRegister(node->InputAt(1))); in VisitFloat32Min()
724 Emit(kMipsFloat32Min, g.DefineSameAsFirst(node), in VisitFloat32Min()
725 g.UseRegister(node->InputAt(1)), g.UseRegister(node->InputAt(0))); in VisitFloat32Min()
730 void InstructionSelector::VisitFloat64Min(Node* node) { in VisitFloat64Min() argument
733 Emit(kMipsFloat64Min, g.DefineAsRegister(node), in VisitFloat64Min()
734 g.UseUniqueRegister(node->InputAt(0)), in VisitFloat64Min()
735 g.UseUniqueRegister(node->InputAt(1))); in VisitFloat64Min()
739 Emit(kMipsFloat64Min, g.DefineSameAsFirst(node), in VisitFloat64Min()
740 g.UseRegister(node->InputAt(1)), g.UseRegister(node->InputAt(0))); in VisitFloat64Min()
745 void InstructionSelector::VisitFloat32Abs(Node* node) { in VisitFloat32Abs() argument
746 VisitRR(this, kMipsAbsS, node); in VisitFloat32Abs()
750 void InstructionSelector::VisitFloat64Abs(Node* node) { in VisitFloat64Abs() argument
751 VisitRR(this, kMipsAbsD, node); in VisitFloat64Abs()
755 void InstructionSelector::VisitFloat32Sqrt(Node* node) { in VisitFloat32Sqrt() argument
756 VisitRR(this, kMipsSqrtS, node); in VisitFloat32Sqrt()
760 void InstructionSelector::VisitFloat64Sqrt(Node* node) { in VisitFloat64Sqrt() argument
761 VisitRR(this, kMipsSqrtD, node); in VisitFloat64Sqrt()
765 void InstructionSelector::VisitFloat32RoundDown(Node* node) { in VisitFloat32RoundDown() argument
766 VisitRR(this, kMipsFloat32RoundDown, node); in VisitFloat32RoundDown()
770 void InstructionSelector::VisitFloat64RoundDown(Node* node) { in VisitFloat64RoundDown() argument
771 VisitRR(this, kMipsFloat64RoundDown, node); in VisitFloat64RoundDown()
775 void InstructionSelector::VisitFloat32RoundUp(Node* node) { in VisitFloat32RoundUp() argument
776 VisitRR(this, kMipsFloat32RoundUp, node); in VisitFloat32RoundUp()
780 void InstructionSelector::VisitFloat64RoundUp(Node* node) { in VisitFloat64RoundUp() argument
781 VisitRR(this, kMipsFloat64RoundUp, node); in VisitFloat64RoundUp()
785 void InstructionSelector::VisitFloat32RoundTruncate(Node* node) { in VisitFloat32RoundTruncate() argument
786 VisitRR(this, kMipsFloat32RoundTruncate, node); in VisitFloat32RoundTruncate()
790 void InstructionSelector::VisitFloat64RoundTruncate(Node* node) { in VisitFloat64RoundTruncate() argument
791 VisitRR(this, kMipsFloat64RoundTruncate, node); in VisitFloat64RoundTruncate()
795 void InstructionSelector::VisitFloat64RoundTiesAway(Node* node) { in VisitFloat64RoundTiesAway() argument
800 void InstructionSelector::VisitFloat32RoundTiesEven(Node* node) { in VisitFloat32RoundTiesEven() argument
801 VisitRR(this, kMipsFloat32RoundTiesEven, node); in VisitFloat32RoundTiesEven()
805 void InstructionSelector::VisitFloat64RoundTiesEven(Node* node) { in VisitFloat64RoundTiesEven() argument
806 VisitRR(this, kMipsFloat64RoundTiesEven, node); in VisitFloat64RoundTiesEven()
812 Node* node) { in EmitPrepareArguments() argument
824 Emit(kMipsStoreToStackSlot, g.NoOutput(), g.UseRegister(input.node()), in EmitPrepareArguments()
837 if (input.node()) { in EmitPrepareArguments()
838 Emit(kMipsStoreToStackSlot, g.NoOutput(), g.UseRegister(input.node()), in EmitPrepareArguments()
849 void InstructionSelector::VisitCheckedLoad(Node* node) { in VisitCheckedLoad() argument
850 CheckedLoadRepresentation load_rep = CheckedLoadRepresentationOf(node->op()); in VisitCheckedLoad()
852 Node* const buffer = node->InputAt(0); in VisitCheckedLoad()
853 Node* const offset = node->InputAt(1); in VisitCheckedLoad()
854 Node* const length = node->InputAt(2); in VisitCheckedLoad()
890 g.DefineAsRegister(node), offset_operand, length_operand, in VisitCheckedLoad()
895 void InstructionSelector::VisitCheckedStore(Node* node) { in VisitCheckedStore() argument
896 MachineRepresentation rep = CheckedStoreRepresentationOf(node->op()); in VisitCheckedStore()
898 Node* const buffer = node->InputAt(0); in VisitCheckedStore()
899 Node* const offset = node->InputAt(1); in VisitCheckedStore()
900 Node* const length = node->InputAt(2); in VisitCheckedStore()
901 Node* const value = node->InputAt(3); in VisitCheckedStore()
958 void VisitFloat32Compare(InstructionSelector* selector, Node* node, in VisitFloat32Compare() argument
961 Float32BinopMatcher m(node); in VisitFloat32Compare()
964 lhs = m.left().IsZero() ? g.UseImmediate(m.left().node()) in VisitFloat32Compare()
965 : g.UseRegister(m.left().node()); in VisitFloat32Compare()
966 rhs = m.right().IsZero() ? g.UseImmediate(m.right().node()) in VisitFloat32Compare()
967 : g.UseRegister(m.right().node()); in VisitFloat32Compare()
973 void VisitFloat64Compare(InstructionSelector* selector, Node* node, in VisitFloat64Compare() argument
976 Float64BinopMatcher m(node); in VisitFloat64Compare()
979 lhs = m.left().IsZero() ? g.UseImmediate(m.left().node()) in VisitFloat64Compare()
980 : g.UseRegister(m.left().node()); in VisitFloat64Compare()
981 rhs = m.right().IsZero() ? g.UseImmediate(m.right().node()) in VisitFloat64Compare()
982 : g.UseRegister(m.right().node()); in VisitFloat64Compare()
988 void VisitWordCompare(InstructionSelector* selector, Node* node, in VisitWordCompare() argument
992 Node* left = node->InputAt(0); in VisitWordCompare()
993 Node* right = node->InputAt(1); in VisitWordCompare()
1050 void VisitWordCompare(InstructionSelector* selector, Node* node, in VisitWordCompare() argument
1052 VisitWordCompare(selector, node, kMipsCmp, cont, false); in VisitWordCompare()
1069 value = m.left().node(); in VisitWordCompareZero()
1115 Node* const node = value->InputAt(0); in VisitWordCompareZero() local
1116 Node* const result = NodeProperties::FindProjection(node, 0); in VisitWordCompareZero()
1118 switch (node->opcode()) { in VisitWordCompareZero()
1121 return VisitBinop(selector, node, kMipsAddOvf, cont); in VisitWordCompareZero()
1124 return VisitBinop(selector, node, kMipsSubOvf, cont); in VisitWordCompareZero()
1160 void InstructionSelector::VisitSwitch(Node* node, const SwitchInfo& sw) { in VisitSwitch() argument
1162 InstructionOperand value_operand = g.UseRegister(node->InputAt(0)); in VisitSwitch()
1188 void InstructionSelector::VisitWord32Equal(Node* const node) { in VisitWord32Equal() argument
1189 FlagsContinuation cont(kEqual, node); in VisitWord32Equal()
1190 Int32BinopMatcher m(node); in VisitWord32Equal()
1192 return VisitWordCompareZero(this, m.node(), m.left().node(), &cont); in VisitWord32Equal()
1194 VisitWordCompare(this, node, &cont); in VisitWord32Equal()
1198 void InstructionSelector::VisitInt32LessThan(Node* node) { in VisitInt32LessThan() argument
1199 FlagsContinuation cont(kSignedLessThan, node); in VisitInt32LessThan()
1200 VisitWordCompare(this, node, &cont); in VisitInt32LessThan()
1204 void InstructionSelector::VisitInt32LessThanOrEqual(Node* node) { in VisitInt32LessThanOrEqual() argument
1205 FlagsContinuation cont(kSignedLessThanOrEqual, node); in VisitInt32LessThanOrEqual()
1206 VisitWordCompare(this, node, &cont); in VisitInt32LessThanOrEqual()
1210 void InstructionSelector::VisitUint32LessThan(Node* node) { in VisitUint32LessThan() argument
1211 FlagsContinuation cont(kUnsignedLessThan, node); in VisitUint32LessThan()
1212 VisitWordCompare(this, node, &cont); in VisitUint32LessThan()
1216 void InstructionSelector::VisitUint32LessThanOrEqual(Node* node) { in VisitUint32LessThanOrEqual() argument
1217 FlagsContinuation cont(kUnsignedLessThanOrEqual, node); in VisitUint32LessThanOrEqual()
1218 VisitWordCompare(this, node, &cont); in VisitUint32LessThanOrEqual()
1222 void InstructionSelector::VisitInt32AddWithOverflow(Node* node) { in VisitInt32AddWithOverflow() argument
1223 if (Node* ovf = NodeProperties::FindProjection(node, 1)) { in VisitInt32AddWithOverflow()
1225 return VisitBinop(this, node, kMipsAddOvf, &cont); in VisitInt32AddWithOverflow()
1228 VisitBinop(this, node, kMipsAddOvf, &cont); in VisitInt32AddWithOverflow()
1232 void InstructionSelector::VisitInt32SubWithOverflow(Node* node) { in VisitInt32SubWithOverflow() argument
1233 if (Node* ovf = NodeProperties::FindProjection(node, 1)) { in VisitInt32SubWithOverflow()
1235 return VisitBinop(this, node, kMipsSubOvf, &cont); in VisitInt32SubWithOverflow()
1238 VisitBinop(this, node, kMipsSubOvf, &cont); in VisitInt32SubWithOverflow()
1242 void InstructionSelector::VisitFloat32Equal(Node* node) { in VisitFloat32Equal() argument
1243 FlagsContinuation cont(kEqual, node); in VisitFloat32Equal()
1244 VisitFloat32Compare(this, node, &cont); in VisitFloat32Equal()
1248 void InstructionSelector::VisitFloat32LessThan(Node* node) { in VisitFloat32LessThan() argument
1249 FlagsContinuation cont(kUnsignedLessThan, node); in VisitFloat32LessThan()
1250 VisitFloat32Compare(this, node, &cont); in VisitFloat32LessThan()
1254 void InstructionSelector::VisitFloat32LessThanOrEqual(Node* node) { in VisitFloat32LessThanOrEqual() argument
1255 FlagsContinuation cont(kUnsignedLessThanOrEqual, node); in VisitFloat32LessThanOrEqual()
1256 VisitFloat32Compare(this, node, &cont); in VisitFloat32LessThanOrEqual()
1260 void InstructionSelector::VisitFloat64Equal(Node* node) { in VisitFloat64Equal() argument
1261 FlagsContinuation cont(kEqual, node); in VisitFloat64Equal()
1262 VisitFloat64Compare(this, node, &cont); in VisitFloat64Equal()
1266 void InstructionSelector::VisitFloat64LessThan(Node* node) { in VisitFloat64LessThan() argument
1267 FlagsContinuation cont(kUnsignedLessThan, node); in VisitFloat64LessThan()
1268 VisitFloat64Compare(this, node, &cont); in VisitFloat64LessThan()
1272 void InstructionSelector::VisitFloat64LessThanOrEqual(Node* node) { in VisitFloat64LessThanOrEqual() argument
1273 FlagsContinuation cont(kUnsignedLessThanOrEqual, node); in VisitFloat64LessThanOrEqual()
1274 VisitFloat64Compare(this, node, &cont); in VisitFloat64LessThanOrEqual()
1278 void InstructionSelector::VisitFloat64ExtractLowWord32(Node* node) { in VisitFloat64ExtractLowWord32() argument
1280 Emit(kMipsFloat64ExtractLowWord32, g.DefineAsRegister(node), in VisitFloat64ExtractLowWord32()
1281 g.UseRegister(node->InputAt(0))); in VisitFloat64ExtractLowWord32()
1285 void InstructionSelector::VisitFloat64ExtractHighWord32(Node* node) { in VisitFloat64ExtractHighWord32() argument
1287 Emit(kMipsFloat64ExtractHighWord32, g.DefineAsRegister(node), in VisitFloat64ExtractHighWord32()
1288 g.UseRegister(node->InputAt(0))); in VisitFloat64ExtractHighWord32()
1292 void InstructionSelector::VisitFloat64InsertLowWord32(Node* node) { in VisitFloat64InsertLowWord32() argument
1294 Node* left = node->InputAt(0); in VisitFloat64InsertLowWord32()
1295 Node* right = node->InputAt(1); in VisitFloat64InsertLowWord32()
1296 Emit(kMipsFloat64InsertLowWord32, g.DefineSameAsFirst(node), in VisitFloat64InsertLowWord32()
1301 void InstructionSelector::VisitFloat64InsertHighWord32(Node* node) { in VisitFloat64InsertHighWord32() argument
1303 Node* left = node->InputAt(0); in VisitFloat64InsertHighWord32()
1304 Node* right = node->InputAt(1); in VisitFloat64InsertHighWord32()
1305 Emit(kMipsFloat64InsertHighWord32, g.DefineSameAsFirst(node), in VisitFloat64InsertHighWord32()