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

Unified Diff: src/compiler/instruction-selector-impl.h

Issue 1360603003: [arm64] Implement Float(32|64)(Min|Max) using fcsel. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 3 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 side-by-side diff with in-line comments
Download patch
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.
};

Powered by Google App Engine
This is Rietveld 408576698