Lines Matching refs:selector
17 explicit X87OperandGenerator(InstructionSelector* selector) in X87OperandGenerator() argument
18 : OperandGenerator(selector) {} in X87OperandGenerator()
127 return !selector()->IsLive(node); in CanBeBetterLeftOperand()
366 static void VisitBinop(InstructionSelector* selector, Node* node, in VisitBinop() argument
368 X87OperandGenerator g(selector); in VisitBinop()
416 selector->Emit(cont->Encode(opcode), output_count, outputs, input_count, in VisitBinop()
422 static void VisitBinop(InstructionSelector* selector, Node* node, in VisitBinop() argument
425 VisitBinop(selector, node, opcode, &cont); in VisitBinop()
451 static inline void VisitShift(InstructionSelector* selector, Node* node, in VisitShift() argument
453 X87OperandGenerator g(selector); in VisitShift()
458 selector->Emit(opcode, g.DefineSameAsFirst(node), g.UseRegister(left), in VisitShift()
461 selector->Emit(opcode, g.DefineSameAsFirst(node), g.UseRegister(left), in VisitShift()
469 void VisitMulHigh(InstructionSelector* selector, Node* node, in VisitMulHigh() argument
471 X87OperandGenerator g(selector); in VisitMulHigh()
472 selector->Emit(opcode, g.DefineAsFixed(node, edx), in VisitMulHigh()
478 void VisitDiv(InstructionSelector* selector, Node* node, ArchOpcode opcode) { in VisitDiv() argument
479 X87OperandGenerator g(selector); in VisitDiv()
481 selector->Emit(opcode, g.DefineAsFixed(node, eax), in VisitDiv()
487 void VisitMod(InstructionSelector* selector, Node* node, ArchOpcode opcode) { in VisitMod() argument
488 X87OperandGenerator g(selector); in VisitMod()
489 selector->Emit(opcode, g.DefineAsFixed(node, edx), in VisitMod()
494 void EmitLea(InstructionSelector* selector, Node* result, Node* index, in EmitLea() argument
496 X87OperandGenerator g(selector); in EmitLea()
510 selector->Emit(opcode, 1, outputs, input_count, inputs); in EmitLea()
963 void VisitCompare(InstructionSelector* selector, InstructionCode opcode, in VisitCompare() argument
966 X87OperandGenerator g(selector); in VisitCompare()
968 selector->Emit(cont->Encode(opcode), g.NoOutput(), left, right, in VisitCompare()
972 selector->Emit(cont->Encode(opcode), g.DefineAsByteRegister(cont->result()), in VisitCompare()
979 void VisitCompare(InstructionSelector* selector, InstructionCode opcode, in VisitCompare() argument
982 X87OperandGenerator g(selector); in VisitCompare()
986 VisitCompare(selector, opcode, g.UseRegister(left), g.Use(right), cont); in VisitCompare()
991 void VisitFloat32Compare(InstructionSelector* selector, Node* node, in VisitFloat32Compare() argument
993 X87OperandGenerator g(selector); in VisitFloat32Compare()
994 selector->Emit(kX87PushFloat32, g.NoOutput(), g.Use(node->InputAt(0))); in VisitFloat32Compare()
995 selector->Emit(kX87PushFloat32, g.NoOutput(), g.Use(node->InputAt(1))); in VisitFloat32Compare()
997 selector->Emit(cont->Encode(kX87Float32Cmp), g.NoOutput(), in VisitFloat32Compare()
1001 selector->Emit(cont->Encode(kX87Float32Cmp), in VisitFloat32Compare()
1008 void VisitFloat64Compare(InstructionSelector* selector, Node* node, in VisitFloat64Compare() argument
1010 X87OperandGenerator g(selector); in VisitFloat64Compare()
1011 selector->Emit(kX87PushFloat64, g.NoOutput(), g.Use(node->InputAt(0))); in VisitFloat64Compare()
1012 selector->Emit(kX87PushFloat64, g.NoOutput(), g.Use(node->InputAt(1))); in VisitFloat64Compare()
1014 selector->Emit(cont->Encode(kX87Float64Cmp), g.NoOutput(), in VisitFloat64Compare()
1018 selector->Emit(cont->Encode(kX87Float64Cmp), in VisitFloat64Compare()
1025 void VisitWordCompare(InstructionSelector* selector, Node* node, in VisitWordCompare() argument
1027 X87OperandGenerator g(selector); in VisitWordCompare()
1033 VisitCompare(selector, opcode, g.Use(left), g.UseImmediate(right), cont); in VisitWordCompare()
1036 VisitCompare(selector, opcode, g.Use(right), g.UseImmediate(left), cont); in VisitWordCompare()
1038 VisitCompare(selector, opcode, left, right, cont, in VisitWordCompare()
1044 void VisitWordCompare(InstructionSelector* selector, Node* node, in VisitWordCompare() argument
1046 X87OperandGenerator g(selector); in VisitWordCompare()
1051 ExternalReference::address_of_stack_limit(selector->isolate()); in VisitWordCompare()
1057 selector->Emit(opcode, g.NoOutput(), g.Label(cont->true_block()), in VisitWordCompare()
1061 selector->Emit(opcode, g.DefineAsRegister(cont->result())); in VisitWordCompare()
1066 VisitWordCompare(selector, node, kX87Cmp, cont); in VisitWordCompare()
1071 void VisitWordCompareZero(InstructionSelector* selector, Node* user, in VisitWordCompareZero() argument
1074 while (selector->CanCover(user, value)) { in VisitWordCompareZero()
1087 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1091 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1094 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1097 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1100 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1103 return VisitFloat32Compare(selector, value, cont); in VisitWordCompareZero()
1106 return VisitFloat32Compare(selector, value, cont); in VisitWordCompareZero()
1109 return VisitFloat32Compare(selector, value, cont); in VisitWordCompareZero()
1112 return VisitFloat64Compare(selector, value, cont); in VisitWordCompareZero()
1115 return VisitFloat64Compare(selector, value, cont); in VisitWordCompareZero()
1118 return VisitFloat64Compare(selector, value, cont); in VisitWordCompareZero()
1130 if (result == nullptr || selector->IsDefined(result)) { in VisitWordCompareZero()
1134 return VisitBinop(selector, node, kX87Add, cont); in VisitWordCompareZero()
1137 return VisitBinop(selector, node, kX87Sub, cont); in VisitWordCompareZero()
1145 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1147 return VisitWordCompare(selector, value, kX87Test, cont); in VisitWordCompareZero()
1155 X87OperandGenerator g(selector); in VisitWordCompareZero()
1156 VisitCompare(selector, kX87Cmp, g.Use(value), g.TempImmediate(0), cont); in VisitWordCompareZero()