Index: src/arm64/lithium-codegen-arm64.cc |
diff --git a/src/arm64/lithium-codegen-arm64.cc b/src/arm64/lithium-codegen-arm64.cc |
index ddf1677573bf885a4f2198a0a8bd509f757771fe..7fdd94fee11f1beda5688c146720f55b19b23a83 100644 |
--- a/src/arm64/lithium-codegen-arm64.cc |
+++ b/src/arm64/lithium-codegen-arm64.cc |
@@ -1267,8 +1267,7 @@ bool LCodeGen::IsSmi(LConstantOperand* op) const { |
bool LCodeGen::IsInteger32Constant(LConstantOperand* op) const { |
- return op->IsConstantOperand() && |
- chunk_->LookupLiteralRepresentation(op).IsSmiOrInteger32(); |
+ return chunk_->LookupLiteralRepresentation(op).IsSmiOrInteger32(); |
} |
@@ -5241,6 +5240,9 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { |
SmiCheck check_needed = instr->hydrogen()->value()->IsHeapObject() |
? OMIT_SMI_CHECK : INLINE_SMI_CHECK; |
+ ASSERT(!(representation.IsSmi() && |
+ instr->value()->IsConstantOperand() && |
+ !IsInteger32Constant(LConstantOperand::cast(instr->value())))); |
if (representation.IsHeapObject() && |
!instr->hydrogen()->value()->type().IsHeapObject()) { |
DeoptimizeIfSmi(value, instr->environment()); |