Index: runtime/vm/stub_code_ia32.cc |
=================================================================== |
--- runtime/vm/stub_code_ia32.cc (revision 31428) |
+++ runtime/vm/stub_code_ia32.cc (working copy) |
@@ -1938,6 +1938,23 @@ |
} |
+// Called only from unoptimized code. |
+void StubCode::GenerateDebugStepCheckStub(Assembler* assembler) { |
+ // Check single stepping. |
+ Label not_stepping; |
+ __ movl(EAX, FieldAddress(CTX, Context::isolate_offset())); |
+ __ movzxb(EAX, Address(EAX, Isolate::single_step_offset())); |
+ __ cmpl(EAX, Immediate(0)); |
+ __ j(EQUAL, ¬_stepping, Assembler::kNearJump); |
+ |
+ __ EnterStubFrame(); |
+ __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0); |
+ __ LeaveFrame(); |
+ __ Bind(¬_stepping); |
+ __ ret(); |
+} |
+ |
+ |
// Used to check class and type arguments. Arguments passed on stack: |
// TOS + 0: return address. |
// TOS + 1: instantiator type arguments (can be NULL). |