Revision: 17144
Author:   [email protected]
Date:     Thu Oct 10 14:54:31 2013 UTC
Log:      Fix potential deopt-loop introduced in r17143.

[email protected]
BUG=

Review URL: https://codereview.chromium.org/26805004
http://code.google.com/p/v8/source/detail?r=17144

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

=======================================
--- /branches/bleeding_edge/src/code-stubs.cc   Thu Oct 10 13:32:00 2013 UTC
+++ /branches/bleeding_edge/src/code-stubs.cc   Thu Oct 10 14:54:31 2013 UTC
@@ -584,11 +584,18 @@
          op_ == Token::ADD);

   if (old_state == GetExtraICState()) {
-    // Since the fpu is to precise, we might bail out on numbers which
-    // actually would truncate with 64 bit precision.
-    ASSERT(!CpuFeatures::IsSupported(SSE2) &&
-           result_state_ <= INT32);
-    result_state_ = NUMBER;
+    // Tagged operations can lead to non-truncating HChanges
+    if (left->IsUndefined()) {
+      left_state_ = GENERIC;
+    } else if (right->IsUndefined()) {
+      right_state_ = GENERIC;
+    } else {
+      // Since the fpu is to precise, we might bail out on numbers which
+      // actually would truncate with 64 bit precision.
+      ASSERT(!CpuFeatures::IsSupported(SSE2) &&
+             result_state_ <= INT32);
+      result_state_ = NUMBER;
+    }
   }
 }

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to