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

Unified Diff: src/stub-cache.cc

Issue 430783002: Cleanup in stub-cache.cc; remove unused ArrayLength store ICs. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Port Created 6 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 | « src/stub-cache.h ('k') | src/x64/stub-cache-x64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/stub-cache.cc
diff --git a/src/stub-cache.cc b/src/stub-cache.cc
index 839b0b0e8dc5a22c9473695dd02af6b90ece0f7d..33b2ab2ff8a7a68a5c99bbd5f8ad3a970e316866 100644
--- a/src/stub-cache.cc
+++ b/src/stub-cache.cc
@@ -34,12 +34,12 @@ void StubCache::Initialize() {
static Code::Flags CommonStubCacheChecks(Name* name, Map* map,
- Code::Flags flags, Heap* heap) {
+ Code::Flags flags) {
flags = Code::RemoveTypeAndHolderFromFlags(flags);
// Validate that the name does not move on scavenge, and that we
// can use identity checks instead of structural equality checks.
- ASSERT(!heap->InNewSpace(name));
+ ASSERT(!name->GetHeap()->InNewSpace(name));
ASSERT(name->IsUniqueName());
// The state bits are not important to the hash function because the stub
@@ -57,8 +57,7 @@ static Code::Flags CommonStubCacheChecks(Name* name, Map* map,
Code* StubCache::Set(Name* name, Map* map, Code* code) {
- Code::Flags flags =
- CommonStubCacheChecks(name, map, code->flags(), isolate()->heap());
+ Code::Flags flags = CommonStubCacheChecks(name, map, code->flags());
// Compute the primary entry.
int primary_offset = PrimaryOffset(name, flags, map);
@@ -87,7 +86,7 @@ Code* StubCache::Set(Name* name, Map* map, Code* code) {
Code* StubCache::Get(Name* name, Map* map, Code::Flags flags) {
- flags = CommonStubCacheChecks(name, map, flags, isolate()->heap());
+ flags = CommonStubCacheChecks(name, map, flags);
int primary_offset = PrimaryOffset(name, flags, map);
Entry* primary = entry(primary_, primary_offset);
if (primary->key == name && primary->map == map) {
@@ -108,9 +107,8 @@ Handle<Code> PropertyICCompiler::Find(Handle<Name> name,
CacheHolderFlag cache_holder) {
Code::Flags flags = Code::ComputeMonomorphicFlags(
kind, extra_state, cache_holder);
- Handle<Object> probe(stub_holder->FindInCodeCache(*name, flags),
- name->GetIsolate());
- if (probe->IsCode()) return Handle<Code>::cast(probe);
+ Object* probe = stub_holder->FindInCodeCache(*name, flags);
+ if (probe->IsCode()) return handle(Code::cast(probe));
return Handle<Code>::null();
}
@@ -121,10 +119,8 @@ Handle<Code> PropertyHandlerCompiler::Find(Handle<Name> name,
CacheHolderFlag cache_holder,
Code::StubType type) {
Code::Flags flags = Code::ComputeHandlerFlags(kind, type, cache_holder);
-
- Handle<Object> probe(stub_holder->FindInCodeCache(*name, flags),
- name->GetIsolate());
- if (probe->IsCode()) return Handle<Code>::cast(probe);
+ Object* probe = stub_holder->FindInCodeCache(*name, flags);
+ if (probe->IsCode()) return handle(Code::cast(probe));
return Handle<Code>::null();
}
@@ -957,7 +953,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadViaGetter(
// TODO(verwaest): Cleanup. holder() is actually the receiver.
Handle<Code> NamedStoreHandlerCompiler::CompileStoreTransition(
- LookupResult* lookup, Handle<Map> transition, Handle<Name> name) {
+ Handle<Map> transition, Handle<Name> name) {
Label miss, slow;
// Ensure no transitions to deprecated maps are followed.
@@ -982,23 +978,17 @@ Handle<Code> NamedStoreHandlerCompiler::CompileStoreTransition(
// prototype chain) is in slow mode, we need to do a negative lookup on the
// holder.
if (is_nonexistent) {
- GenerateNegativeHolderLookup(masm(), holder(), holder_reg, name, &miss);
+ GenerateNegativeHolderLookup(holder_reg, name, &miss);
}
- GenerateStoreTransition(masm(),
- lookup,
- transition,
- name,
- receiver(), this->name(), value(),
- scratch1(), scratch2(), scratch3(),
- &miss,
- &slow);
+ GenerateStoreTransition(transition, name, receiver(), this->name(), value(),
+ scratch1(), scratch2(), scratch3(), &miss, &slow);
// Handle store cache miss.
- GenerateRestoreName(masm(), &miss, name);
+ GenerateRestoreName(&miss, name);
TailCallBuiltin(masm(), MissBuiltin(kind()));
- GenerateRestoreName(masm(), &slow, name);
+ GenerateRestoreName(&slow, name);
TailCallBuiltin(masm(), SlowBuiltin(kind()));
return GetCode(kind(), Code::FAST, name);
}
@@ -1011,8 +1001,8 @@ Handle<Code> NamedStoreHandlerCompiler::CompileStoreField(LookupResult* lookup,
FrontendHeader(receiver(), name, &miss);
// Generate store field code.
- GenerateStoreField(masm(), holder(), lookup, receiver(), this->name(),
- value(), scratch1(), scratch2(), &miss);
+ GenerateStoreField(holder(), lookup, receiver(), this->name(), value(),
+ scratch1(), scratch2(), &miss);
// Handle store cache miss.
__ bind(&miss);
@@ -1021,27 +1011,6 @@ Handle<Code> NamedStoreHandlerCompiler::CompileStoreField(LookupResult* lookup,
}
-Handle<Code> NamedStoreHandlerCompiler::CompileStoreArrayLength(
- LookupResult* lookup, Handle<Name> name) {
- // This accepts as a receiver anything JSArray::SetElementsLength accepts
- // (currently anything except for external arrays which means anything with
- // elements of FixedArray type). Value must be a number, but only smis are
- // accepted as the most common case.
- Label miss;
-
- // Check that value is a smi.
- __ JumpIfNotSmi(value(), &miss);
-
- // Generate tail call to StoreIC_ArrayLength.
- GenerateStoreArrayLength();
-
- // Handle miss case.
- __ bind(&miss);
- TailCallBuiltin(masm(), MissBuiltin(kind()));
- return GetCode(kind(), Code::FAST, name);
-}
-
-
Handle<Code> NamedStoreHandlerCompiler::CompileStoreViaSetter(
Handle<JSObject> object, Handle<Name> name, Handle<JSFunction> setter) {
Frontend(receiver(), name);
« no previous file with comments | « src/stub-cache.h ('k') | src/x64/stub-cache-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698