Index: src/ic/ic-state.h |
diff --git a/src/ic/ic-state.h b/src/ic/ic-state.h |
index 72fc865c68d1ebe221f37829f5e457bf7c12cd84..b5f58ed211a1800ede1b7c6022409cfa04669797 100644 |
--- a/src/ic/ic-state.h |
+++ b/src/ic/ic-state.h |
@@ -54,16 +54,12 @@ class CallICState FINAL BASE_EMBEDDED { |
std::ostream& operator<<(std::ostream& os, const CallICState& s); |
-// Mode to overwrite BinaryExpression values. |
-enum OverwriteMode { NO_OVERWRITE, OVERWRITE_LEFT, OVERWRITE_RIGHT }; |
- |
class BinaryOpICState FINAL BASE_EMBEDDED { |
public: |
BinaryOpICState(Isolate* isolate, ExtraICState extra_ic_state); |
- BinaryOpICState(Isolate* isolate, Token::Value op, OverwriteMode mode) |
+ BinaryOpICState(Isolate* isolate, Token::Value op) |
: op_(op), |
- mode_(mode), |
left_kind_(NONE), |
right_kind_(NONE), |
result_kind_(NONE), |
@@ -91,14 +87,6 @@ class BinaryOpICState FINAL BASE_EMBEDDED { |
void (*Generate)(Isolate*, |
const BinaryOpICState&)); |
- bool CanReuseDoubleBox() const { |
- return (result_kind_ > SMI && result_kind_ <= NUMBER) && |
- ((mode_ == OVERWRITE_LEFT && left_kind_ > SMI && |
- left_kind_ <= NUMBER) || |
- (mode_ == OVERWRITE_RIGHT && right_kind_ > SMI && |
- right_kind_ <= NUMBER)); |
- } |
- |
// Returns true if the IC _could_ create allocation mementos. |
bool CouldCreateAllocationMementos() const { |
if (left_kind_ == STRING || right_kind_ == STRING) { |
@@ -127,7 +115,6 @@ class BinaryOpICState FINAL BASE_EMBEDDED { |
static const int LAST_TOKEN = Token::MOD; |
Token::Value op() const { return op_; } |
- OverwriteMode mode() const { return mode_; } |
Maybe<int> fixed_right_arg() const { return fixed_right_arg_; } |
Type* GetLeftType(Zone* zone) const { return KindToType(left_kind_, zone); } |
@@ -154,17 +141,15 @@ class BinaryOpICState FINAL BASE_EMBEDDED { |
// We truncate the last bit of the token. |
STATIC_ASSERT(LAST_TOKEN - FIRST_TOKEN < (1 << 4)); |
class OpField : public BitField<int, 0, 4> {}; |
- class OverwriteModeField : public BitField<OverwriteMode, 4, 2> {}; |
- class ResultKindField : public BitField<Kind, 6, 3> {}; |
- class LeftKindField : public BitField<Kind, 9, 3> {}; |
+ class ResultKindField : public BitField<Kind, 4, 3> {}; |
+ class LeftKindField : public BitField<Kind, 7, 3> {}; |
// When fixed right arg is set, we don't need to store the right kind. |
// Thus the two fields can overlap. |
- class HasFixedRightArgField : public BitField<bool, 12, 1> {}; |
- class FixedRightArgValueField : public BitField<int, 13, 4> {}; |
- class RightKindField : public BitField<Kind, 13, 3> {}; |
+ class HasFixedRightArgField : public BitField<bool, 10, 1> {}; |
+ class FixedRightArgValueField : public BitField<int, 11, 4> {}; |
+ class RightKindField : public BitField<Kind, 11, 3> {}; |
Token::Value op_; |
- OverwriteMode mode_; |
Kind left_kind_; |
Kind right_kind_; |
Kind result_kind_; |