Fix FastPixelArrayStore on X64 platform.
authorwhesse@chromium.org <whesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 15 Feb 2011 12:17:42 +0000 (12:17 +0000)
committerwhesse@chromium.org <whesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 15 Feb 2011 12:17:42 +0000 (12:17 +0000)
TEST=test-api/PixelArray
Review URL: http://codereview.chromium.org/6529014

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

src/x64/code-stubs-x64.cc

index c845eab7a5a4f072d2a3525dabecfbd656c79e39..768e0f421523644c8ac81fa7681e691129f1bf8f 100644 (file)
@@ -4837,21 +4837,20 @@ void GenerateFastPixelArrayStore(MacroAssembler* masm,
     }
   }
 
-  // Some callers already have verified that the key is a smi.  key_not_smi is
-  // set to NULL as a sentinel for that case.  Otherwise, add an explicit check
-  // to ensure the key is a smi must be added.
-  if (key_not_smi != NULL) {
-    __ JumpIfNotSmi(key, key_not_smi);
-  } else {
-    if (FLAG_debug_code) {
-      __ AbortIfNotSmi(key);
-    }
-  }
-
   // Key must be a smi and it must be in range.
   if (key_is_untagged) {
     untagged_key = key;
   } else {
+    // Some callers already have verified that the key is a smi.  key_not_smi is
+    // set to NULL as a sentinel for that case.  Otherwise, add an explicit
+    // check to ensure the key is a smi.
+    if (key_not_smi != NULL) {
+      __ JumpIfNotSmi(key, key_not_smi);
+    } else {
+      if (FLAG_debug_code) {
+        __ AbortIfNotSmi(key);
+      }
+    }
     __ SmiToInteger32(untagged_key, key);
   }
   __ cmpl(untagged_key, FieldOperand(elements, PixelArray::kLengthOffset));