Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(759)

Side by Side Diff: src/snapshot/serialize.cc

Issue 1332283002: Make FlushICache part of Assembler(Base) and take Isolate as parameter. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix arm64 PatchingAssembler that initialized its isolate with NULL :) Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/objects.cc ('k') | src/x64/assembler-x64-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/snapshot/serialize.h" 5 #include "src/snapshot/serialize.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/api.h" 8 #include "src/api.h"
9 #include "src/base/platform/platform.h" 9 #include "src/base/platform/platform.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 "Code::MarkCodeAsExecuted"); 115 "Code::MarkCodeAsExecuted");
116 Add(ExternalReference::is_profiling_address(isolate).address(), 116 Add(ExternalReference::is_profiling_address(isolate).address(),
117 "CpuProfiler::is_profiling"); 117 "CpuProfiler::is_profiling");
118 Add(ExternalReference::scheduled_exception_address(isolate).address(), 118 Add(ExternalReference::scheduled_exception_address(isolate).address(),
119 "Isolate::scheduled_exception"); 119 "Isolate::scheduled_exception");
120 Add(ExternalReference::invoke_function_callback(isolate).address(), 120 Add(ExternalReference::invoke_function_callback(isolate).address(),
121 "InvokeFunctionCallback"); 121 "InvokeFunctionCallback");
122 Add(ExternalReference::invoke_accessor_getter_callback(isolate).address(), 122 Add(ExternalReference::invoke_accessor_getter_callback(isolate).address(),
123 "InvokeAccessorGetterCallback"); 123 "InvokeAccessorGetterCallback");
124 Add(ExternalReference::flush_icache_function(isolate).address(), 124 Add(ExternalReference::flush_icache_function(isolate).address(),
125 "CpuFeatures::FlushICache"); 125 "Assembler::FlushICacheWithoutIsolate");
126 Add(ExternalReference::log_enter_external_function(isolate).address(), 126 Add(ExternalReference::log_enter_external_function(isolate).address(),
127 "Logger::EnterExternal"); 127 "Logger::EnterExternal");
128 Add(ExternalReference::log_leave_external_function(isolate).address(), 128 Add(ExternalReference::log_leave_external_function(isolate).address(),
129 "Logger::LeaveExternal"); 129 "Logger::LeaveExternal");
130 Add(ExternalReference::address_of_minus_one_half().address(), 130 Add(ExternalReference::address_of_minus_one_half().address(),
131 "double_constants.minus_one_half"); 131 "double_constants.minus_one_half");
132 Add(ExternalReference::stress_deopt_count(isolate).address(), 132 Add(ExternalReference::stress_deopt_count(isolate).address(),
133 "Isolate::stress_deopt_count_address()"); 133 "Isolate::stress_deopt_count_address()");
134 134
135 // Debug addresses 135 // Debug addresses
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 for (int i = 0; i < kNumberOfPreallocatedSpaces; i++) current_chunk_[i] = 0; 498 for (int i = 0; i < kNumberOfPreallocatedSpaces; i++) current_chunk_[i] = 0;
499 } 499 }
500 500
501 501
502 void Deserializer::FlushICacheForNewIsolate() { 502 void Deserializer::FlushICacheForNewIsolate() {
503 DCHECK(!deserializing_user_code_); 503 DCHECK(!deserializing_user_code_);
504 // The entire isolate is newly deserialized. Simply flush all code pages. 504 // The entire isolate is newly deserialized. Simply flush all code pages.
505 PageIterator it(isolate_->heap()->code_space()); 505 PageIterator it(isolate_->heap()->code_space());
506 while (it.has_next()) { 506 while (it.has_next()) {
507 Page* p = it.next(); 507 Page* p = it.next();
508 CpuFeatures::FlushICache(p->area_start(), p->area_end() - p->area_start()); 508 Assembler::FlushICache(isolate_, p->area_start(),
509 p->area_end() - p->area_start());
509 } 510 }
510 } 511 }
511 512
512 513
513 void Deserializer::FlushICacheForNewCodeObjects() { 514 void Deserializer::FlushICacheForNewCodeObjects() {
514 DCHECK(deserializing_user_code_); 515 DCHECK(deserializing_user_code_);
515 for (Code* code : new_code_objects_) { 516 for (Code* code : new_code_objects_) {
516 CpuFeatures::FlushICache(code->instruction_start(), 517 Assembler::FlushICache(isolate_, code->instruction_start(),
517 code->instruction_size()); 518 code->instruction_size());
518 } 519 }
519 } 520 }
520 521
521 522
522 bool Deserializer::ReserveSpace() { 523 bool Deserializer::ReserveSpace() {
523 #ifdef DEBUG 524 #ifdef DEBUG
524 for (int i = NEW_SPACE; i < kNumberOfSpaces; ++i) { 525 for (int i = NEW_SPACE; i < kNumberOfSpaces; ++i) {
525 CHECK(reservations_[i].length() > 0); 526 CHECK(reservations_[i].length() > 0);
526 } 527 }
527 #endif // DEBUG 528 #endif // DEBUG
(...skipping 2352 matching lines...) Expand 10 before | Expand all | Expand 10 after
2880 SerializedCodeData* scd = new SerializedCodeData(cached_data); 2881 SerializedCodeData* scd = new SerializedCodeData(cached_data);
2881 SanityCheckResult r = scd->SanityCheck(isolate, source); 2882 SanityCheckResult r = scd->SanityCheck(isolate, source);
2882 if (r == CHECK_SUCCESS) return scd; 2883 if (r == CHECK_SUCCESS) return scd;
2883 cached_data->Reject(); 2884 cached_data->Reject();
2884 source->GetIsolate()->counters()->code_cache_reject_reason()->AddSample(r); 2885 source->GetIsolate()->counters()->code_cache_reject_reason()->AddSample(r);
2885 delete scd; 2886 delete scd;
2886 return NULL; 2887 return NULL;
2887 } 2888 }
2888 } // namespace internal 2889 } // namespace internal
2889 } // namespace v8 2890 } // namespace v8
OLDNEW
« no previous file with comments | « src/objects.cc ('k') | src/x64/assembler-x64-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698