| Index: src/arm/ic-arm.cc
|
| ===================================================================
|
| --- src/arm/ic-arm.cc (revision 3854)
|
| +++ src/arm/ic-arm.cc (working copy)
|
| @@ -59,7 +59,7 @@
|
| // r3 - used as temporary and to hold the capacity of the property
|
| // dictionary.
|
| //
|
| - // r2 - holds the name of the property and is unchanges.
|
| + // r2 - holds the name of the property and is unchanged.
|
|
|
| Label done;
|
|
|
| @@ -219,14 +219,13 @@
|
|
|
| void CallIC::GenerateMegamorphic(MacroAssembler* masm, int argc) {
|
| // ----------- S t a t e -------------
|
| - // -- lr: return address
|
| + // -- r2 : name
|
| + // -- lr : return address
|
| // -----------------------------------
|
| Label number, non_number, non_string, boolean, probe, miss;
|
|
|
| // Get the receiver of the function from the stack into r1.
|
| __ ldr(r1, MemOperand(sp, argc * kPointerSize));
|
| - // Get the name of the function from the stack; 1 ~ receiver.
|
| - __ ldr(r2, MemOperand(sp, (argc + 1) * kPointerSize));
|
|
|
| // Probe the stub cache.
|
| Code::Flags flags =
|
| @@ -301,9 +300,9 @@
|
|
|
| // Patch the receiver with the global proxy if necessary.
|
| if (is_global_object) {
|
| - __ ldr(r2, MemOperand(sp, argc * kPointerSize));
|
| - __ ldr(r2, FieldMemOperand(r2, GlobalObject::kGlobalReceiverOffset));
|
| - __ str(r2, MemOperand(sp, argc * kPointerSize));
|
| + __ ldr(r0, MemOperand(sp, argc * kPointerSize));
|
| + __ ldr(r0, FieldMemOperand(r0, GlobalObject::kGlobalReceiverOffset));
|
| + __ str(r0, MemOperand(sp, argc * kPointerSize));
|
| }
|
|
|
| // Invoke the function.
|
| @@ -314,14 +313,13 @@
|
|
|
| void CallIC::GenerateNormal(MacroAssembler* masm, int argc) {
|
| // ----------- S t a t e -------------
|
| - // -- lr: return address
|
| + // -- r2 : name
|
| + // -- lr : return address
|
| // -----------------------------------
|
| Label miss, global_object, non_global_object;
|
|
|
| // Get the receiver of the function from the stack into r1.
|
| __ ldr(r1, MemOperand(sp, argc * kPointerSize));
|
| - // Get the name of the function from the stack; 1 ~ receiver.
|
| - __ ldr(r2, MemOperand(sp, (argc + 1) * kPointerSize));
|
|
|
| // Check that the receiver isn't a smi.
|
| __ tst(r1, Operand(kSmiTagMask));
|
| @@ -374,18 +372,17 @@
|
|
|
| void CallIC::GenerateMiss(MacroAssembler* masm, int argc) {
|
| // ----------- S t a t e -------------
|
| - // -- lr: return address
|
| + // -- r2 : name
|
| + // -- lr : return address
|
| // -----------------------------------
|
|
|
| // Get the receiver of the function from the stack.
|
| - __ ldr(r2, MemOperand(sp, argc * kPointerSize));
|
| - // Get the name of the function to call from the stack.
|
| - __ ldr(r1, MemOperand(sp, (argc + 1) * kPointerSize));
|
| + __ ldr(r3, MemOperand(sp, argc * kPointerSize));
|
|
|
| __ EnterInternalFrame();
|
|
|
| // Push the receiver and the name of the function.
|
| - __ stm(db_w, sp, r1.bit() | r2.bit());
|
| + __ stm(db_w, sp, r2.bit() | r3.bit());
|
|
|
| // Call the entry.
|
| __ mov(r0, Operand(2));
|
|
|