| Index: runtime/vm/intermediate_language_ia32.cc
|
| diff --git a/runtime/vm/intermediate_language_ia32.cc b/runtime/vm/intermediate_language_ia32.cc
|
| index ccf4a25ee3494cd324e7b04d0327546e73522cf0..bac20ec9fb06c8d5f0217d4774960ce3a1edc45d 100644
|
| --- a/runtime/vm/intermediate_language_ia32.cc
|
| +++ b/runtime/vm/intermediate_language_ia32.cc
|
| @@ -3674,6 +3674,13 @@ void UnboxInteger32Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| FieldAddress(value, hi_offset),
|
| temp,
|
| out_of_range);
|
| + } else if (!CanDeoptimize()) {
|
| + ASSERT(value == result);
|
| + Label done;
|
| + __ SmiUntag(value);
|
| + __ j(NOT_CARRY, &done);
|
| + __ movl(value, Address(value, TIMES_2, lo_offset));
|
| + __ Bind(&done);
|
| } else {
|
| ASSERT(value == result);
|
| Label done;
|
|
|