Index: src/code-stubs.cc |
=================================================================== |
--- src/code-stubs.cc (revision 10216) |
+++ src/code-stubs.cc (working copy) |
@@ -101,14 +101,7 @@ |
Factory* factory = isolate->factory(); |
Heap* heap = isolate->heap(); |
Code* code; |
- if (UseSpecialCache() |
- ? FindCodeInSpecialCache(&code) |
- : FindCodeInCache(&code)) { |
- ASSERT(IsPregenerated() == code->is_pregenerated()); |
- return Handle<Code>(code); |
- } |
- |
- { |
+ if (!FindCodeInCache(&code)) { |
HandleScope scope(isolate); |
// Generate the new code. |
@@ -128,21 +121,19 @@ |
RecordCodeGeneration(*new_object, &masm); |
FinishCode(new_object); |
- if (UseSpecialCache()) { |
- AddToSpecialCache(new_object); |
- } else { |
- // Update the dictionary and the root in Heap. |
- Handle<NumberDictionary> dict = |
- factory->DictionaryAtNumberPut( |
- Handle<NumberDictionary>(heap->code_stubs()), |
- GetKey(), |
- new_object); |
- heap->public_set_code_stubs(*dict); |
- } |
+ // Update the dictionary and the root in Heap. |
+ Handle<NumberDictionary> dict = |
+ factory->DictionaryAtNumberPut( |
+ Handle<NumberDictionary>(heap->code_stubs()), |
+ GetKey(), |
+ new_object); |
+ heap->public_set_code_stubs(*dict); |
code = *new_object; |
+ Activate(code); |
+ } else { |
+ CHECK(IsPregenerated() == code->is_pregenerated()); |
} |
- Activate(code); |
ASSERT(!NeedsImmovableCode() || heap->lo_space()->Contains(code)); |
return Handle<Code>(code, isolate); |
} |
@@ -168,32 +159,6 @@ |
} |
-void ICCompareStub::AddToSpecialCache(Handle<Code> new_object) { |
- ASSERT(*known_map_ != NULL); |
- Isolate* isolate = new_object->GetIsolate(); |
- Factory* factory = isolate->factory(); |
- return Map::UpdateCodeCache(known_map_, |
- factory->compare_ic_symbol(), |
- new_object); |
-} |
- |
- |
-bool ICCompareStub::FindCodeInSpecialCache(Code** code_out) { |
- Isolate* isolate = known_map_->GetIsolate(); |
- Factory* factory = isolate->factory(); |
- Code::Flags flags = Code::ComputeFlags( |
- static_cast<Code::Kind>(GetCodeKind()), |
- UNINITIALIZED); |
- Handle<Object> probe( |
- known_map_->FindInCodeCache(*factory->compare_ic_symbol(), flags)); |
- if (probe->IsCode()) { |
- *code_out = Code::cast(*probe); |
- return true; |
- } |
- return false; |
-} |
- |
- |
int ICCompareStub::MinorKey() { |
return OpField::encode(op_ - Token::EQ) | StateField::encode(state_); |
} |
@@ -219,10 +184,6 @@ |
case CompareIC::OBJECTS: |
GenerateObjects(masm); |
break; |
- case CompareIC::KNOWN_OBJECTS: |
- ASSERT(*known_map_ != NULL); |
- GenerateKnownObjects(masm); |
- break; |
default: |
UNREACHABLE(); |
} |