| Index: runtime/vm/stub_code_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/stub_code_ia32.cc (revision 38736)
|
| +++ runtime/vm/stub_code_ia32.cc (working copy)
|
| @@ -29,8 +29,6 @@
|
| DECLARE_FLAG(bool, trace_optimized_ic_calls);
|
| DEFINE_FLAG(bool, verify_incoming_contexts, false, "");
|
|
|
| -DECLARE_FLAG(bool, enable_debugger);
|
| -
|
| // Input parameters:
|
| // ESP : points to return address.
|
| // ESP + 4 : address of last argument in argument array.
|
| @@ -1294,13 +1292,11 @@
|
| #endif // DEBUG
|
|
|
| Label stepping, done_stepping;
|
| - if (FLAG_enable_debugger) {
|
| - // Check single stepping.
|
| - __ movl(EAX, FieldAddress(CTX, Context::isolate_offset()));
|
| - __ cmpb(Address(EAX, Isolate::single_step_offset()), Immediate(0));
|
| - __ j(NOT_EQUAL, &stepping);
|
| - __ Bind(&done_stepping);
|
| - }
|
| + // Check single stepping.
|
| + __ movl(EAX, FieldAddress(CTX, Context::isolate_offset()));
|
| + __ cmpb(Address(EAX, Isolate::single_step_offset()), Immediate(0));
|
| + __ j(NOT_EQUAL, &stepping);
|
| + __ Bind(&done_stepping);
|
|
|
| // ECX: IC data object (preserved).
|
| // Load arguments descriptor into EDX.
|
| @@ -1410,15 +1406,13 @@
|
| __ jmp(EBX);
|
| __ int3();
|
|
|
| - if (FLAG_enable_debugger) {
|
| - __ Bind(&stepping);
|
| - __ EnterStubFrame();
|
| - __ pushl(ECX);
|
| - __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| - __ popl(ECX);
|
| - __ LeaveFrame();
|
| - __ jmp(&done_stepping);
|
| - }
|
| + __ Bind(&stepping);
|
| + __ EnterStubFrame();
|
| + __ pushl(ECX);
|
| + __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| + __ popl(ECX);
|
| + __ LeaveFrame();
|
| + __ jmp(&done_stepping);
|
| }
|
|
|
|
|
| @@ -1514,21 +1508,19 @@
|
| __ Bind(&ok);
|
| }
|
| #endif // DEBUG
|
| - if (FLAG_enable_debugger) {
|
| - // 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);
|
| + // 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).
|
| __ movl(EBX, FieldAddress(ECX, ICData::ic_data_offset()));
|
| @@ -1642,19 +1634,18 @@
|
|
|
| // Called only from unoptimized code.
|
| void StubCode::GenerateDebugStepCheckStub(Assembler* assembler) {
|
| - if (FLAG_enable_debugger) {
|
| - // 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);
|
| + // 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);
|
| - }
|
| + __ EnterStubFrame();
|
| + __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| + __ LeaveFrame();
|
| + __ Bind(¬_stepping);
|
| +
|
| __ ret();
|
| }
|
|
|
| @@ -1904,19 +1895,17 @@
|
| // Returns ZF set.
|
| void StubCode::GenerateUnoptimizedIdenticalWithNumberCheckStub(
|
| Assembler* assembler) {
|
| - if (FLAG_enable_debugger) {
|
| - // 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);
|
| + // 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);
|
| - }
|
| + __ EnterStubFrame();
|
| + __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| + __ LeaveFrame();
|
| + __ Bind(¬_stepping);
|
|
|
| const Register left = EAX;
|
| const Register right = EDX;
|
|
|