| Index: runtime/vm/stub_code_arm.cc
|
| ===================================================================
|
| --- runtime/vm/stub_code_arm.cc (revision 38736)
|
| +++ runtime/vm/stub_code_arm.cc (working copy)
|
| @@ -27,8 +27,6 @@
|
| "Set to true for debugging & verifying the slow paths.");
|
| DECLARE_FLAG(bool, trace_optimized_ic_calls);
|
|
|
| -DECLARE_FLAG(bool, enable_debugger);
|
| -
|
| // Input parameters:
|
| // LR : return address.
|
| // SP : address of last argument in argument array.
|
| @@ -1252,15 +1250,14 @@
|
| #endif // DEBUG
|
|
|
| Label stepping, done_stepping;
|
| - if (FLAG_enable_debugger) {
|
| - // Check single stepping.
|
| - __ ldr(R6, FieldAddress(CTX, Context::isolate_offset()));
|
| - __ ldrb(R6, Address(R6, Isolate::single_step_offset()));
|
| - __ CompareImmediate(R6, 0);
|
| - __ b(&stepping, NE);
|
| - __ Bind(&done_stepping);
|
| - }
|
|
|
| + // Check single stepping.
|
| + __ ldr(R6, FieldAddress(CTX, Context::isolate_offset()));
|
| + __ ldrb(R6, Address(R6, Isolate::single_step_offset()));
|
| + __ CompareImmediate(R6, 0);
|
| + __ b(&stepping, NE);
|
| + __ Bind(&done_stepping);
|
| +
|
| // Load arguments descriptor into R4.
|
| __ ldr(R4, FieldAddress(R5, ICData::arguments_descriptor_offset()));
|
| // Loop that checks if there is an IC data match.
|
| @@ -1363,15 +1360,13 @@
|
| __ AddImmediate(R2, Instructions::HeaderSize() - kHeapObjectTag);
|
| __ bx(R2);
|
|
|
| - if (FLAG_enable_debugger) {
|
| - __ Bind(&stepping);
|
| - __ EnterStubFrame();
|
| - __ Push(R5); // Preserve IC data.
|
| - __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| - __ Pop(R5);
|
| - __ LeaveStubFrame();
|
| - __ b(&done_stepping);
|
| - }
|
| + __ Bind(&stepping);
|
| + __ EnterStubFrame();
|
| + __ Push(R5); // Preserve IC data.
|
| + __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| + __ Pop(R5);
|
| + __ LeaveStubFrame();
|
| + __ b(&done_stepping);
|
| }
|
|
|
|
|
| @@ -1455,20 +1450,18 @@
|
| }
|
| #endif // DEBUG
|
|
|
| - if (FLAG_enable_debugger) {
|
| - // Check single stepping.
|
| - Label not_stepping;
|
| - __ ldr(R6, FieldAddress(CTX, Context::isolate_offset()));
|
| - __ ldrb(R6, Address(R6, Isolate::single_step_offset()));
|
| - __ CompareImmediate(R6, 0);
|
| - __ b(¬_stepping, EQ);
|
| - __ EnterStubFrame();
|
| - __ Push(R5); // Preserve IC data.
|
| - __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| - __ Pop(R5);
|
| - __ LeaveStubFrame();
|
| - __ Bind(¬_stepping);
|
| - }
|
| + // Check single stepping.
|
| + Label not_stepping;
|
| + __ ldr(R6, FieldAddress(CTX, Context::isolate_offset()));
|
| + __ ldrb(R6, Address(R6, Isolate::single_step_offset()));
|
| + __ CompareImmediate(R6, 0);
|
| + __ b(¬_stepping, EQ);
|
| + __ EnterStubFrame();
|
| + __ Push(R5); // Preserve IC data.
|
| + __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| + __ Pop(R5);
|
| + __ LeaveStubFrame();
|
| + __ Bind(¬_stepping);
|
|
|
| // R5: IC data object (preserved).
|
| __ ldr(R6, FieldAddress(R5, ICData::ic_data_offset()));
|
| @@ -1572,18 +1565,17 @@
|
| // Called only from unoptimized code. All relevant registers have been saved.
|
| void StubCode::GenerateDebugStepCheckStub(
|
| Assembler* assembler) {
|
| - if (FLAG_enable_debugger) {
|
| - // Check single stepping.
|
| - Label not_stepping;
|
| - __ ldr(R1, FieldAddress(CTX, Context::isolate_offset()));
|
| - __ ldrb(R1, Address(R1, Isolate::single_step_offset()));
|
| - __ CompareImmediate(R1, 0);
|
| - __ b(¬_stepping, EQ);
|
| - __ EnterStubFrame();
|
| - __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| - __ LeaveStubFrame();
|
| - __ Bind(¬_stepping);
|
| - }
|
| + // Check single stepping.
|
| + Label not_stepping;
|
| + __ ldr(R1, FieldAddress(CTX, Context::isolate_offset()));
|
| + __ ldrb(R1, Address(R1, Isolate::single_step_offset()));
|
| + __ CompareImmediate(R1, 0);
|
| + __ b(¬_stepping, EQ);
|
| + __ EnterStubFrame();
|
| + __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| + __ LeaveStubFrame();
|
| + __ Bind(¬_stepping);
|
| +
|
| __ Ret();
|
| }
|
|
|
| @@ -1831,18 +1823,16 @@
|
| // Return Zero condition flag set if equal.
|
| void StubCode::GenerateUnoptimizedIdenticalWithNumberCheckStub(
|
| Assembler* assembler) {
|
| - if (FLAG_enable_debugger) {
|
| - // Check single stepping.
|
| - Label not_stepping;
|
| - __ ldr(R1, FieldAddress(CTX, Context::isolate_offset()));
|
| - __ ldrb(R1, Address(R1, Isolate::single_step_offset()));
|
| - __ CompareImmediate(R1, 0);
|
| - __ b(¬_stepping, EQ);
|
| - __ EnterStubFrame();
|
| - __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| - __ LeaveStubFrame();
|
| - __ Bind(¬_stepping);
|
| - }
|
| + // Check single stepping.
|
| + Label not_stepping;
|
| + __ ldr(R1, FieldAddress(CTX, Context::isolate_offset()));
|
| + __ ldrb(R1, Address(R1, Isolate::single_step_offset()));
|
| + __ CompareImmediate(R1, 0);
|
| + __ b(¬_stepping, EQ);
|
| + __ EnterStubFrame();
|
| + __ CallRuntime(kSingleStepHandlerRuntimeEntry, 0);
|
| + __ LeaveStubFrame();
|
| + __ Bind(¬_stepping);
|
|
|
| const Register temp = R2;
|
| const Register left = R1;
|
|
|