Chromium Code Reviews| Index: src/stub-cache.cc |
| diff --git a/src/stub-cache.cc b/src/stub-cache.cc |
| index 15f128da4c7a30299e6bf385655bb281579029ea..91627b30705fbfc1f7bf6304bdfd471bc8fb7f56 100644 |
| --- a/src/stub-cache.cc |
| +++ b/src/stub-cache.cc |
| @@ -461,6 +461,27 @@ MaybeObject* StubCache::ComputeKeyedLoadSpecialized(JSObject* receiver) { |
| } |
| +MaybeObject* StubCache::ComputeKeyedLoadPixelArray(JSObject* receiver) { |
| + Code::Flags flags = |
| + Code::ComputeMonomorphicFlags(Code::KEYED_LOAD_IC, NORMAL); |
|
Mads Ager (chromium)
2011/02/01 12:02:12
This is sort of a misuse of the NORMAL tag which n
danno
2011/02/03 12:53:26
Done.
|
| + String* name = Heap::KeyedLoadPixelArray_symbol(); |
| + Object* code = receiver->map()->FindInCodeCache(name, flags); |
| + if (code->IsUndefined()) { |
| + KeyedLoadStubCompiler compiler; |
| + { MaybeObject* maybe_code = compiler.CompileLoadPixelArray(receiver); |
| + if (!maybe_code->ToObject(&code)) return maybe_code; |
| + } |
| + PROFILE(CodeCreateEvent(Logger::KEYED_LOAD_IC_TAG, Code::cast(code), 0)); |
| + Object* result; |
| + { MaybeObject* maybe_result = |
| + receiver->UpdateMapCodeCache(name, Code::cast(code)); |
| + if (!maybe_result->ToObject(&result)) return maybe_result; |
| + } |
| + } |
| + return code; |
| +} |
| + |
| + |
| MaybeObject* StubCache::ComputeStoreField(String* name, |
| JSObject* receiver, |
| int field_index, |