Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(108)

Side by Side Diff: src/builtins/builtins-string.cc

Issue 2372113004: [turbofan] JSGenericLowering mostly uses builtins instead of code stubs now (Closed)
Patch Set: fixed another bug: switched arguments in Interpreter::DoTestIn Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/builtins/builtins.h" 5 #include "src/builtins/builtins.h"
6 #include "src/builtins/builtins-utils.h" 6 #include "src/builtins/builtins-utils.h"
7 7
8 #include "src/code-factory.h" 8 #include "src/code-factory.h"
9 9
10 namespace v8 { 10 namespace v8 {
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 } 183 }
184 } 184 }
185 185
186 assembler->Bind(&if_equal); 186 assembler->Bind(&if_equal);
187 assembler->Return(assembler->BooleanConstant(mode == kDontNegateResult)); 187 assembler->Return(assembler->BooleanConstant(mode == kDontNegateResult));
188 188
189 assembler->Bind(&if_notequal); 189 assembler->Bind(&if_notequal);
190 assembler->Return(assembler->BooleanConstant(mode == kNegateResult)); 190 assembler->Return(assembler->BooleanConstant(mode == kNegateResult));
191 } 191 }
192 192
193 enum RelationalComparisonMode { 193 enum RelationalComparisonMode {
Igor Sheludko 2016/10/06 08:51:01 We have a CSA::RelationalComparisonMode. Is this o
194 kLessThan, 194 kLessThan,
195 kLessThanOrEqual, 195 kLessThanOrEqual,
196 kGreaterThan, 196 kGreaterThan,
197 kGreaterThanOrEqual 197 kGreaterThanOrEqual
198 }; 198 };
199 199
200 void GenerateStringRelationalComparison(CodeStubAssembler* assembler, 200 void GenerateStringRelationalComparison(CodeStubAssembler* assembler,
Igor Sheludko 2016/10/06 08:51:01 I guess this thing is now called CSA::RelationalCo
201 RelationalComparisonMode mode) { 201 RelationalComparisonMode mode) {
202 typedef CodeStubAssembler::Label Label; 202 typedef CodeStubAssembler::Label Label;
203 typedef compiler::Node Node; 203 typedef compiler::Node Node;
204 typedef CodeStubAssembler::Variable Variable; 204 typedef CodeStubAssembler::Variable Variable;
205 205
206 Node* lhs = assembler->Parameter(0); 206 Node* lhs = assembler->Parameter(0);
207 Node* rhs = assembler->Parameter(1); 207 Node* rhs = assembler->Parameter(1);
208 Node* context = assembler->Parameter(2); 208 Node* context = assembler->Parameter(2);
209 209
210 Label if_less(assembler), if_equal(assembler), if_greater(assembler); 210 Label if_less(assembler), if_equal(assembler), if_greater(assembler);
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 GenerateStringEqual(assembler, kDontNegateResult); 387 GenerateStringEqual(assembler, kDontNegateResult);
388 } 388 }
389 389
390 // static 390 // static
391 void Builtins::Generate_StringNotEqual(CodeStubAssembler* assembler) { 391 void Builtins::Generate_StringNotEqual(CodeStubAssembler* assembler) {
392 GenerateStringEqual(assembler, kNegateResult); 392 GenerateStringEqual(assembler, kNegateResult);
393 } 393 }
394 394
395 // static 395 // static
396 void Builtins::Generate_StringLessThan(CodeStubAssembler* assembler) { 396 void Builtins::Generate_StringLessThan(CodeStubAssembler* assembler) {
397 GenerateStringRelationalComparison(assembler, kLessThan); 397 GenerateStringRelationalComparison(assembler,
398 RelationalComparisonMode::kLessThan);
398 } 399 }
399 400
400 // static 401 // static
401 void Builtins::Generate_StringLessThanOrEqual(CodeStubAssembler* assembler) { 402 void Builtins::Generate_StringLessThanOrEqual(CodeStubAssembler* assembler) {
402 GenerateStringRelationalComparison(assembler, kLessThanOrEqual); 403 GenerateStringRelationalComparison(
404 assembler, RelationalComparisonMode::kLessThanOrEqual);
403 } 405 }
404 406
405 // static 407 // static
406 void Builtins::Generate_StringGreaterThan(CodeStubAssembler* assembler) { 408 void Builtins::Generate_StringGreaterThan(CodeStubAssembler* assembler) {
407 GenerateStringRelationalComparison(assembler, kGreaterThan); 409 GenerateStringRelationalComparison(assembler,
410 RelationalComparisonMode::kGreaterThan);
408 } 411 }
409 412
410 // static 413 // static
411 void Builtins::Generate_StringGreaterThanOrEqual(CodeStubAssembler* assembler) { 414 void Builtins::Generate_StringGreaterThanOrEqual(CodeStubAssembler* assembler) {
412 GenerateStringRelationalComparison(assembler, kGreaterThanOrEqual); 415 GenerateStringRelationalComparison(
416 assembler, RelationalComparisonMode::kGreaterThanOrEqual);
413 } 417 }
414 418
415 // ----------------------------------------------------------------------------- 419 // -----------------------------------------------------------------------------
416 // ES6 section 21.1 String Objects 420 // ES6 section 21.1 String Objects
417 421
418 // ES6 section 21.1.2.1 String.fromCharCode ( ...codeUnits ) 422 // ES6 section 21.1.2.1 String.fromCharCode ( ...codeUnits )
419 void Builtins::Generate_StringFromCharCode(CodeStubAssembler* assembler) { 423 void Builtins::Generate_StringFromCharCode(CodeStubAssembler* assembler) {
420 typedef CodeStubAssembler::Label Label; 424 typedef CodeStubAssembler::Label Label;
421 typedef compiler::Node Node; 425 typedef compiler::Node Node;
422 typedef CodeStubAssembler::Variable Variable; 426 typedef CodeStubAssembler::Variable Variable;
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after
1339 Runtime::kThrowIncompatibleMethodReceiver, context, 1343 Runtime::kThrowIncompatibleMethodReceiver, context,
1340 assembler->HeapConstant(assembler->factory()->NewStringFromAsciiChecked( 1344 assembler->HeapConstant(assembler->factory()->NewStringFromAsciiChecked(
1341 "String Iterator.prototype.next", TENURED)), 1345 "String Iterator.prototype.next", TENURED)),
1342 iterator); 1346 iterator);
1343 assembler->Return(result); // Never reached. 1347 assembler->Return(result); // Never reached.
1344 } 1348 }
1345 } 1349 }
1346 1350
1347 } // namespace internal 1351 } // namespace internal
1348 } // namespace v8 1352 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698