Author: [email protected]
Date: Wed Jun  3 09:09:43 2009
New Revision: 2099

Modified:
    branches/bleeding_edge/src/arm/stub-cache-arm.cc
    branches/bleeding_edge/src/ia32/stub-cache-ia32.cc
    branches/bleeding_edge/src/stub-cache.h

Log:
Store lookup index in ARM stubs as well (see r2093 and 2094 for more info).

Review URL: http://codereview.chromium.org/118163

Modified: branches/bleeding_edge/src/arm/stub-cache-arm.cc
==============================================================================
--- branches/bleeding_edge/src/arm/stub-cache-arm.cc    (original)
+++ branches/bleeding_edge/src/arm/stub-cache-arm.cc    Wed Jun  3 09:09:43  
2009
@@ -246,6 +246,7 @@
  void StubCompiler::GenerateLoadInterceptor(MacroAssembler* masm,
                                             JSObject* object,
                                             JSObject* holder,
+                                           Smi* lookup_hint,
                                             Register receiver,
                                             Register name,
                                             Register scratch1,
@@ -263,11 +264,13 @@
    __ push(receiver);  // receiver
    __ push(reg);  // holder
    __ push(name);  // name
+  __ mov(scratch1, Operand(lookup_hint));
+  __ push(scratch1);

    // Do tail-call to the runtime system.
    ExternalReference load_ic_property =
        ExternalReference(IC_Utility(IC::kLoadInterceptorProperty));
-  __ TailCallRuntime(load_ic_property, 3);
+  __ TailCallRuntime(load_ic_property, 4);
  }


@@ -909,7 +912,15 @@

    __ ldr(r0, MemOperand(sp, 0));

-  GenerateLoadInterceptor(masm(), object, holder, r0, r2, r3, r1, &miss);
+  GenerateLoadInterceptor(masm(),
+                          object,
+                          holder,
+                          holder->InterceptorPropertyLookupHint(name),
+                          r0,
+                          r2,
+                          r3,
+                          r1,
+                          &miss);
    __ bind(&miss);
    GenerateLoadMiss(masm(), Code::LOAD_IC);

@@ -1015,7 +1026,15 @@
    __ cmp(r2, Operand(Handle<String>(name)));
    __ b(ne, &miss);

-  GenerateLoadInterceptor(masm(), receiver, holder, r0, r2, r3, r1, &miss);
+  GenerateLoadInterceptor(masm(),
+                          receiver,
+                          holder,
+                          Smi::FromInt(JSObject::kLookupInHolder),
+                          r0,
+                          r2,
+                          r3,
+                          r1,
+                          &miss);
    __ bind(&miss);
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);


Modified: branches/bleeding_edge/src/ia32/stub-cache-ia32.cc
==============================================================================
--- branches/bleeding_edge/src/ia32/stub-cache-ia32.cc  (original)
+++ branches/bleeding_edge/src/ia32/stub-cache-ia32.cc  Wed Jun  3 09:09:43  
2009
@@ -322,25 +322,6 @@
  void StubCompiler::GenerateLoadInterceptor(MacroAssembler* masm,
                                             JSObject* object,
                                             JSObject* holder,
-                                           Register receiver,
-                                           Register name,
-                                           Register scratch1,
-                                           Register scratch2,
-                                           Label* miss_label) {
-  GenerateLoadInterceptor(masm,
-                          object,
-                          holder,
-                          Smi::FromInt(JSObject::kLookupInHolder),
-                          receiver,
-                          name,
-                          scratch1,
-                          scratch2,
-                          miss_label);
-}
-
-void StubCompiler::GenerateLoadInterceptor(MacroAssembler* masm,
-                                           JSObject* object,
-                                           JSObject* holder,
                                             Smi* lookup_hint,
                                             Register receiver,
                                             Register name,
@@ -1124,7 +1105,15 @@
    __ cmp(Operand(eax), Immediate(Handle<String>(name)));
    __ j(not_equal, &miss, not_taken);

-  GenerateLoadInterceptor(masm(), receiver, holder, ecx, eax, edx, ebx,  
&miss);
+  GenerateLoadInterceptor(masm(),
+                          receiver,
+                          holder,
+                          Smi::FromInt(JSObject::kLookupInHolder),
+                          ecx,
+                          eax,
+                          edx,
+                          ebx,
+                          &miss);
    __ bind(&miss);
    __ DecrementCounter(&Counters::keyed_load_interceptor, 1);
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

Modified: branches/bleeding_edge/src/stub-cache.h
==============================================================================
--- branches/bleeding_edge/src/stub-cache.h     (original)
+++ branches/bleeding_edge/src/stub-cache.h     Wed Jun  3 09:09:43 2009
@@ -351,15 +351,6 @@
    static void GenerateLoadInterceptor(MacroAssembler* masm,
                                        JSObject* object,
                                        JSObject* holder,
-                                      Register receiver,
-                                      Register name,
-                                      Register scratch1,
-                                      Register scratch2,
-                                      Label* miss_label);
-  // TODO(antonm): Remove a function above.
-  static void GenerateLoadInterceptor(MacroAssembler* masm,
-                                      JSObject* object,
-                                      JSObject* holder,
                                        Smi* lookup_hint,
                                        Register receiver,
                                        Register name,

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to