Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index dca5f9b350163bae6b696fdfb6e0cc424d002456..dd740c2c60c565aa99dc29e570c81dd6a33bf4b9 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -1840,7 +1840,13 @@ void LCodeGen::DoCallFunction(LCallFunction* instr) { |
void LCodeGen::DoCallGlobal(LCallGlobal* instr) { |
- Abort("DoCallGlobal unimplemented."); |
+ ASSERT(ToRegister(instr->result()).is(r0)); |
+ |
+ int arity = instr->arity(); |
+ Handle<Code> ic = StubCache::ComputeCallInitialize(arity, NOT_IN_LOOP); |
+ __ mov(r2, Operand(instr->name())); |
+ CallCode(ic, RelocInfo::CODE_TARGET_CONTEXT, instr); |
+ __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); |
} |