| Index: src/arm/code-stubs-arm.cc
|
| ===================================================================
|
| --- src/arm/code-stubs-arm.cc (revision 8927)
|
| +++ src/arm/code-stubs-arm.cc (working copy)
|
| @@ -6315,14 +6315,8 @@
|
|
|
| void DirectCEntryStub::GenerateCall(MacroAssembler* masm,
|
| ExternalReference function) {
|
| - __ mov(lr, Operand(reinterpret_cast<intptr_t>(GetCode().location()),
|
| - RelocInfo::CODE_TARGET));
|
| __ mov(r2, Operand(function));
|
| - // Push return address (accessible to GC through exit frame pc).
|
| - // Note that using pc with str is deprecated.
|
| - __ add(ip, pc, Operand(4));
|
| - __ str(ip, MemOperand(sp, 0));
|
| - __ Jump(r2); // Call the api function.
|
| + GenerateCall(masm, r2);
|
| }
|
|
|
|
|
| @@ -6332,9 +6326,13 @@
|
| RelocInfo::CODE_TARGET));
|
| // Push return address (accessible to GC through exit frame pc).
|
| // Note that using pc with str is deprecated.
|
| - __ add(ip, pc, Operand(4));
|
| + Label start;
|
| + __ bind(&start);
|
| + __ add(ip, pc, Operand(Assembler::kInstrSize));
|
| __ str(ip, MemOperand(sp, 0));
|
| __ Jump(target); // Call the C++ function.
|
| + ASSERT_EQ(Assembler::kInstrSize + Assembler::kPcLoadDelta,
|
| + masm->SizeOfCodeGeneratedSince(&start));
|
| }
|
|
|
|
|
|
|