Index: runtime/vm/stub_code_ia32.cc |
=================================================================== |
--- runtime/vm/stub_code_ia32.cc (revision 1927) |
+++ runtime/vm/stub_code_ia32.cc (working copy) |
@@ -1545,6 +1545,38 @@ |
__ jmp(EAX); |
} |
+ |
+// ECX: Function object. |
+// EDX: Arguments array. |
+// TOS(0): return address (Dart code). |
+void StubCode::GenerateBreakpointStaticStub(Assembler* assembler) { |
+ __ EnterFrame(0); |
+ __ pushl(ECX); |
+ __ pushl(EDX); |
+ __ CallRuntimeFromStub(kBreakpointHandlerRuntimeEntry); |
+ __ popl(EDX); |
+ __ popl(ECX); |
+ __ LeaveFrame(); |
+ // Now call the static function. |
+ __ jmp(&StubCode::CallStaticFunctionLabel()); |
+} |
+ |
+ |
+// ECX: Inline cache data array. |
+// EDX: Arguments array. |
+// TOS(0): return address (Dart code). |
+void StubCode::GenerateBreakpointDynamicStub(Assembler* assembler) { |
+ __ EnterFrame(0); |
+ __ pushl(ECX); |
+ __ pushl(EDX); |
+ __ CallRuntimeFromStub(kBreakpointHandlerRuntimeEntry); |
+ __ popl(EDX); |
+ __ popl(ECX); |
+ __ LeaveFrame(); |
+ // Now call the dynamic function. |
+ __ jmp(&StubCode::InlineCacheLabel()); |
+} |
+ |
} // namespace dart |
#endif // defined TARGET_ARCH_IA32 |