| Index: runtime/vm/assembler_x64.cc
|
| ===================================================================
|
| --- runtime/vm/assembler_x64.cc (revision 27881)
|
| +++ runtime/vm/assembler_x64.cc (working copy)
|
| @@ -2225,9 +2225,12 @@
|
|
|
|
|
| bool Assembler::CanLoadFromObjectPool(const Object& object) {
|
| - // TODO(zra, kmillikin): Move the use of large Smis into the constant pool.
|
| + // TODO(zra, kmillikin): Also load other large immediates from the object
|
| + // pool
|
| if (object.IsSmi()) {
|
| - return false;
|
| + // If the raw smi does not fit into a 32-bit signed int, then we'll keep
|
| + // the raw value in the object pool.
|
| + return !Utils::IsInt(32, reinterpret_cast<int64_t>(object.raw()));
|
| }
|
| ASSERT(object.IsNotTemporaryScopedHandle());
|
| ASSERT(object.IsOld());
|
|
|