| Index: src/ic/ic.h
|
| diff --git a/src/ic/ic.h b/src/ic/ic.h
|
| index d51309cffee853dbeba06d761bd3012d1e61a607..d824a3f158a399b981d0a4caa7671d2bab764ff7 100644
|
| --- a/src/ic/ic.h
|
| +++ b/src/ic/ic.h
|
| @@ -77,8 +77,7 @@ class IC {
|
| }
|
|
|
| // Clear the inline cache to initial state.
|
| - static void Clear(Isolate* isolate, Address address,
|
| - ConstantPoolArray* constant_pool);
|
| + static void Clear(Isolate* isolate, Address address, Address constant_pool);
|
|
|
| #ifdef DEBUG
|
| bool IsLoadStub() const {
|
| @@ -168,9 +167,9 @@ class IC {
|
|
|
| // Access the target code for the given IC address.
|
| static inline Code* GetTargetAtAddress(Address address,
|
| - ConstantPoolArray* constant_pool);
|
| + Address constant_pool);
|
| static inline void SetTargetAtAddress(Address address, Code* target,
|
| - ConstantPoolArray* constant_pool);
|
| + Address constant_pool);
|
| static void OnTypeFeedbackChanged(Isolate* isolate, Address address,
|
| State old_state, State new_state,
|
| bool target_remains_ic_stub);
|
| @@ -254,8 +253,8 @@ class IC {
|
|
|
| private:
|
| inline Code* raw_target() const;
|
| - inline ConstantPoolArray* constant_pool() const;
|
| - inline ConstantPoolArray* raw_constant_pool() const;
|
| + inline Address constant_pool() const;
|
| + inline Address raw_constant_pool() const;
|
|
|
| void FindTargetMaps() {
|
| if (target_maps_set_) return;
|
| @@ -275,17 +274,17 @@ class IC {
|
| // Frame pointer for the frame that uses (calls) the IC.
|
| Address fp_;
|
|
|
| - // All access to the program counter of an IC structure is indirect
|
| - // to make the code GC safe. This feature is crucial since
|
| + // All access to the program counter and constant pool of an IC structure is
|
| + // indirect to make the code GC safe. This feature is crucial since
|
| // GetProperty and SetProperty are called and they in turn might
|
| // invoke the garbage collector.
|
| Address* pc_address_;
|
|
|
| - Isolate* isolate_;
|
| -
|
| // The constant pool of the code which originally called the IC (which might
|
| // be for the breakpointed copy of the original code).
|
| - Handle<ConstantPoolArray> raw_constant_pool_;
|
| + Address* constant_pool_address_;
|
| +
|
| + Isolate* isolate_;
|
|
|
| // The original code target that missed.
|
| Handle<Code> target_;
|
| @@ -436,7 +435,7 @@ class LoadIC : public IC {
|
| Handle<Code> SimpleFieldLoad(FieldIndex index);
|
|
|
| static void Clear(Isolate* isolate, Address address, Code* target,
|
| - ConstantPoolArray* constant_pool);
|
| + Address constant_pool);
|
|
|
| friend class IC;
|
| };
|
| @@ -500,7 +499,7 @@ class KeyedLoadIC : public LoadIC {
|
|
|
| private:
|
| static void Clear(Isolate* isolate, Address address, Code* target,
|
| - ConstantPoolArray* constant_pool);
|
| + Address constant_pool);
|
|
|
| friend class IC;
|
| };
|
| @@ -578,7 +577,7 @@ class StoreIC : public IC {
|
| inline void set_target(Code* code);
|
|
|
| static void Clear(Isolate* isolate, Address address, Code* target,
|
| - ConstantPoolArray* constant_pool);
|
| + Address constant_pool);
|
|
|
| friend class IC;
|
| };
|
| @@ -665,7 +664,7 @@ class KeyedStoreIC : public StoreIC {
|
| }
|
|
|
| static void Clear(Isolate* isolate, Address address, Code* target,
|
| - ConstantPoolArray* constant_pool);
|
| + Address constant_pool);
|
|
|
| KeyedAccessStoreMode GetStoreMode(Handle<JSObject> receiver,
|
| Handle<Object> key, Handle<Object> value);
|
| @@ -714,7 +713,7 @@ class CompareIC : public IC {
|
| static Code* GetRawUninitialized(Isolate* isolate, Token::Value op);
|
|
|
| static void Clear(Isolate* isolate, Address address, Code* target,
|
| - ConstantPoolArray* constant_pool);
|
| + Address constant_pool);
|
|
|
| Token::Value op_;
|
|
|
| @@ -730,8 +729,7 @@ class CompareNilIC : public IC {
|
|
|
| static Handle<Code> GetUninitialized();
|
|
|
| - static void Clear(Address address, Code* target,
|
| - ConstantPoolArray* constant_pool);
|
| + static void Clear(Address address, Code* target, Address constant_pool);
|
|
|
| static Handle<Object> DoCompareNilSlow(Isolate* isolate, NilValue nil,
|
| Handle<Object> object);
|
|
|