Revision: 7683
Author:   [email protected]
Date:     Tue Apr 26 09:40:20 2011
Log:      Fix an edge case in non-vfp3 version of TypeRecordingBinaryOpStub.

Review URL: http://codereview.chromium.org/6903030
http://code.google.com/p/v8/source/detail?r=7683

Modified:
 /branches/bleeding_edge/src/arm/code-stubs-arm.cc

=======================================
--- /branches/bleeding_edge/src/arm/code-stubs-arm.cc Thu Apr 21 03:02:58 2011 +++ /branches/bleeding_edge/src/arm/code-stubs-arm.cc Tue Apr 26 09:40:20 2011
@@ -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