Index: runtime/vm/debugger_ia32.cc |
=================================================================== |
--- runtime/vm/debugger_ia32.cc (revision 31428) |
+++ runtime/vm/debugger_ia32.cc (working copy) |
@@ -36,35 +36,6 @@ |
*reinterpret_cast<uword*>(closure_addr)); |
} |
- |
-void CodeBreakpoint::PatchFunctionReturn() { |
- uint8_t* code = reinterpret_cast<uint8_t*>(pc_ - 5); |
- ASSERT((code[0] == 0x89) && (code[1] == 0xEC)); // mov esp,ebp |
- ASSERT(code[2] == 0x5D); // pop ebp |
- ASSERT(code[3] == 0xC3); // ret |
- ASSERT(code[4] == 0x90); // nop |
- |
- // Smash code with call instruction and relative target address. |
- uword stub_addr = StubCode::BreakpointReturnEntryPoint(); |
- code[0] = 0xE8; |
- *reinterpret_cast<uword*>(&code[1]) = stub_addr - pc_; |
- CPU::FlushICache(pc_ - 5, 5); |
-} |
- |
- |
-void CodeBreakpoint::RestoreFunctionReturn() { |
- uint8_t* code = reinterpret_cast<uint8_t*>(pc_ - 5); |
- ASSERT(code[0] == 0xE8); |
- code[0] = 0x89; |
- code[1] = 0xEC; // mov esp,ebp |
- code[2] = 0x5D; // pop ebp |
- code[3] = 0xC3; // ret |
- code[4] = 0x90; // nop |
- CPU::FlushICache(pc_ - 5, 5); |
-} |
- |
- |
- |
} // namespace dart |
#endif // defined TARGET_ARCH_IA32 |