Index: src/ic.h |
diff --git a/src/ic.h b/src/ic.h |
index 197c32e6a55515c787628bab1ac5c91bc5df1cd1..5c497913395cf86ff67432f8496b0285eef179a9 100644 |
--- a/src/ic.h |
+++ b/src/ic.h |
@@ -160,11 +160,12 @@ class IC { |
Code* GetOriginalCode() const; |
// Set the call-site target. |
- void set_target(Code* code) { |
+ void set_target(Code* code, |
+ ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED) { |
#ifdef VERIFY_HEAP |
code->VerifyEmbeddedObjectsDependency(); |
#endif |
- SetTargetAtAddress(address(), code, constant_pool()); |
+ SetTargetAtAddress(address(), code, constant_pool(), icache_flush_mode); |
target_set_ = true; |
} |
@@ -186,7 +187,9 @@ class IC { |
ConstantPoolArray* constant_pool); |
static inline void SetTargetAtAddress(Address address, |
Code* target, |
- ConstantPoolArray* constant_pool); |
+ ConstantPoolArray* constant_pool, |
+ ICacheFlushMode icache_flush_mode = |
+ FLUSH_ICACHE_IF_NEEDED); |
static void PostPatching(Address address, Code* target, Code* old_target); |
// Compute the handler either by compiling or by retrieving a cached version. |
@@ -455,12 +458,13 @@ class LoadIC: public IC { |
protected: |
virtual Code::Kind kind() const { return Code::LOAD_IC; } |
- void set_target(Code* code) { |
+ void set_target(Code* code, |
+ ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED) { |
// The contextual mode must be preserved across IC patching. |
ASSERT(GetContextualMode(code->extra_ic_state()) == |
GetContextualMode(target()->extra_ic_state())); |
- IC::set_target(code); |
+ IC::set_target(code, icache_flush_mode); |
} |
virtual Handle<Code> slow_stub() const { |
@@ -654,11 +658,12 @@ class StoreIC: public IC { |
InlineCacheHolderFlag cache_holder); |
private: |
- void set_target(Code* code) { |
+ void set_target(Code* code, |
+ ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED) { |
// Strict mode must be preserved across IC patching. |
ASSERT(GetStrictMode(code->extra_ic_state()) == |
GetStrictMode(target()->extra_ic_state())); |
- IC::set_target(code); |
+ IC::set_target(code, icache_flush_mode); |
} |
static void Clear(Isolate* isolate, |