| Index: src/codegen-arm.cc
|
| ===================================================================
|
| --- src/codegen-arm.cc (revision 727)
|
| +++ src/codegen-arm.cc (working copy)
|
| @@ -3247,9 +3247,15 @@
|
| // distinction between expressions in a typeof and not in a typeof.
|
| Comment cmnt(masm, "[ Load from keyed Property");
|
| ASSERT(property != NULL);
|
| - // TODO(1224671): Implement inline caching for keyed loads as on ia32.
|
| - GetPropertyStub stub;
|
| - __ CallStub(&stub);
|
| + Handle<Code> ic(Builtins::builtin(Builtins::KeyedLoadIC_Initialize));
|
| +
|
| + Variable* var = expression_->AsVariableProxy()->AsVariable();
|
| + if (var != NULL) {
|
| + ASSERT(var->is_global());
|
| + __ Call(ic, RelocInfo::CODE_TARGET_CONTEXT);
|
| + } else {
|
| + __ Call(ic, RelocInfo::CODE_TARGET);
|
| + }
|
| frame->Push(r0);
|
| break;
|
| }
|
| @@ -3371,9 +3377,12 @@
|
| Property* property = expression_->AsProperty();
|
| ASSERT(property != NULL);
|
| __ RecordPosition(property->position());
|
| +
|
| + // Call IC code.
|
| + Handle<Code> ic(Builtins::builtin(Builtins::KeyedStoreIC_Initialize));
|
| + // TODO(1222589): Make the IC grab the values from the stack.
|
| frame->Pop(r0); // value
|
| - SetPropertyStub stub;
|
| - __ CallStub(&stub);
|
| + __ Call(ic, RelocInfo::CODE_TARGET);
|
| frame->Push(r0);
|
| break;
|
| }
|
|
|