ARM: Fix porting bug
authorsgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 19 May 2010 08:36:14 +0000 (08:36 +0000)
committersgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 19 May 2010 08:36:14 +0000 (08:36 +0000)
The port to ARM of a tail call wrongly kept the scheme of pushing below the return address.

TBR=antonm@chromium.org
Review URL: http://codereview.chromium.org/2091013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/arm/stub-cache-arm.cc

index 964d098fc6b4fb366f48c5c4e91ee43c6b8cd960..0bdbff15cb6c68989506e80d1d39002280a0828c 100644 (file)
@@ -508,8 +508,7 @@ class LoadInterceptorCompiler BASE_EMBEDDED {
       ASSERT(callback->getter() != NULL);
 
       Label cleanup;
-      __ pop(scratch2);
-      __ Push(receiver, scratch2);
+      __ push(receiver);
 
       holder = stub_compiler->CheckPrototypes(holder_obj, holder,
                                               lookup->holder(), scratch1,
@@ -528,9 +527,7 @@ class LoadInterceptorCompiler BASE_EMBEDDED {
       __ TailCallExternalReference(ref, 5, 1);
 
       __ bind(&cleanup);
-      __ pop(scratch1);
       __ pop(scratch2);
-      __ push(scratch1);
     }
   }