| Index: src/compiler/instruction-selector-impl.h
|
| diff --git a/src/compiler/instruction-selector-impl.h b/src/compiler/instruction-selector-impl.h
|
| index e22f5458697b852f59300dc5e4011298673da45e..aa2e3546fd0822dd8d60b3f01e6b81d89deb503c 100644
|
| --- a/src/compiler/instruction-selector-impl.h
|
| +++ b/src/compiler/instruction-selector-impl.h
|
| @@ -259,20 +259,22 @@ class FlagsContinuation final {
|
| }
|
|
|
| // Creates a new flags continuation from the given condition and result node.
|
| - FlagsContinuation(FlagsCondition condition, Node* result)
|
| - : mode_(kFlags_set), condition_(condition), result_(result) {
|
| + FlagsContinuation(FlagsCondition condition, Node* result,
|
| + FlagsMode mode = kFlags_set)
|
| + : mode_(mode), condition_(condition), result_(result) {
|
| DCHECK_NOT_NULL(result);
|
| }
|
|
|
| bool IsNone() const { return mode_ == kFlags_none; }
|
| bool IsBranch() const { return mode_ == kFlags_branch; }
|
| bool IsSet() const { return mode_ == kFlags_set; }
|
| + bool IsSelect() const { return mode_ == kFlags_select; }
|
| FlagsCondition condition() const {
|
| DCHECK(!IsNone());
|
| return condition_;
|
| }
|
| Node* result() const {
|
| - DCHECK(IsSet());
|
| + DCHECK(IsSet() || IsSelect());
|
| return result_;
|
| }
|
| BasicBlock* true_block() const {
|
| @@ -346,9 +348,9 @@ class FlagsContinuation final {
|
| private:
|
| FlagsMode mode_;
|
| FlagsCondition condition_;
|
| - Node* result_; // Only valid if mode_ == kFlags_set.
|
| - BasicBlock* true_block_; // Only valid if mode_ == kFlags_branch.
|
| - BasicBlock* false_block_; // Only valid if mode_ == kFlags_branch.
|
| + Node* result_; // Valid if mode_ == kFlags_set or kFlags_select.
|
| + BasicBlock* true_block_; // Valid if mode_ == kFlags_branch.
|
| + BasicBlock* false_block_; // Valid if mode_ == kFlags_branch.
|
| };
|
|
|
|
|
|
|