Port of r19288 to a64: Fix for smi stores optimization.
authorishell@chromium.org <ishell@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 12 Feb 2014 13:54:55 +0000 (13:54 +0000)
committerishell@chromium.org <ishell@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 12 Feb 2014 13:54:55 +0000 (13:54 +0000)
R=ulan@chromium.org

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

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

src/a64/lithium-codegen-a64.cc

index 875b450..4c35763 100644 (file)
@@ -5103,6 +5103,10 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
   if (representation.IsSmi() &&
       instr->hydrogen()->value()->representation().IsInteger32()) {
     ASSERT(instr->hydrogen()->store_mode() == STORE_TO_INITIALIZED_ENTRY);
+#ifdef DEBUG
+    __ Ldr(temp1, FieldMemOperand(destination, offset));
+    __ AssertSmi(temp1);
+#endif
     STATIC_ASSERT(kSmiValueSize == 32 && kSmiShift == 32 && kSmiTag == 0);
     __ Store(value, UntagSmiFieldMemOperand(destination, offset),
              Representation::Integer32());