| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index b7928af19361db20e754f564a6dfe7f02c1dc49f..cdf6bef9df10503738b7b4957291c229853ec796 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -10969,7 +10969,7 @@ void Code::InvalidateEmbeddedObjects() {
|
|
|
| void Code::Relocate(intptr_t delta) {
|
| for (RelocIterator it(this, RelocInfo::kApplyMask); !it.done(); it.next()) {
|
| - it.rinfo()->apply(delta);
|
| + it.rinfo()->apply(delta, SKIP_ICACHE_FLUSH);
|
| }
|
| CPU::FlushICache(instruction_start(), instruction_size());
|
| }
|
| @@ -11001,26 +11001,28 @@ void Code::CopyFrom(const CodeDesc& desc) {
|
| RelocInfo::Mode mode = it.rinfo()->rmode();
|
| if (mode == RelocInfo::EMBEDDED_OBJECT) {
|
| Handle<Object> p = it.rinfo()->target_object_handle(origin);
|
| - it.rinfo()->set_target_object(*p, SKIP_WRITE_BARRIER);
|
| + it.rinfo()->set_target_object(*p, SKIP_WRITE_BARRIER, SKIP_ICACHE_FLUSH);
|
| } else if (mode == RelocInfo::CELL) {
|
| Handle<Cell> cell = it.rinfo()->target_cell_handle();
|
| - it.rinfo()->set_target_cell(*cell, SKIP_WRITE_BARRIER);
|
| + it.rinfo()->set_target_cell(*cell, SKIP_WRITE_BARRIER, SKIP_ICACHE_FLUSH);
|
| } else if (RelocInfo::IsCodeTarget(mode)) {
|
| // rewrite code handles in inline cache targets to direct
|
| // pointers to the first instruction in the code object
|
| Handle<Object> p = it.rinfo()->target_object_handle(origin);
|
| Code* code = Code::cast(*p);
|
| it.rinfo()->set_target_address(code->instruction_start(),
|
| - SKIP_WRITE_BARRIER);
|
| + SKIP_WRITE_BARRIER,
|
| + SKIP_ICACHE_FLUSH);
|
| } else if (RelocInfo::IsRuntimeEntry(mode)) {
|
| Address p = it.rinfo()->target_runtime_entry(origin);
|
| - it.rinfo()->set_target_runtime_entry(p, SKIP_WRITE_BARRIER);
|
| + it.rinfo()->set_target_runtime_entry(p, SKIP_WRITE_BARRIER,
|
| + SKIP_ICACHE_FLUSH);
|
| } else if (mode == RelocInfo::CODE_AGE_SEQUENCE) {
|
| Handle<Object> p = it.rinfo()->code_age_stub_handle(origin);
|
| Code* code = Code::cast(*p);
|
| - it.rinfo()->set_code_age_stub(code);
|
| + it.rinfo()->set_code_age_stub(code, SKIP_ICACHE_FLUSH);
|
| } else {
|
| - it.rinfo()->apply(delta);
|
| + it.rinfo()->apply(delta, SKIP_ICACHE_FLUSH);
|
| }
|
| }
|
| CPU::FlushICache(instruction_start(), instruction_size());
|
|
|