| Index: src/ic.h
|
| diff --git a/src/ic.h b/src/ic.h
|
| index 8767f988a2936554007b0147bed95515e9f8d328..bfccd10a6ad3c790764100be0e400dd73cf426dc 100644
|
| --- a/src/ic.h
|
| +++ b/src/ic.h
|
| @@ -771,8 +771,7 @@ class BinaryOpIC: public IC {
|
| INT32,
|
| HEAP_NUMBER,
|
| ODDBALL,
|
| - BOTH_STRING, // Only used for addition operation.
|
| - STRING, // Only used for addition operation. At least one string operand.
|
| + STRING, // Only used for addition operation.
|
| GENERIC
|
| };
|
|
|
| @@ -783,10 +782,6 @@ class BinaryOpIC: public IC {
|
| static const char* GetName(TypeInfo type_info);
|
|
|
| static State ToState(TypeInfo type_info);
|
| -
|
| - static TypeInfo GetTypeInfo(Handle<Object> left, Handle<Object> right);
|
| -
|
| - static TypeInfo JoinTypes(TypeInfo x, TypeInfo y);
|
| };
|
|
|
|
|
| @@ -794,11 +789,11 @@ class CompareIC: public IC {
|
| public:
|
| enum State {
|
| UNINITIALIZED,
|
| - SMIS,
|
| - HEAP_NUMBERS,
|
| - SYMBOLS,
|
| - STRINGS,
|
| - OBJECTS,
|
| + SMI,
|
| + HEAP_NUMBER,
|
| + SYMBOL,
|
| + STRING,
|
| + OBJECT,
|
| KNOWN_OBJECTS,
|
| GENERIC
|
| };
|
| @@ -809,27 +804,27 @@ class CompareIC: public IC {
|
| // Update the inline cache for the given operands.
|
| void UpdateCaches(Handle<Object> x, Handle<Object> y);
|
|
|
| +
|
| // Factory method for getting an uninitialized compare stub.
|
| static Handle<Code> GetUninitialized(Token::Value op);
|
|
|
| // Helper function for computing the condition for a compare operation.
|
| static Condition ComputeCondition(Token::Value op);
|
|
|
| - // Helper function for determining the state of a compare IC.
|
| - static State ComputeState(Code* target);
|
| -
|
| - // Helper function for determining the operation a compare IC is for.
|
| - static Token::Value ComputeOperation(Code* target);
|
| -
|
| static const char* GetStateName(State state);
|
|
|
| private:
|
| - State TargetState(State state, bool has_inlined_smi_code,
|
| - Handle<Object> x, Handle<Object> y);
|
| + static bool HasInlinedSmiCode(Address address);
|
| +
|
| + State TargetState(State old_state,
|
| + State old_left,
|
| + State old_right,
|
| + bool has_inlined_smi_code,
|
| + Handle<Object> x,
|
| + Handle<Object> y);
|
|
|
| bool strict() const { return op_ == Token::EQ_STRICT; }
|
| Condition GetCondition() const { return ComputeCondition(op_); }
|
| - State GetState() { return ComputeState(target()); }
|
|
|
| static Code* GetRawUninitialized(Token::Value op);
|
|
|
|
|