Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(995)

Unified Diff: src/arm/ic-arm.cc

Issue 598065: Change CallIC interface on ARM. Remove name from the stack, and pass it in r... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/arm/full-codegen-arm.cc ('k') | src/arm/stub-cache-arm.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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));
« no previous file with comments | « src/arm/full-codegen-arm.cc ('k') | src/arm/stub-cache-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698