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

Side by Side Diff: src/compiler/code-stub-assembler.cc

Issue 1808733002: Introduces a BranchIf helper in the CodeStubAssembler. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Update. Created 4 years, 9 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
« no previous file with comments | « src/compiler/code-stub-assembler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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/compiler/code-stub-assembler.h" 5 #include "src/compiler/code-stub-assembler.h"
6 6
7 #include <ostream> 7 #include <ostream>
8 8
9 #include "src/code-factory.h" 9 #include "src/code-factory.h"
10 #include "src/compiler/graph.h" 10 #include "src/compiler/graph.h"
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 459
460 Node* CodeStubAssembler::BitFieldDecode(Node* word32, uint32_t shift, 460 Node* CodeStubAssembler::BitFieldDecode(Node* word32, uint32_t shift,
461 uint32_t mask) { 461 uint32_t mask) {
462 return raw_assembler_->Word32Shr( 462 return raw_assembler_->Word32Shr(
463 raw_assembler_->Word32And(word32, raw_assembler_->Int32Constant(mask)), 463 raw_assembler_->Word32And(word32, raw_assembler_->Int32Constant(mask)),
464 raw_assembler_->Int32Constant(shift)); 464 raw_assembler_->Int32Constant(shift));
465 } 465 }
466 466
467 void CodeStubAssembler::BranchIf(Node* condition, Label* if_true, 467 void CodeStubAssembler::BranchIf(Node* condition, Label* if_true,
468 Label* if_false) { 468 Label* if_false) {
469 Label if_condition_true(this), if_condition_false(this); 469 Label if_condition_is_true(this), if_condition_is_false(this);
470 Branch(condition, &if_condition_true, &if_condition_false); 470 Branch(condition, &if_condition_is_true, &if_condition_is_false);
471 Bind(&if_condition_true); 471 Bind(&if_condition_is_true);
472 Goto(if_true); 472 Goto(if_true);
473 Bind(&if_condition_false); 473 Bind(&if_condition_is_false);
474 Goto(if_false); 474 Goto(if_false);
475 } 475 }
476 476
477 void CodeStubAssembler::BranchIfInt32LessThan(Node* a, Node* b, Label* if_true,
478 Label* if_false) {
479 Label if_lessthan(this), if_notlessthan(this);
480 Branch(Int32LessThan(a, b), &if_lessthan, &if_notlessthan);
481 Bind(&if_lessthan);
482 Goto(if_true);
483 Bind(&if_notlessthan);
484 Goto(if_false);
485 }
486
487 void CodeStubAssembler::BranchIfSmiLessThan(Node* a, Node* b, Label* if_true,
488 Label* if_false) {
489 Label if_lessthan(this), if_notlessthan(this);
490 Branch(SmiLessThan(a, b), &if_lessthan, &if_notlessthan);
491 Bind(&if_lessthan);
492 Goto(if_true);
493 Bind(&if_notlessthan);
494 Goto(if_false);
495 }
496
497 void CodeStubAssembler::BranchIfSmiLessThanOrEqual(Node* a, Node* b,
498 Label* if_true,
499 Label* if_false) {
500 Label if_lessthanorequal(this), if_notlessthanorequal(this);
501 Branch(SmiLessThanOrEqual(a, b), &if_lessthanorequal, &if_notlessthanorequal);
502 Bind(&if_lessthanorequal);
503 Goto(if_true);
504 Bind(&if_notlessthanorequal);
505 Goto(if_false);
506 }
507
508 void CodeStubAssembler::BranchIfFloat64Equal(Node* a, Node* b, Label* if_true,
509 Label* if_false) {
510 Label if_equal(this), if_notequal(this);
511 Branch(Float64Equal(a, b), &if_equal, &if_notequal);
512 Bind(&if_equal);
513 Goto(if_true);
514 Bind(&if_notequal);
515 Goto(if_false);
516 }
517
518 void CodeStubAssembler::BranchIfFloat64LessThan(Node* a, Node* b,
519 Label* if_true,
520 Label* if_false) {
521 Label if_lessthan(this), if_notlessthan(this);
522 Branch(Float64LessThan(a, b), &if_lessthan, &if_notlessthan);
523 Bind(&if_lessthan);
524 Goto(if_true);
525 Bind(&if_notlessthan);
526 Goto(if_false);
527 }
528
529 void CodeStubAssembler::BranchIfFloat64LessThanOrEqual(Node* a, Node* b,
530 Label* if_true,
531 Label* if_false) {
532 Label if_lessthanorequal(this), if_notlessthanorequal(this);
533 Branch(Float64LessThanOrEqual(a, b), &if_lessthanorequal,
534 &if_notlessthanorequal);
535 Bind(&if_lessthanorequal);
536 Goto(if_true);
537 Bind(&if_notlessthanorequal);
538 Goto(if_false);
539 }
540
541 void CodeStubAssembler::BranchIfFloat64GreaterThan(Node* a, Node* b,
542 Label* if_true,
543 Label* if_false) {
544 Label if_greaterthan(this), if_notgreaterthan(this);
545 Branch(Float64GreaterThan(a, b), &if_greaterthan, &if_notgreaterthan);
546 Bind(&if_greaterthan);
547 Goto(if_true);
548 Bind(&if_notgreaterthan);
549 Goto(if_false);
550 }
551
552 void CodeStubAssembler::BranchIfFloat64GreaterThanOrEqual(Node* a, Node* b,
553 Label* if_true,
554 Label* if_false) {
555 Label if_greaterthanorequal(this), if_notgreaterthanorequal(this);
556 Branch(Float64GreaterThanOrEqual(a, b), &if_greaterthanorequal,
557 &if_notgreaterthanorequal);
558 Bind(&if_greaterthanorequal);
559 Goto(if_true);
560 Bind(&if_notgreaterthanorequal);
561 Goto(if_false);
562 }
563
564 void CodeStubAssembler::BranchIfWord32Equal(Node* a, Node* b, Label* if_true,
565 Label* if_false) {
566 Label if_equal(this), if_notequal(this);
567 Branch(Word32Equal(a, b), &if_equal, &if_notequal);
568 Bind(&if_equal);
569 Goto(if_true);
570 Bind(&if_notequal);
571 Goto(if_false);
572 }
573
574 Node* CodeStubAssembler::CallN(CallDescriptor* descriptor, Node* code_target, 477 Node* CodeStubAssembler::CallN(CallDescriptor* descriptor, Node* code_target,
575 Node** args) { 478 Node** args) {
576 CallPrologue(); 479 CallPrologue();
577 Node* return_value = raw_assembler_->CallN(descriptor, code_target, args); 480 Node* return_value = raw_assembler_->CallN(descriptor, code_target, args);
578 CallEpilogue(); 481 CallEpilogue();
579 return return_value; 482 return return_value;
580 } 483 }
581 484
582 485
583 Node* CodeStubAssembler::TailCallN(CallDescriptor* descriptor, 486 Node* CodeStubAssembler::TailCallN(CallDescriptor* descriptor,
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
972 } 875 }
973 } 876 }
974 } 877 }
975 878
976 bound_ = true; 879 bound_ = true;
977 } 880 }
978 881
979 } // namespace compiler 882 } // namespace compiler
980 } // namespace internal 883 } // namespace internal
981 } // namespace v8 884 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/code-stub-assembler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698