| Index: runtime/vm/intermediate_language.cc
|
| diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc
|
| index 47e7dab5dd17252dab67b347c45110feb3f8fa34..6f29fd07ead0e606d566bf7f24d4cae293822224 100644
|
| --- a/runtime/vm/intermediate_language.cc
|
| +++ b/runtime/vm/intermediate_language.cc
|
| @@ -1257,6 +1257,18 @@ bool UnboxInt32Instr::CanDeoptimize() const {
|
| }
|
|
|
|
|
| +bool UnboxUint32Instr::CanDeoptimize() const {
|
| + ASSERT(is_truncating());
|
| + if ((value()->Type()->ToCid() == kSmiCid) ||
|
| + (value()->Type()->ToCid() == kMintCid)) {
|
| + return false;
|
| + }
|
| + // Check input value's range.
|
| + Range* value_range = value()->definition()->range();
|
| + return !RangeUtils::Fits(value_range, RangeBoundary::kRangeBoundaryInt64);
|
| +}
|
| +
|
| +
|
| bool BinaryInt32OpInstr::CanDeoptimize() const {
|
| switch (op_kind()) {
|
| case Token::kBIT_AND:
|
|
|