Commit c85ff828 authored by jkummerow's avatar jkummerow Committed by Commit bot

KeyedStoreGeneric: make fast-property stores use the stub cache again

This behavior was recently changed. Turns out that for some usage patterns
at least, populating the stub cache is significantly faster overall.

BUG=chromium:684428

Review-Url: https://codereview.chromium.org/2674653002
Cr-Commit-Position: refs/heads/master@{#42885}
parent 13de00c0
......@@ -729,17 +729,20 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore(
Bind(&stub_cache);
{
Comment("stub cache probe");
// The stub cache lookup is opportunistic: if we find a handler, use it;
// otherwise take the slow path. Since this is a generic stub, compiling
// a handler (as KeyedStoreIC_Miss would do) is probably a waste of time.
Variable var_handler(this, MachineRepresentation::kTagged);
Label found_handler(this, &var_handler);
Label found_handler(this, &var_handler), stub_cache_miss(this);
TryProbeStubCache(isolate()->store_stub_cache(), receiver, p->name,
&found_handler, &var_handler, slow);
&found_handler, &var_handler, &stub_cache_miss);
Bind(&found_handler);
{
Comment("KeyedStoreGeneric found handler");
HandleStoreICHandlerCase(p, var_handler.value(), slow);
HandleStoreICHandlerCase(p, var_handler.value(), &stub_cache_miss);
}
Bind(&stub_cache_miss);
{
Comment("KeyedStoreGeneric_miss");
TailCallRuntime(Runtime::kKeyedStoreIC_Miss, p->context, p->value,
p->slot, p->vector, p->receiver, p->name);
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment