Index: src/compiler/simplified-operator.h |
diff --git a/src/compiler/simplified-operator.h b/src/compiler/simplified-operator.h |
index eb630b90c7979ad2f3c70e7dfc88f798b7d1528c..57e525af4609d2932c5962bfac731c42df603ce3 100644 |
--- a/src/compiler/simplified-operator.h |
+++ b/src/compiler/simplified-operator.h |
@@ -130,6 +130,17 @@ std::ostream& operator<<(std::ostream&, CheckTaggedHoleMode); |
CheckTaggedHoleMode CheckTaggedHoleModeOf(const Operator*) WARN_UNUSED_RESULT; |
+enum class CheckTaggedInputMode : uint8_t { |
+ kNumber, |
+ kNumberOrOddball, |
+}; |
+ |
+size_t hash_value(CheckTaggedInputMode); |
+ |
+std::ostream& operator<<(std::ostream&, CheckTaggedInputMode); |
+ |
+CheckTaggedInputMode CheckTaggedInputModeOf(const Operator*) WARN_UNUSED_RESULT; |
+ |
enum class CheckForMinusZeroMode : uint8_t { |
kCheckForMinusZero, |
kDontCheckForMinusZero, |
@@ -173,6 +184,7 @@ ElementsTransition ElementsTransitionOf(const Operator* op) WARN_UNUSED_RESULT; |
enum class NumberOperationHint : uint8_t { |
kSignedSmall, // Inputs were always Smi so far, output was in Smi range. |
kSigned32, // Inputs and output were Signed32 so far. |
+ kNumber, // Inputs were Number, output was Number. |
kNumberOrOddball, // Inputs were Number or Oddball, output was Number. |
}; |
@@ -323,7 +335,7 @@ class SimplifiedOperatorBuilder final : public ZoneObject { |
const Operator* CheckedFloat64ToInt32(CheckForMinusZeroMode); |
const Operator* CheckedTaggedSignedToInt32(); |
const Operator* CheckedTaggedToInt32(CheckForMinusZeroMode); |
- const Operator* CheckedTaggedToFloat64(); |
+ const Operator* CheckedTaggedToFloat64(CheckTaggedInputMode); |
const Operator* CheckedTruncateTaggedToWord32(); |
const Operator* CheckFloat64Hole(CheckFloat64HoleMode); |