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

Unified Diff: runtime/vm/flow_graph_compiler_x64.cc

Issue 1231463002: Don't bother trying to reuse object pool entries for ICs, type test caches, or edge counters as the… (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/flow_graph_compiler_mips.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_compiler_x64.cc
diff --git a/runtime/vm/flow_graph_compiler_x64.cc b/runtime/vm/flow_graph_compiler_x64.cc
index 649e9190624fc013184ec546faea37bfca0f9251..3aa6f29e02cb8293ad7aff79fa7edf8458e23cf6 100644
--- a/runtime/vm/flow_graph_compiler_x64.cc
+++ b/runtime/vm/flow_graph_compiler_x64.cc
@@ -225,7 +225,7 @@ RawSubtypeTestCache* FlowGraphCompiler::GenerateCallSubtypeTestStub(
const SubtypeTestCache& type_test_cache =
SubtypeTestCache::ZoneHandle(SubtypeTestCache::New());
StubCode* stub_code = isolate()->stub_code();
- __ LoadObject(temp_reg, type_test_cache, PP);
+ __ LoadUniqueObject(temp_reg, type_test_cache, PP);
__ pushq(temp_reg); // Subtype test cache.
__ pushq(instance_reg); // Instance.
if (test_kind == kTestTypeOneArg) {
@@ -623,7 +623,7 @@ void FlowGraphCompiler::GenerateInstanceOf(intptr_t token_pos,
__ PushObject(type, PP); // Push the type.
__ pushq(RCX); // TODO(srdjan): Pass instantiator instead of null.
__ pushq(RDX); // Instantiator type arguments.
- __ LoadObject(RAX, test_cache, PP);
+ __ LoadUniqueObject(RAX, test_cache, PP);
__ pushq(RAX);
GenerateRuntimeCall(token_pos,
deopt_id,
@@ -720,7 +720,7 @@ void FlowGraphCompiler::GenerateAssertAssignable(intptr_t token_pos,
__ pushq(RCX); // Instantiator.
__ pushq(RDX); // Instantiator type arguments.
__ PushObject(dst_name, PP); // Push the name of the destination.
- __ LoadObject(RAX, test_cache, PP);
+ __ LoadUniqueObject(RAX, test_cache, PP);
__ pushq(RAX);
GenerateRuntimeCall(token_pos, deopt_id, kTypeCheckRuntimeEntry, 6, locs);
// Pop the parameters supplied to the runtime entry. The result of the
@@ -1244,7 +1244,7 @@ void FlowGraphCompiler::EmitEdgeCounter() {
const Array& counter = Array::ZoneHandle(Array::New(1, Heap::kOld));
counter.SetAt(0, Smi::Handle(Smi::New(0)));
__ Comment("Edge counter");
- __ LoadObject(RAX, counter, PP);
+ __ LoadUniqueObject(RAX, counter, PP);
intptr_t increment_start = assembler_->CodeSize();
__ IncrementSmiField(FieldAddress(RAX, Array::element_offset(0)), 1);
int32_t size = assembler_->CodeSize() - increment_start;
@@ -1278,7 +1278,7 @@ void FlowGraphCompiler::EmitOptimizedInstanceCall(
// reoptimized and which counter needs to be incremented.
// Pass the function explicitly, it is used in IC stub.
__ LoadObject(RDI, parsed_function().function(), PP);
- __ LoadObject(RBX, ic_data, PP);
+ __ LoadUniqueObject(RBX, ic_data, PP);
GenerateDartCall(deopt_id,
token_pos,
target_label,
@@ -1295,7 +1295,7 @@ void FlowGraphCompiler::EmitInstanceCall(ExternalLabel* target_label,
intptr_t token_pos,
LocationSummary* locs) {
ASSERT(Array::Handle(ic_data.arguments_descriptor()).Length() > 0);
- __ LoadObject(RBX, ic_data, PP);
+ __ LoadUniqueObject(RBX, ic_data, PP);
GenerateDartCall(deopt_id,
token_pos,
target_label,
« no previous file with comments | « runtime/vm/flow_graph_compiler_mips.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698