| Index: runtime/vm/intermediate_language.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.cc (revision 23018)
|
| +++ runtime/vm/intermediate_language.cc (working copy)
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "vm/intermediate_language.h"
|
|
|
| +#include "vm/bigint_operations.h"
|
| #include "vm/bit_vector.h"
|
| #include "vm/dart_entry.h"
|
| #include "vm/flow_graph_allocator.h"
|
| @@ -204,6 +205,16 @@
|
| }
|
|
|
|
|
| +ConstantInstr::ConstantInstr(const Object& value) : value_(value) {
|
| + // Check that the value is not an incorrect Integer representation.
|
| + ASSERT(!value.IsBigint() ||
|
| + !BigintOperations::FitsIntoSmi(Bigint::Cast(value)));
|
| + ASSERT(!value.IsBigint() ||
|
| + !BigintOperations::FitsIntoInt64(Bigint::Cast(value)));
|
| + ASSERT(!value.IsMint() || !Smi::IsValid64(Mint::Cast(value).AsInt64Value()));
|
| +}
|
| +
|
| +
|
| bool ConstantInstr::AttributesEqual(Instruction* other) const {
|
| ConstantInstr* other_constant = other->AsConstant();
|
| ASSERT(other_constant != NULL);
|
|
|