| Index: arguments/src/arm/codegen-arm.cc
|
| diff --git a/arguments/src/arm/codegen-arm.cc b/arguments/src/arm/codegen-arm.cc
|
| index 04a46a0a22f4d789a58e31b4c81643d1530645a2..f324f94c52ffd5aafbae737cefe3b3d8962cde0f 100644
|
| --- a/arguments/src/arm/codegen-arm.cc
|
| +++ b/arguments/src/arm/codegen-arm.cc
|
| @@ -4354,41 +4354,30 @@ void CodeGenerator::VisitCall(Call* node) {
|
| Load(property->obj());
|
| Load(property->key());
|
|
|
| - if (property->is_synthetic()) {
|
| - EmitKeyedLoad();
|
| - // Put the function below the receiver.
|
| - // Use the global receiver.
|
| - frame_->EmitPush(r0); // Function.
|
| - LoadGlobalReceiver(VirtualFrame::scratch0());
|
| - // Call the function.
|
| - CallWithArguments(args, RECEIVER_MIGHT_BE_VALUE, node->position());
|
| - frame_->EmitPush(r0);
|
| - } else {
|
| - // Swap the name of the function and the receiver on the stack to follow
|
| - // the calling convention for call ICs.
|
| - Register key = frame_->PopToRegister();
|
| - Register receiver = frame_->PopToRegister(key);
|
| - frame_->EmitPush(key);
|
| - frame_->EmitPush(receiver);
|
| -
|
| - // Load the arguments.
|
| - int arg_count = args->length();
|
| - for (int i = 0; i < arg_count; i++) {
|
| - Load(args->at(i));
|
| - }
|
| -
|
| - // Load the key into r2 and call the IC initialization code.
|
| - InLoopFlag in_loop = loop_nesting() > 0 ? IN_LOOP : NOT_IN_LOOP;
|
| - Handle<Code> stub =
|
| - StubCache::ComputeKeyedCallInitialize(arg_count, in_loop);
|
| - CodeForSourcePosition(node->position());
|
| - frame_->SpillAll();
|
| - __ ldr(r2, frame_->ElementAt(arg_count + 1));
|
| - frame_->CallCodeObject(stub, RelocInfo::CODE_TARGET, arg_count + 1);
|
| - frame_->Drop(); // Drop the key still on the stack.
|
| - __ ldr(cp, frame_->Context());
|
| - frame_->EmitPush(r0);
|
| + // Swap the name of the function and the receiver on the stack to follow
|
| + // the calling convention for call ICs.
|
| + Register key = frame_->PopToRegister();
|
| + Register receiver = frame_->PopToRegister(key);
|
| + frame_->EmitPush(key);
|
| + frame_->EmitPush(receiver);
|
| +
|
| + // Load the arguments.
|
| + int arg_count = args->length();
|
| + for (int i = 0; i < arg_count; i++) {
|
| + Load(args->at(i));
|
| }
|
| +
|
| + // Load the key into r2 and call the IC initialization code.
|
| + InLoopFlag in_loop = loop_nesting() > 0 ? IN_LOOP : NOT_IN_LOOP;
|
| + Handle<Code> stub =
|
| + StubCache::ComputeKeyedCallInitialize(arg_count, in_loop);
|
| + CodeForSourcePosition(node->position());
|
| + frame_->SpillAll();
|
| + __ ldr(r2, frame_->ElementAt(arg_count + 1));
|
| + frame_->CallCodeObject(stub, RelocInfo::CODE_TARGET, arg_count + 1);
|
| + frame_->Drop(); // Drop the key still on the stack.
|
| + __ ldr(cp, frame_->Context());
|
| + frame_->EmitPush(r0);
|
| }
|
|
|
| } else {
|
|
|