Lines Matching refs:selector
17 explicit IA32OperandGenerator(InstructionSelector* selector) in IA32OperandGenerator() argument
18 : OperandGenerator(selector) {} in IA32OperandGenerator()
123 return !selector()->IsLive(node); in CanBeBetterLeftOperand()
130 void VisitRO(InstructionSelector* selector, Node* node, ArchOpcode opcode) { in VisitRO() argument
131 IA32OperandGenerator g(selector); in VisitRO()
132 selector->Emit(opcode, g.DefineAsRegister(node), g.Use(node->InputAt(0))); in VisitRO()
136 void VisitRR(InstructionSelector* selector, Node* node, in VisitRR() argument
138 IA32OperandGenerator g(selector); in VisitRR()
139 selector->Emit(opcode, g.DefineAsRegister(node), in VisitRR()
144 void VisitRROFloat(InstructionSelector* selector, Node* node, in VisitRROFloat() argument
146 IA32OperandGenerator g(selector); in VisitRROFloat()
149 if (selector->IsSupported(AVX)) { in VisitRROFloat()
150 selector->Emit(avx_opcode, g.DefineAsRegister(node), operand0, operand1); in VisitRROFloat()
152 selector->Emit(sse_opcode, g.DefineSameAsFirst(node), operand0, operand1); in VisitRROFloat()
157 void VisitFloatUnop(InstructionSelector* selector, Node* node, Node* input, in VisitFloatUnop() argument
159 IA32OperandGenerator g(selector); in VisitFloatUnop()
160 if (selector->IsSupported(AVX)) { in VisitFloatUnop()
161 selector->Emit(avx_opcode, g.DefineAsRegister(node), g.Use(input)); in VisitFloatUnop()
163 selector->Emit(sse_opcode, g.DefineSameAsFirst(node), g.UseRegister(input)); in VisitFloatUnop()
405 static void VisitBinop(InstructionSelector* selector, Node* node, in VisitBinop() argument
407 IA32OperandGenerator g(selector); in VisitBinop()
455 selector->Emit(cont->Encode(opcode), output_count, outputs, input_count, in VisitBinop()
461 static void VisitBinop(InstructionSelector* selector, Node* node, in VisitBinop() argument
464 VisitBinop(selector, node, opcode, &cont); in VisitBinop()
490 static inline void VisitShift(InstructionSelector* selector, Node* node, in VisitShift() argument
492 IA32OperandGenerator g(selector); in VisitShift()
497 selector->Emit(opcode, g.DefineSameAsFirst(node), g.UseRegister(left), in VisitShift()
500 selector->Emit(opcode, g.DefineSameAsFirst(node), g.UseRegister(left), in VisitShift()
508 void VisitMulHigh(InstructionSelector* selector, Node* node, in VisitMulHigh() argument
510 IA32OperandGenerator g(selector); in VisitMulHigh()
511 selector->Emit(opcode, g.DefineAsFixed(node, edx), in VisitMulHigh()
517 void VisitDiv(InstructionSelector* selector, Node* node, ArchOpcode opcode) { in VisitDiv() argument
518 IA32OperandGenerator g(selector); in VisitDiv()
520 selector->Emit(opcode, g.DefineAsFixed(node, eax), in VisitDiv()
526 void VisitMod(InstructionSelector* selector, Node* node, ArchOpcode opcode) { in VisitMod() argument
527 IA32OperandGenerator g(selector); in VisitMod()
528 selector->Emit(opcode, g.DefineAsFixed(node, edx), in VisitMod()
533 void EmitLea(InstructionSelector* selector, Node* result, Node* index, in EmitLea() argument
535 IA32OperandGenerator g(selector); in EmitLea()
549 selector->Emit(opcode, 1, outputs, input_count, inputs); in EmitLea()
962 void VisitCompare(InstructionSelector* selector, InstructionCode opcode, in VisitCompare() argument
965 IA32OperandGenerator g(selector); in VisitCompare()
967 selector->Emit(cont->Encode(opcode), g.NoOutput(), left, right, in VisitCompare()
971 selector->Emit(cont->Encode(opcode), g.DefineAsByteRegister(cont->result()), in VisitCompare()
978 void VisitCompare(InstructionSelector* selector, InstructionCode opcode, in VisitCompare() argument
981 IA32OperandGenerator g(selector); in VisitCompare()
985 VisitCompare(selector, opcode, g.UseRegister(left), g.Use(right), cont); in VisitCompare()
990 void VisitFloat32Compare(InstructionSelector* selector, Node* node, in VisitFloat32Compare() argument
994 VisitCompare(selector, kSSEFloat32Cmp, right, left, cont, false); in VisitFloat32Compare()
999 void VisitFloat64Compare(InstructionSelector* selector, Node* node, in VisitFloat64Compare() argument
1003 VisitCompare(selector, kSSEFloat64Cmp, right, left, cont, false); in VisitFloat64Compare()
1008 void VisitWordCompare(InstructionSelector* selector, Node* node, in VisitWordCompare() argument
1010 IA32OperandGenerator g(selector); in VisitWordCompare()
1016 VisitCompare(selector, opcode, g.Use(left), g.UseImmediate(right), cont); in VisitWordCompare()
1019 VisitCompare(selector, opcode, g.Use(right), g.UseImmediate(left), cont); in VisitWordCompare()
1021 VisitCompare(selector, opcode, left, right, cont, in VisitWordCompare()
1027 void VisitWordCompare(InstructionSelector* selector, Node* node, in VisitWordCompare() argument
1029 IA32OperandGenerator g(selector); in VisitWordCompare()
1034 ExternalReference::address_of_stack_limit(selector->isolate()); in VisitWordCompare()
1040 selector->Emit(opcode, g.NoOutput(), g.Label(cont->true_block()), in VisitWordCompare()
1044 selector->Emit(opcode, g.DefineAsRegister(cont->result())); in VisitWordCompare()
1049 VisitWordCompare(selector, node, kIA32Cmp, cont); in VisitWordCompare()
1054 void VisitWordCompareZero(InstructionSelector* selector, Node* user, in VisitWordCompareZero() argument
1057 while (selector->CanCover(user, value)) { in VisitWordCompareZero()
1070 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1074 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1077 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1080 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1083 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1086 return VisitFloat32Compare(selector, value, cont); in VisitWordCompareZero()
1089 return VisitFloat32Compare(selector, value, cont); in VisitWordCompareZero()
1092 return VisitFloat32Compare(selector, value, cont); in VisitWordCompareZero()
1095 return VisitFloat64Compare(selector, value, cont); in VisitWordCompareZero()
1098 return VisitFloat64Compare(selector, value, cont); in VisitWordCompareZero()
1101 return VisitFloat64Compare(selector, value, cont); in VisitWordCompareZero()
1113 if (result == nullptr || selector->IsDefined(result)) { in VisitWordCompareZero()
1117 return VisitBinop(selector, node, kIA32Add, cont); in VisitWordCompareZero()
1120 return VisitBinop(selector, node, kIA32Sub, cont); in VisitWordCompareZero()
1128 return VisitWordCompare(selector, value, cont); in VisitWordCompareZero()
1130 return VisitWordCompare(selector, value, kIA32Test, cont); in VisitWordCompareZero()
1138 IA32OperandGenerator g(selector); in VisitWordCompareZero()
1139 VisitCompare(selector, kIA32Cmp, g.Use(value), g.TempImmediate(0), cont); in VisitWordCompareZero()