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; |
} |