Reviewers: Søren Gjesse,

Description:
Fix an edge case in non-vfp3 version of TypeRecordingBinaryOpStub.


Please review this at http://codereview.chromium.org/6903030/

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
  M     src/arm/code-stubs-arm.cc


Index: src/arm/code-stubs-arm.cc
===================================================================
--- src/arm/code-stubs-arm.cc   (revision 7681)
+++ src/arm/code-stubs-arm.cc   (working copy)
@@ -2327,6 +2327,8 @@
         // Save the left value on the stack.
         __ Push(r5, r4);

+        Label pop_and_call_runtime;
+
         // Allocate a heap number to store the result.
         heap_number_result = r5;
         GenerateHeapResultAllocation(masm,
@@ -2334,7 +2336,7 @@
                                      heap_number_map,
                                      scratch1,
                                      scratch2,
-                                     &call_runtime);
+                                     &pop_and_call_runtime);

         // Load the left value from the value saved on the stack.
         __ Pop(r1, r0);
@@ -2345,6 +2347,10 @@
         if (FLAG_debug_code) {
           __ stop("Unreachable code.");
         }
+
+        __ bind(&pop_and_call_runtime);
+        __ Drop(2);
+        __ b(&call_runtime);
       }

       break;


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

Reply via email to