Index: runtime/vm/intermediate_language_x64.cc |
=================================================================== |
--- runtime/vm/intermediate_language_x64.cc (revision 26436) |
+++ runtime/vm/intermediate_language_x64.cc (working copy) |
@@ -96,20 +96,16 @@ |
__ Bind(&done); |
} |
#endif |
- __ LeaveFrame(); |
+ __ LeaveFrame(true); |
__ ret(); |
- // Generate 8 bytes of NOPs so that the debugger can patch the |
+ // Generate 4 bytes of NOPs so that the debugger can patch the |
// return pattern with a call to the debug stub. |
// Note that the nop(8) byte pattern is not recognized by the debugger. |
__ nop(1); |
__ nop(1); |
__ nop(1); |
__ nop(1); |
- __ nop(1); |
- __ nop(1); |
- __ nop(1); |
- __ nop(1); |
compiler->AddCurrentDescriptor(PcDescriptors::kReturn, |
Isolate::kNoDeoptId, |
token_pos()); |
@@ -2230,6 +2226,10 @@ |
try_index(), |
compiler->assembler()->CodeSize(), |
catch_handler_types_); |
+ |
+ // Restore the pool pointer. |
+ __ LoadPoolPointer(); |
+ |
if (HasParallelMove()) { |
compiler->parallel_move_resolver()->EmitNativeCode(parallel_move()); |
} |