Chromium Code Reviews| Index: runtime/vm/intermediate_language.cc |
| diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc |
| index 47e7dab5dd17252dab67b347c45110feb3f8fa34..e83f583bed0cf1dd57738d113bc0cafd450d938c 100644 |
| --- a/runtime/vm/intermediate_language.cc |
| +++ b/runtime/vm/intermediate_language.cc |
| @@ -1257,6 +1257,22 @@ 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(); |
| + if (value_range != NULL && |
|
Vyacheslav Egorov (Google)
2015/05/27 16:17:35
no need for != NULL check. Fits does it for you (i
Florian Schneider
2015/05/28 08:11:09
Done.
|
| + RangeUtils::Fits(value_range, RangeBoundary::kRangeBoundaryInt64)) { |
| + return false; |
| + } |
| + return true; |
| +} |
| + |
| + |
| bool BinaryInt32OpInstr::CanDeoptimize() const { |
| switch (op_kind()) { |
| case Token::kBIT_AND: |