Index: src/ic/ic.h |
diff --git a/src/ic/ic.h b/src/ic/ic.h |
index 199b1f60c8a8871dd4161d3b6e4c84e2dc03403c..e8613436f9698cc22a0a58751cf322f0b8684bc4 100644 |
--- a/src/ic/ic.h |
+++ b/src/ic/ic.h |
@@ -78,8 +78,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 { |
@@ -170,9 +169,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); |
@@ -256,8 +255,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; |
@@ -277,17 +276,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_; |
@@ -429,7 +428,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; |
}; |
@@ -486,7 +485,7 @@ class KeyedLoadIC : public LoadIC { |
private: |
static void Clear(Isolate* isolate, Address address, Code* target, |
- ConstantPoolArray* constant_pool); |
+ Address constant_pool); |
friend class IC; |
}; |
@@ -554,7 +553,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; |
}; |
@@ -635,7 +634,7 @@ class KeyedStoreIC : public StoreIC { |
inline void set_target(Code* code); |
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); |
@@ -686,7 +685,7 @@ class CompareIC : public IC { |
bool strong); |
static void Clear(Isolate* isolate, Address address, Code* target, |
- ConstantPoolArray* constant_pool); |
+ Address constant_pool); |
Token::Value op_; |
@@ -702,8 +701,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); |