Reviewers: Mads Ager, Søren Gjesse, Karl Klose,

Description:
Implement DoCallKeyed for arm lithium compiler.

Per the LChunkBuilder::DoCallKeyed the key value is placed into r2 where the
KeyedCallIC expects it already so, inspired by the ia32 implementation and the
DoCallNamed this code is all that is required.

Thank you!
Martin

Please review this at http://codereview.chromium.org/6139002/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/arm/lithium-codegen-arm.cc


Index: src/arm/lithium-codegen-arm.cc
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
index e6942fada14f66396ffcf32e43e4b5e60ab09868..ff260b59cd255c8ff2035775f17602f74a077a1a 100644
--- a/src/arm/lithium-codegen-arm.cc
+++ b/src/arm/lithium-codegen-arm.cc
@@ -1812,7 +1812,12 @@ void LCodeGen::DoUnaryMathOperation(LUnaryMathOperation* instr) {


 void LCodeGen::DoCallKeyed(LCallKeyed* instr) {
-  Abort("DoCallKeyed unimplemented.");
+  ASSERT(ToRegister(instr->result()).is(r0));
+
+  int arity = instr->arity();
+ Handle<Code> ic = StubCache::ComputeKeyedCallInitialize(arity, NOT_IN_LOOP);
+  CallCode(ic, RelocInfo::CODE_TARGET, instr);
+  __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
 }




--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to