Chromium Code Reviews| Index: runtime/vm/stub_code_ia32.cc |
| =================================================================== |
| --- runtime/vm/stub_code_ia32.cc (revision 36530) |
| +++ runtime/vm/stub_code_ia32.cc (working copy) |
| @@ -23,6 +23,7 @@ |
| namespace dart { |
| +DEFINE_FLAG(bool, enable_debugger, true, "Enables debugger step checks"); |
| DEFINE_FLAG(bool, inline_alloc, true, "Inline allocation of objects."); |
| DEFINE_FLAG(bool, use_slow_path, false, |
| "Set to true for debugging & verifying the slow paths."); |
| @@ -1301,19 +1302,21 @@ |
| } |
| #endif // DEBUG |
| - // 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); |
| + if (FLAG_enable_debugger) { |
|
Ivan Posva
2014/05/22 21:53:43
Other architectures?
|
| + // 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(); |
| - __ pushl(ECX); |
| - __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0); |
| - __ popl(ECX); |
| - __ LeaveFrame(); |
| - __ Bind(¬_stepping); |
| + __ EnterStubFrame(); |
| + __ pushl(ECX); |
| + __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0); |
| + __ popl(ECX); |
| + __ LeaveFrame(); |
| + __ Bind(¬_stepping); |
| + } |
| // ECX: IC data object (preserved). |
| // Load arguments descriptor into EDX. |