| Index: runtime/vm/stub_code_ia32.cc
 | 
| diff --git a/runtime/vm/stub_code_ia32.cc b/runtime/vm/stub_code_ia32.cc
 | 
| index 0af074b644cb7a07043a458992a8cf761619ddcc..cde7e0f22960ffb572cdc5eea1c36366bfdfd50f 100644
 | 
| --- a/runtime/vm/stub_code_ia32.cc
 | 
| +++ b/runtime/vm/stub_code_ia32.cc
 | 
| @@ -394,11 +394,20 @@ static void GenerateDeoptimizationSequence(Assembler* assembler,
 | 
|    if (preserve_eax) {
 | 
|      __ pushl(EBX);  // Preserve result, it will be GC-d here.
 | 
|    }
 | 
| -  __ CallRuntime(kDeoptimizeMaterializeDoublesRuntimeEntry);
 | 
| +  __ pushl(Immediate(Smi::RawValue(0)));  // Space for the result.
 | 
| +  __ CallRuntime(kDeoptimizeMaterializeRuntimeEntry);
 | 
| +  // Result tells stub how many bytes to remove from the expression stack
 | 
| +  // of the bottom-most frame. They were used as materialization arguments.
 | 
| +  __ popl(EBX);
 | 
| +  __ SmiUntag(EBX);
 | 
|    if (preserve_eax) {
 | 
|      __ popl(EAX);  // Restore result.
 | 
|    }
 | 
|    __ LeaveFrame();
 | 
| +
 | 
| +  __ popl(ECX);  // Pop return address.
 | 
| +  __ addl(ESP, EBX);  // Remove materialization arguments.
 | 
| +  __ pushl(ECX);  // Push return address.
 | 
|    __ ret();
 | 
|  }
 | 
|  
 | 
| 
 |