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

Side by Side Diff: src/external-reference-table.cc

Issue 2123983004: [ic] Split megamorphic stub cache in two caches (for loads and for stores). (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@flags-fix
Patch Set: Rebasing Created 4 years, 5 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
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 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/external-reference-table.h" 5 #include "src/external-reference-table.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/assembler.h" 8 #include "src/assembler.h"
9 #include "src/counters.h" 9 #include "src/counters.h"
10 #include "src/deoptimizer.h" 10 #include "src/deoptimizer.h"
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 for (unsigned i = 0; i < arraysize(getters); ++i) { 343 for (unsigned i = 0; i < arraysize(getters); ++i) {
344 Add(getters[i].address, getters[i].name); 344 Add(getters[i].address, getters[i].name);
345 Add(AccessorInfo::redirect(isolate, getters[i].address, ACCESSOR_GETTER), 345 Add(AccessorInfo::redirect(isolate, getters[i].address, ACCESSOR_GETTER),
346 ""); 346 "");
347 } 347 }
348 348
349 for (unsigned i = 0; i < arraysize(setters); ++i) { 349 for (unsigned i = 0; i < arraysize(setters); ++i) {
350 Add(setters[i].address, setters[i].name); 350 Add(setters[i].address, setters[i].name);
351 } 351 }
352 352
353 StubCache* stub_cache = isolate->stub_cache(); 353 StubCache* load_stub_cache = isolate->load_stub_cache();
354 354
355 // Stub cache tables 355 // Stub cache tables
356 Add(stub_cache->key_reference(StubCache::kPrimary).address(), 356 Add(load_stub_cache->key_reference(StubCache::kPrimary).address(),
357 "StubCache::primary_->key"); 357 "Load StubCache::primary_->key");
358 Add(stub_cache->value_reference(StubCache::kPrimary).address(), 358 Add(load_stub_cache->value_reference(StubCache::kPrimary).address(),
359 "StubCache::primary_->value"); 359 "Load StubCache::primary_->value");
360 Add(stub_cache->map_reference(StubCache::kPrimary).address(), 360 Add(load_stub_cache->map_reference(StubCache::kPrimary).address(),
361 "StubCache::primary_->map"); 361 "Load StubCache::primary_->map");
362 Add(stub_cache->key_reference(StubCache::kSecondary).address(), 362 Add(load_stub_cache->key_reference(StubCache::kSecondary).address(),
363 "StubCache::secondary_->key"); 363 "Load StubCache::secondary_->key");
364 Add(stub_cache->value_reference(StubCache::kSecondary).address(), 364 Add(load_stub_cache->value_reference(StubCache::kSecondary).address(),
365 "StubCache::secondary_->value"); 365 "Load StubCache::secondary_->value");
366 Add(stub_cache->map_reference(StubCache::kSecondary).address(), 366 Add(load_stub_cache->map_reference(StubCache::kSecondary).address(),
367 "StubCache::secondary_->map"); 367 "Load StubCache::secondary_->map");
368
369 StubCache* store_stub_cache = isolate->store_stub_cache();
370
371 // Stub cache tables
372 Add(store_stub_cache->key_reference(StubCache::kPrimary).address(),
373 "Store StubCache::primary_->key");
374 Add(store_stub_cache->value_reference(StubCache::kPrimary).address(),
375 "Store StubCache::primary_->value");
376 Add(store_stub_cache->map_reference(StubCache::kPrimary).address(),
377 "Store StubCache::primary_->map");
378 Add(store_stub_cache->key_reference(StubCache::kSecondary).address(),
379 "Store StubCache::secondary_->key");
380 Add(store_stub_cache->value_reference(StubCache::kSecondary).address(),
381 "Store StubCache::secondary_->value");
382 Add(store_stub_cache->map_reference(StubCache::kSecondary).address(),
383 "Store StubCache::secondary_->map");
368 384
369 // Runtime entries 385 // Runtime entries
370 Add(ExternalReference::delete_handle_scope_extensions(isolate).address(), 386 Add(ExternalReference::delete_handle_scope_extensions(isolate).address(),
371 "HandleScope::DeleteExtensions"); 387 "HandleScope::DeleteExtensions");
372 Add(ExternalReference::incremental_marking_record_write_function(isolate) 388 Add(ExternalReference::incremental_marking_record_write_function(isolate)
373 .address(), 389 .address(),
374 "IncrementalMarking::RecordWrite"); 390 "IncrementalMarking::RecordWrite");
375 Add(ExternalReference::incremental_marking_record_write_code_entry_function( 391 Add(ExternalReference::incremental_marking_record_write_code_entry_function(
376 isolate) 392 isolate)
377 .address(), 393 .address(),
(...skipping 16 matching lines...) Expand all
394 if (api_external_references != nullptr) { 410 if (api_external_references != nullptr) {
395 while (*api_external_references != 0) { 411 while (*api_external_references != 0) {
396 Add(reinterpret_cast<Address>(*api_external_references), "<embedder>"); 412 Add(reinterpret_cast<Address>(*api_external_references), "<embedder>");
397 api_external_references++; 413 api_external_references++;
398 } 414 }
399 } 415 }
400 } 416 }
401 417
402 } // namespace internal 418 } // namespace internal
403 } // namespace v8 419 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698