Fix cornercase in r19475
authorjkummerow@chromium.org <jkummerow@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 19 Feb 2014 12:30:10 +0000 (12:30 +0000)
committerjkummerow@chromium.org <jkummerow@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 19 Feb 2014 12:30:10 +0000 (12:30 +0000)
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/169353003

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

src/hydrogen-bce.cc

index 7e9a556..2514f7d 100644 (file)
@@ -216,7 +216,11 @@ class BoundsCheckBbData: public ZoneObject {
   void MoveIndexIfNecessary(HValue* index_raw,
                             HBoundsCheck* insert_before,
                             HInstruction* end_of_scan_range) {
-    ASSERT(index_raw->IsAdd() || index_raw->IsSub());
+    if (!index_raw->IsAdd() && !index_raw->IsSub()) {
+      // index_raw can be HAdd(index_base, offset), HSub(index_base, offset),
+      // or index_base directly. In the latter case, no need to move anything.
+      return;
+    }
     HArithmeticBinaryOperation* index =
         HArithmeticBinaryOperation::cast(index_raw);
     HValue* left_input = index->left();